0

汎用ロガー クラスを作成したいと思います。これは、「値を null にすることはできません。パラメータ名:パス」と不平を言います。オブジェクトを初期化した後、ログ名の値は取得できますが、ログは取得されません。私はどこで間違ったのですか?

class Logger
{

    public static string log;


    public Logger(string logname)
    {
        log = logname;

    }
    StreamWriter writer = new StreamWriter(log);
}
4

1 に答える 1

10

これを試して:

...
    public Logger(string logname)
    {
         log = logname;
         writer = new StreamWriter(log);
    }
    StreamWriter writer = null;
...

first が次の行で実行されるため、このエラーが発生します。

StreamWriter writer = new StreamWriter(log);

フィールドの初期化後にコンストラクターが実行されるため、その時点でフィールド ログは null です。

于 2013-01-08T23:37:39.797 に答える