3

重複の可能性:
C#-基本的な質問:「?」とは何ですか?

このステートメントは関数の引数で見つかりました。

public static SyndicationFeed GetDataFeed(...... int? maxResults)

それはどう言う意味ですか?

4

7 に答える 7

11

int?これはnull許容のintであることを意味するため、整数値だけでなくnull値も許可されます。

于 2012-10-23T13:05:40.467 に答える
7

Nullable TypeですNullable<T>MSDNによると

DataTypeintは基本的に値型で null 値を保持することはできませんが、Nullable Type を使用することで実際に null を格納することができます。

maxResults = null; // no syntax error

Nullable Types次の2 つの構文を使用して宣言できます。

int? maxResults;

また

Nullable<int> maxResults;
于 2012-10-23T13:06:49.343 に答える
2

を表しますint type that can be assigned null.

于 2012-10-23T13:07:30.827 に答える
2

?null許容を意味します。これは、型に値を含めることも、nullにすることもできることを意味します。

int? num = null; // assign null to the variable num

http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.100).aspx

于 2012-10-23T13:05:59.890 に答える
2

これはショートカットですNullable<int>-これは、maxResultsnullを割り当てることができることを意味します。

于 2012-10-23T13:06:06.097 に答える
1

通常、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 になる可能性があります。

于 2012-10-23T13:10:22.387 に答える
1

を含む値の型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 を割り当てることができます。

于 2012-10-23T13:11:15.397 に答える