2

同じ C# プロジェクト内のほぼすべてのクラスで使用したいメソッドがあります。

public void Log(String line)
{
   var file = System.IO.Path.GetPathRoot(Environment.SystemDirectory)+ "Logs.txt";

   StreamWriter logfile = new StreamWriter(file, true);

   // Write to the file:
   logfile.WriteLine(DateTime.Now);
   logfile.WriteLine(line);
   logfile.WriteLine();

   // Close the stream:
   logfile.Close();
}

プロジェクトの他のクラスでこのメソッドを再利用するアプローチは何ですか?

4

3 に答える 3

7

すべてのクラスで使用する場合は、 にしstaticます。

static LogHelper次のように、より適切に整理するためのクラスを作成できます。

public static class LogHelper
{
    public static void Log(String line)
    {
        var file = System.IO.Path.GetPathRoot(Environment.SystemDirectory)+ "Logs.txt";

        StreamWriter logfile = new StreamWriter(file, true);

        // Write to the file:
        logfile.WriteLine(DateTime.Now);
        logfile.WriteLine(line);
        logfile.WriteLine();

        // Close the stream:
        logfile.Close();
    }
}

次に、実行して呼び出しますLogHelper.Log(line)

于 2013-03-27T16:27:40.447 に答える
4

静的クラスを作成し、この関数をそのクラスに入れることができます。

public static MyStaticClass
{
    public static void Log(String line)
    {
        // your code
    }
}

これで、他の場所で呼び出すことができます。(静的クラスなのでインスタンス化する必要はありません)

MyStaticClass.Log("somestring");
于 2013-03-27T16:27:54.127 に答える
0

Extrension method統計クラスで使用できます

文字列拡張のサンプル

public static class MyExtensions
    {
        public static int YourMethod(this String str)
        {
        }
    }  

リンク: http://msdn.microsoft.com/fr-fr/library/vstudio/bb383977.aspx

于 2013-03-27T16:30:50.623 に答える