2017-12-26 2 views
-1

새 C# 프로젝트를 시작하고 dll 내부에서 함수를 생성하여 응용 프로그램 환경과 상호 작용하는 방법을 궁금합니다. 예를 들어 실행 경로 또는 함수를 반환하는 함수 앱의 전체 화면 모드를 설정합니다.C# DLL에 시스템 함수 만들기

나는이 시도했다 그러나 나는 함수 내부의 코드를 호출하는 방법을 모른다 :

public class StdMethods 
{  

    public string GetExePath() 
    { 
     return System.Reflection.Assembly.GetExecutingAssembly().Location;    
    } 

    public void SetFullScreenMode() 
    { 
     this.Top = 0; 
     this.Left = 0; 
     this.Width = SystemParameters.WorkArea.Width; 
     this.Height = SystemParameters.WorkArea.Height; 
    } 

} 

내가 System.Windows.Window를 사용하여 시도하고 두 번째에 윈도우 창 인수를 전달 기능을 사용할 수는 있지만 앞으로의 프로젝트에서 이러한 종류의 기능을 사용하기위한 아이디어 및 권장 사항은 없습니다. 정말 고마워요.

+0

무슨 오류 않으며처럼 사용할 수 있습니까? – Backs

+2

나는 그 질문을 정말로 이해하지 못한다. 그러나 나는 그것이 당신이 무엇을 요구하고 있는지 이해하지 못하기 때문이라고 생각한다. .dll이 어떻게 작동하는지 알고 있습니까? 다른 프로젝트에서이를 참조하는 방법을 알고 있습니까? – Krythic

답변

3

무엇이든지 dll (실제로 Visual Studio에서 "클래스 라이브러리 프로젝트"로 명명 된 것)은 소비자에게 실제로 표시됩니다. 그래서 귀하의 경우 public class HelpfulMethodsHolder {}가 작동합니다.

사이드 노트. 하지 마. public class HelpfulMethodsHolder {}은 완전히 엉뚱한 디자인처럼 보일 것입니다. 아키텍처를 망치기 전에 두 번 생각하십시오.

+0

이 상황과 제안 된 사용법에서 "HelpfulMethodsHolder"가 정적이지 않아야합니까? 그것은 수사학적인 질문입니다. – Krythic

+0

@Krythic, 잘 .. 아니. 대부분의 경우 싱글 톤 (정적 클래스라고도 함)은 잘못된 디자인의 예입니다. 그리고 "대부분의 경우"라고 말하면, 지금까지 내가 본 것 중 거의 99 % - 오픈 소스와 그렇지 않은 것 -을 의미합니다. 그리고이 모든 것을 말함으로써, 우리는 순수한 기능 언어를 고려하지 않는다고 가정합니다. –

+0

그래서 필요할 때마다 HelpfulMethodsHolder의 인스턴스를 생성하는 것이 중요할까요? HelpfulMethodsHolder.SetFullScreen (윈도우 윈도우)보다 더 좋은 디자인은 무엇입니까? C# 정적 수학 클래스를 고려하십시오. 마음 속에서 수학 수학 = 새로운 수학()을 만드는 것이 낫습니다. 수학. 바닥 (가치)? – Krythic

3

정적 클래스 &을 아래와 같이 만들 수 있습니다.

public static class StdMethods 
{ 
    public static string GetExePath() 
    { 
     return System.Reflection.Assembly.GetExecutingAssembly().Location;    
    } 

public static void SetFullScreenMode() 
    { 
     this.Top = 0; 
     this.Left = 0; 
     this.Width = SystemParameters.WorkArea.Width; 
     this.Height = SystemParameters.WorkArea.Height; 
    } 

} 

StdMethods.SetFullScreenMode();