3

tkis "int?" のようなものが欲しいです。ただし、文字列の場合。パラメータにデータを渡さない場合、エラーは発生しません。この問題のアイデアが必要です。

Example(4);

public void Example(int, string?){} 

皆様にポイントを差し上げます。手伝ってくれてありがとう。トピック[終了] :)

4

5 に答える 5

11

すでに参照型であるため、これは使用できませんstring。したがって、すでに null 可能です。接尾辞はの?シンタックス シュガーでNullable<T>あるため、... とint?同等であり、 の制約があります。Nullable<int>Nullable<T>where T : structTstring

言い換えれば、あなたはただ書くことができます

public void Example(int x, string y)
{
    if (y == null)
    {
        ...
    }
}

これは、オプションのパラメーターにすることとは異なることに注意してください。値を渡すことは、null値を渡すことです。オプションのパラメータにしたい場合は、それもできます:

public void Example(int x, string y = "Fred")

...

Example(10); // Equivalent to Example(10, "Fred");
于 2012-10-25T09:53:00.690 に答える
4

System.Stringは参照型であるため、変数null可能を宣言せずにString変数nullを割り当てることができます。

于 2012-10-25T09:54:04.953 に答える
4

C# 4.0 では、次のように記述してオプションのパラメーターを使用できます。

public void Example (int a, string b = null) {}

それ以外の場合は、メソッドをオーバーロードできます

public void Example (int a) {}
public void Example (int a, string b) {}
于 2012-10-25T09:52:50.677 に答える
4

文字列型はデフォルトで null を受け取りますが、すでに参照型であるため、null 可能にする必要はありません。このように使用できます。

public void Example(int i, string s)
{

} 

null で呼び出すと、

Example(null, null);
于 2012-10-25T09:52:52.203 に答える
2

文字列引数にデフォルト値を与える必要がありますか?

例えば

Example(4);

public void Example(int x, string y = null)
{
    // etc
} 
于 2012-10-25T09:54:44.953 に答える