タグ付けされた質問 「nullable」

null可能タグは、null可能メンバーまたは型に関連する問題用です。nullは、欠損値または不明な値を表すために使用されます。


19
プロパティのプロパティがnullかどうかを確認するC#のエレガントな方法
C#で、この例ではPropertyCから値をプルしたいとし、ObjectA、PropertyA、PropertyBはすべてnullにすることができます。 ObjectA.PropertyA.PropertyB.PropertyC 最小限のコードでPropertyCを安全に取得するにはどうすればよいですか? 今私はチェックします: if(ObjectA != null && ObjectA.PropertyA !=null && ObjectA.PropertyA.PropertyB != null) { // safely pull off the value int value = objectA.PropertyA.PropertyB.PropertyC; } このようなもの(疑似コード)を実行するとよいでしょう。 int value = ObjectA.PropertyA.PropertyB ? ObjectA.PropertyA.PropertyB : defaultVal; nullコアレッシング演算子でさらに折りたたまれている可能性もあります。 編集元々、2番目の例はjsのようだと言っていましたが、jsでは機能しないことが正しく指摘されていたため、擬似コードに変更しました。

19
null可能なブール値のチェックボックス
私のモデルにはnullにする必要があるブール値があります public bool? Foo { get; set; } 私のRazor cshtmlには @Html.CheckBoxFor(m => m.Foo) それが機能しないことを除いて。(bool)でキャストすることもできません。私が行った場合 @Html.CheckBoxFor(m => m.Foo.Value) エラーは発生しませんが、投稿時にモデルにバインドされず、fooがnullに設定されます。ページにFooを表示し、投稿のモデルにバインドする最良の方法は何ですか?

7
'int'の違いは何ですか?およびC#の「int」?
私は以前にstackoverflowでこの答えを見たと90%確信しています。実際、私は「int?」を見たことがありませんでした。ここに表示される前の構文ですが、どのように検索しても前の投稿が見つからず、頭がおかしくなります。 偶然に面白いキノコを食べていた可能性がありますが、そうでない場合は、誰かが前の投稿を見つけたり、再説明したりできるかどうかを指摘してもらえますか?私のstackoverflowsearch-fuは明らかに低すぎます...。
84 c#  syntax  types  nullable 

3
オペレーターを短絡させてください|| および&&はnull許容ブール値に存在しますか?RuntimeBinderは時々そう考えます
条件付き論理演算子 ||と&&、短絡論理演算子としても知られるC#言語仕様を読みました。私には、これらがnull許容ブール値、つまりオペランド型Nullable<bool>(これも記述されているbool?)に存在するかどうかが不明であるように思われたので、非動的型付けで試してみました。 bool a = true; bool? b = null; bool? xxxx = b || a; // compile-time error, || can't be applied to these types これで問題は解決したようです(仕様を明確に理解できませんでしたが、Visual C#コンパイラの実装が正しいと仮定すると、今ではわかりました)。 しかし、私dynamicもバインディングを試してみたかったのです。だから私は代わりにこれを試しました: static class Program { static dynamic A { get { Console.WriteLine("'A' evaluated"); return true; } } static dynamic B { get …

3
ビュー列をNOTNULLにする方法
列をtrueまたはfalseのみにするビューを作成しようとしています。しかし、私が何をしても、SQL Server(2008)は、私のビット列がどういうわけかnullになる可能性があると信じているようです。 「ステータス」列が「製品」というテーブルがありますINT, NULL。ビューでは、Product.Status列が3に等しい場合はBIT列をtrueに設定し、それ以外の場合はビットフィールドをfalseに設定して、Productの各行の行を返します。 SQLの例 SELECT CAST( CASE ISNULL(Status, 0) WHEN 3 THEN 1 ELSE 0 END AS bit) AS HasStatus FROM dbo.Product このクエリをビューとして保存し、オブジェクトエクスプローラーで列を見ると、列HasStatusはに設定されていBIT, NULLます。ただし、NULLであってはなりません。私はあることを、このコラムを強制するために使用できるいくつかの魔法のSQLのトリックがありますNOT NULL。 のCAST()周りを削除するCASEと、列は正しく設定されますがNOT NULL、列のタイプはに設定されますがINT、これは私が望むものではないことに注意してください。になりたいですBIT。:-)

