tkis "int?" のようなものが欲しいです。ただし、文字列の場合。パラメータにデータを渡さない場合、エラーは発生しません。この問題のアイデアが必要です。
Example(4);
public void Example(int, string?){}
皆様にポイントを差し上げます。手伝ってくれてありがとう。トピック[終了] :)
tkis "int?" のようなものが欲しいです。ただし、文字列の場合。パラメータにデータを渡さない場合、エラーは発生しません。この問題のアイデアが必要です。
Example(4);
public void Example(int, string?){}
皆様にポイントを差し上げます。手伝ってくれてありがとう。トピック[終了] :)
すでに参照型であるため、これは使用できませんstring
。したがって、すでに null 可能です。接尾辞はの?
シンタックス シュガーでNullable<T>
あるため、... とint?
同等であり、 の制約があります。Nullable<int>
Nullable<T>
where T : struct
T
string
言い換えれば、あなたはただ書くことができます
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");
System.Stringは参照型であるため、変数null可能を宣言せずにString変数nullを割り当てることができます。
C# 4.0 では、次のように記述してオプションのパラメーターを使用できます。
public void Example (int a, string b = null) {}
それ以外の場合は、メソッドをオーバーロードできます
public void Example (int a) {}
public void Example (int a, string b) {}
文字列型はデフォルトで null を受け取りますが、すでに参照型であるため、null 可能にする必要はありません。このように使用できます。
public void Example(int i, string s)
{
}
null で呼び出すと、
Example(null, null);
文字列引数にデフォルト値を与える必要がありますか?
例えば
Example(4);
public void Example(int x, string y = null)
{
// etc
}