重複の可能性:
C#-基本的な質問:「?」とは何ですか?
このステートメントは関数の引数で見つかりました。
public static SyndicationFeed GetDataFeed(...... int? maxResults)
それはどう言う意味ですか?
重複の可能性:
C#-基本的な質問:「?」とは何ですか?
このステートメントは関数の引数で見つかりました。
public static SyndicationFeed GetDataFeed(...... int? maxResults)
それはどう言う意味ですか?
int?これはnull許容のintであることを意味するため、整数値だけでなくnull値も許可されます。
を表しますint type that can be assigned null.
?
null許容を意味します。これは、型に値を含めることも、nullにすることもできることを意味します。
int? num = null; // assign null to the variable num
http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.100).aspx
これはショートカットですNullable<int>
-これは、maxResults
nullを割り当てることができることを意味します。
通常、int はnull値を持つことはできませんが、「?」プレフィックスはNullableにすることができます:
int? myNullableInt = null; //Compiles OK
int myNonNullableInt = null; //Compiler output - Cannot convert null to 'int' because it is a non-nullable value type
int myNonNullableInt = 0; //Compiles OK
あなたの質問/コードの文脈では、 ?maxResultsの値に基づいてSyndicationFeedの結果を返す責任があるとしか思えませんが、nullable であるため、この値は null になる可能性があります。
を含む値の型null
に代入することはできません。例外が発生します。integer
int someValue;
someValue=null;//wrong and will not work
ただし、null 可能にすると、null を割り当てることができます。ValueType を Nullable にするには、valuetype キーワードの後に記号 ?を付ける必要があります。
<type>? someVariable;
int? someValue;
someValue=null;//assigns null and no issues.
これで例外は発生せず、null を割り当てることができます。