2017-12-26 12 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#static Mathクラスを考えてみましょう。あなたの考えでは、数学=新しい数学(数学)を作成する方がいいでしょう。 math.Floor(value)? – 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();

関連する問題