-1

あなたがこれを手伝ってくれるかどうか、私はさまよっていました。文字列 Directory を入力として受け取るコンソール アプリがあります。

ユーザーが空の文字列を入力したかどうかを確認できるチェックを配置したい システムに ArgumentNullException などのエラーをログに記録させたい。

string inputDirectory = "";
private void DoSomething(string inputDirectory)
            {
                try
                {
                    Directory.CreateDirectory(inputDirectory)
                }
                catch (ArgumentNullException e)
                {
                    Log.Error("program failed because the directory supplied was empty", e.Message);
                }
            }

コードはこれらの行のどこかにあります。今私が抱えている問題は、例外がスローされないことです。代わりに、プログラムはディレクトリがプロジェクトの bin\Debug フォルダーにあると想定します。指定されたディレクトリが「」の場合、プログラムの実行を停止するために何をする必要があるかわかりません。if(inputDirectory == null) を実行しましたが、これは機能しませんでした。何かアドバイス?ありがとう、ジェットナー。

4

4 に答える 4

2

指定されたディレクトリが「」の場合、プログラムの実行を停止するために何をする必要があるかわかりません。if(inputDirectory == null) を実行しましたが、これは機能しませんでした。

使用するstring.IsNullOrEmpty

または、.Net 4.0 以降を使用している場合は、次を使用できます。string.IsNullOrWhiteSpace

 if(string.IsNullOrWhiteSpace(inputDirectory))
 {
    //invalid input
 }

両方とも、空文字列string.IsNullOrEmptystring.IsNullOrWhiteSpacenull 文字列をチェックします。string.IsNullOrWhiteSpaceまた、すべての空白を含む文字列もチェックします。

于 2013-12-10T15:45:54.820 に答える
2

おそらく、次のようなチェックを追加できます。

string inputDirectory = "";
private void DoSomething(string inputDirectory)
{
    if (String.IsNullOrEmpty(inputDirectory)
        throw new ArgumentNullException();

    try
    {
        Directory.CreateDirectory(inputDirectory)
    }
    catch (ArgumentNullException e)
    {
        Log.Error("program failed because the directory supplied was empty", e.Message);
    }
}
于 2013-12-10T15:46:33.497 に答える
1

String.IsNullOrWhitespaceを使用 して、文字列が null または空白のみかどうかを確認できます。

指定された文字列が null、空、または空白文字のみで構成されているかどうかを示します。

if (String.IsNullOrWhitespace(inputDirectory))
{
    throw new YourException("WhatEver");
}
于 2013-12-10T15:46:07.743 に答える