6
リフレクションを介してnull許容プロパティのタイプを見つける
リフレクションを介してオブジェクトのプロパティを調べ、各プロパティのデータ型の処理を続行します。これが私の(縮小された)ソースです: private void ExamineObject(object o) { Type type = default(Type); Type propertyType = default(Type); PropertyInfo[] propertyInfo = null; type = o.GetType(); propertyInfo = type.GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); // Loop over all properties for (int propertyInfoIndex = 0; propertyInfoIndex <= propertyInfo.Length - 1; propertyInfoIndex++) { propertyType = propertyInfo[propertyInfoIndex].PropertyType; …
83 c#  .net  reflection  nullable 


3
'System.Int32'から 'System.Nullable`1 [[System.Int32、mscorlib]]へのキャストが無効です
Type t = typeof(int?); //will get this dynamically object val = 5; //will get this dynamically object nVal = Convert.ChangeType(val, t);//getting exception here 上記のコードでInvalidCastExceptionが発生しています。int? nVal = val上記の場合、単純に書くことができますが、上記のコードは動的に実行されます。 オブジェクト(ここではval)にラップされた値(int、floatなどのnull許容型ではない)を取得しています。別の型(null許容バージョンにすることもできないこともあります)にキャストして、別のオブジェクトに保存する必要があります。それの)。いつ 'System.Int32'から 'System.Nullable`1 [[System.Int32、mscorlib、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089]]'へのキャストが無効です。 はint、にコンバーチブル/タイプキャスト可能である必要がありますnullable intが、ここでの問題は何ですか?

8
「DateTime」が「Nothing」であるかどうかを確認できないのはなぜですか?
VB.NETで、DateTime変数を「未設定」に設定する方法はありますか?また、にを設定できるDateTimeのにNothing、そうであるかどうかを確認できないのはNothingなぜですか?例えば: Dim d As DateTime = Nothing Dim boolNotSet As Boolean = d Is Nothing 2番目のステートメントはこのエラーをスローします: 'Is' operator does not accept operands of type 'Date'. Operands must be reference or nullable types.

6
プロダクションコードのassertステートメントでnullでないことをアサートする必要がありますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 先月休業。 この質問を見たことがありますが、assertキーワードの使用法についていくつか質問があります。の使用について他の数人のコーダーと議論していましたassert。この使用例では、特定の前提条件が満たされている場合にnullを返すことができるメソッドがありました。私が書いたコードはメソッドを呼び出し、それがnullを返さないことを表明し、返されたオブジェクトを引き続き使用しています。 例: class CustomObject { private Object object; @Nullable public Object getObject() { return (object == null) ? generateObject() : object; } } 次のように使用するとします。 public void useObject(CustomObject customObject) { object = customObject.getObject(); assert object != null; // Do stuff using object, which would throw a NPE if …
32 java  assert  nullable 

1
.NETリフレクションを使用してnull可能な参照型を確認する方法
C#8.0では、null許容の参照型が導入されています。次に、null許容プロパティを持つ単純なクラスを示します。 public class Foo { public String? Bar { get; set; } } クラスのプロパティがリフレクションを介してnull可能な参照型を使用しているかどうかを確認する方法はありますか?

2
構造体のクラスメンバーを持つC#8でnullの逆参照の可能性に関する警告が表示されないのはなぜですか?
null可能な参照型を有効にしたC#8プロジェクトで、次のコードを使用すると、null逆参照の可能性に関する警告が表示されるはずですが、表示されません。 public class ExampleClassMember { public int Value { get; } } public struct ExampleStruct { public ExampleClassMember Member { get; } } public class Program { public static void Main(string[] args) { var instance = new ExampleStruct(); Console.WriteLine(instance.Member.Value); // expected warning here about possible null dereference } } 場合はinstanceデフォルトコンストラクタで初期化され、instance.Memberデフォルト値に設定されてExampleClassMemberいます、null。したがって、実行時にinstance.Member.ValueがスローさNullReferenceExceptionれます。C#8のnull可能性の検出を理解しているので、この可能性についてコンパイラーの警告が表示されるはずですが、わかりません。何故ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.