問題タブ [non-nullable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
design-by-contract - null 非許容オブジェクトの何が問題になっていますか?
私は最近、DbC と、null 非許容オブジェクトをサポートしているように見える Spec# を見てきました。残念ながら仕様番号は放棄されたようです。
- Spec# には多くの優れた言語機能が組み込まれているように見えたのに、なぜそれが放棄されたのですか?
- デフォルトですべてのオブジェクトを null 非許容にすることに問題があるので、int?, string? と記述する必要がありますか? さらにMailMessage?本当にnull可能なオブジェクトが必要な場合は?
- ここで、クラス プロパティを null 許容または非 null 許容としてチェックできる SQL の類似性を確認できます。SQL テーブルの列でできるように、プロパティに制約を課すことさえできますか?
このような機能を言語に組み込むことに問題があるとは思いません。誰でもこれについて教えてもらえますか?
c# - テーブルに異なる列を返すデータセットに対してクエリを実行するにはどうすればよいですか?
C# を使用して、データセット内の SQL テーブルからデータを取得しようとしています。
この場合、いくつかの特定の列だけをすべて必要とするわけではありませんが、必須の NOT NULL を持つ列を引き戻していないため、テーブルのコピーが例外をスローしています
unNullable 列をテーブルに返すことでこれを回避できると確信していますが、不要なデータを返さないようにしたいと考えています。
この例外をスローする私が使用しているクエリは
これにより、必須の列「tblLocationID」が除外されます。ただし、実際には、この列は、フォームで使用するビルドとソフトウェアの詳細が必要な場合ではなく、データベース全体を考慮する場合にのみ必須です。
このクエリを次のように使用しようとしています。
プレビュー データを参照すると、Visual Studio は、列 tblLocationID を含む SQL で指定されていない列を描画しますが、これらの列にはデータが入力されません。
列のnull不可の側面をインポートせずに、一時テーブルでこのデータを使用できる方法はありますか? できれば、選択されていない列をまったく引っ張らないでください。
完全を期すために、ソース テーブルの定義 (- 外部キー定義を除く) を次に示します。
c# - null 非許容値型を null 許容にする
使用が制限されている単純な構造体があります。構造体は、データベースからデータを呼び出すメソッドで作成されます。データベースからデータが返されない場合、null を返せるようにしたいのですが、Visual Studio は、null を許容しない値の型であるため、null を PackageName.StructName に変換できません。
どうすればnull可能にできますか?
c# - C#でDateTimeにnullが許可されないのはなぜですか?
C#でDateTimeにnullを代入できないのはなぜですか? これはどのように実装されていますか?また、この機能を使用して、独自のクラスを null 非許容にすることはできますか?
例:
DateTime?
C# 2.0 で null を dateTimeTest に割り当てることができることと、Jon Skeet の NonNullable クラスを文字列で使用して、stringTest の割り当てで実行時エラーを取得できることを知っています。なぜ 2 つのタイプの動作が異なるのか不思議に思っています。
c# - C# の null 許容型の代替
一連の数値データで機能するアルゴリズムを作成しています。場合によっては、一連の値を null にする必要があります。ただし、このアプリケーションはパフォーマンスが重要であるため、null 許容型の使用は避けています。アルゴリズムのパフォーマンスをテストして、null 許容型と非 null 許容型を使用した場合のパフォーマンスを具体的に比較しました。最良のシナリオでは、null 許容型は 2 倍遅くなりますが、多くの場合、はるかに劣っています。
最も頻繁に使用されるデータ型は double であり、現在選択されている null の代替は double.NaN です。ただし、これは NaN 値の正確な意図された使用法ではないことを理解しているため、予測できない問題があるかどうか、およびベストプラクティスが何であるかは不明です。
特に次のデータ型に最適な null の代替手段を見つけることに興味があります: double/float、decimal、DateTime、int/long (ただし、他のデータ型は大歓迎です)
編集:パフォーマンスに関する要件を明確にする必要があると思います。数値データのギグは、数時間かかる一度にこれらのアルゴリズムを介して処理されます。したがって、たとえば 10 ミリ秒または 20 ミリ秒の違いは通常は重要ではありませんが、このシナリオでは実際にかかる時間に大きな影響を与えます。
sql-server-2005 - 計算列をnull許容にしない方法は?
これまで私はISNULL(dbo.fn_GetPrice(ItemId), 0)
それをnull許容にしないようにするために使用してきました(むしろデフォルト値と呼びますが、何でも)。
これは正しい方法ですか?
c# - 現在、C# で null 非許容参照型に近づくにはどうすればよいですか?
null 非許容の質問と回答の多くを読みました。C# (4.0) で null 非許容型に近づける最良の方法は、Jon Skeet のNonNullable<>ハックのようです。
ただし、C++/CLI はマネージド参照をサポートすることで問題の多くを解決したようです: Foo%
(ネイティブ C++ の代わりにFoo&
)。コンパイラはmodreq(IsImplicitlyDereferenced)
、引数に追加することでこれを機能させます。このような関数を C# から呼び出そうとすると、次のようになります。
NonNullable<>よりも優れたものはありますか?
Foo::Method(Bar%)
C# から C ++/CLI メソッドを呼び出す方法はありますか?
[編集]現在のところ、 NonNullable<>より優れたものはないようです ...少なくとも部分的な解決策がすでにあるので、C++/CLI に関するコメントがあればよかったのにと思います。
c# - 割り当てられていないnull許容変数(C#)の値
ちょっと興味があるんだけど。
もしあなたが行くなら:
その値はnullです。
しかし、あなたが行くなら:
C#でのこの変数の値は何ですか?
ありがとう
デビッド