問題タブ [option-strict]
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.
.net - コンパイラがこれを DataRow ではなくオブジェクトと見なすのはなぜですか?
LINQ クエリを使用して、DataTable
オブジェクト内のデータを単純なIEnumerable
カスタム POCO オブジェクトに変換しています。
私のLINQクエリは次のとおりです。
ただし、コンパイラはdr As DataRow
次のメッセージとともに警告メッセージをスローしています。
Option Strict On は、'Object' から 'System.Data.DataRow' への暗黙的な変換を禁止します。
このエラーが発生するのはなぜですか? また、修正するにはどうすればよいですか? dtMessages.Rows
type のコレクションを返すと思っていたでしょうDataRow
。これは正しくありませんか?
vb.net - VB.NET: Option Strict On の匿名型で使用する As 句はどれですか?
を常に宣言するという要件を考慮してくださいOption Strict On
。As
キーワードを使用して常に変数を宣言する必要があります。匿名型の型は何でしょうか?
例 :Dim product As ... = New With { Key .Name = "paperclips", .Price = 1.29 }
に続くのは何As
ですか?
vb.net - OptionStrictONを使用してVB.NETプロジェクトでSystem.Linq拡張メソッドを使用する方法
.NET 3.5を使用しています。DataLayerクラスには、System.Core、System.Data.Linq、System.Data.DataSetExtensionsの参照があります。ただし、 Option Strictをオンにしている場合、Linqクエリでこの機能を使用することはできません。
次のエラーが発生します。
「Where」句はSystem.Linq.Queryableのメンバーです
Public Shared Function Where(Of TSource)(ByVal source As System.Linq.IQueryable(Of TSource)、ByVal predicate As System.Linq.Expressions.Expression(Of System.Func(Of TSource、Boolean)))AsSystem.Linq。 IQueryable(Of TSource)
そして、「DefaultIfEmpty」はSystem.Linq.Queryableのメンバーです
パブリック共有関数DefaultIfEmpty(Of TSource)(ByVal source As System.Linq.IQueryable(Of TSource))As System.Linq.IQueryable(Of TSource)
Option Strict OFFに設定すれば、問題ありません。
Option Strict ONを使用してVB.NETプロジェクトでこれらのSystem.Linq拡張メソッドを使用するにはどうすればよいですか?ありがとうございました
vb.net - オプションVB.NETではデフォルトで厳密にオン
新しいVB.NETプログラムを作成するときはいつでも、プロジェクトのプロパティに移動して、[Optionstrict]をオンに設定する必要があります。新しいプロジェクトを作成するたびにデフォルトになるように、一度それを行うことはできますか?
vb.net - Option Strict On の参照型で Thread.VolatileWrite を使用するにはどうすればよいですか?
CObj または DirectCast で引数をラップすると、コンパイラはシャットダウンしますが、値はまだ書き込まれません。
vb.net - OptionStrictOnおよびLateBindingの使用方法
Option Strict Onをオンにした後、コードをコンパイルしようとしています。ただし、VB6との相互運用を使用しており、フォームオブジェクトByRefを渡しているため、Form.Captionが失敗し、VB.NETフォームにキャプションプロパティがないため、フォームをタイプに変換できません。
Option Strict ONでコンパイルするには、どうすれば次のようにできますか。
特定の方法でオプションstrictをオフに切り替える方法はありますか?
vb.net - VB.NET で一部のクラスが表示されない
私のクラスの 1 つが、プロジェクトの残りの部分から見えないようです。パブリックなものを使用する前に、どういうわけか初期化する必要があるのだろうか。
の関数とメソッドはClass1
IntelliSense にすぐに表示されますがClass2
、一般的な (不明な) オブジェクトのように扱われます。
と にいくつかのPublic Shared
機能がClass1
ありClass2
ます。を使用して関数を呼び出すことができます
通常は。ただし、 の関数でこれを試すとClass2
、エラーが発生します。
それらの型はもちろん宣言されていますが。から作業中の関数をコピーして貼り付けて呼び出そうとすると、同じエラーが発生し始めますClass1
。Class2
私が宣言したテスト関数はClass2
、その型が認識されないため、遅延バインディングを行おうとしていると非難されます。
どちらのクラスも public であり、言及されているすべての関数はPublic Shared
. クラスの動作が異なる理由がわかりません。Class2
VB がその関数の型を認識する前 にロードまたはコンパイルする必要があるかのようですが、これらは VB ではおそらく自動的に行われます。
これの原因は何ですか?
入力を開始するClass2.
と、IntelliSense リストは関数としてClass1
認識されますが、クラスとして認識されます。
編集:行を新しい名前にClass2
変更するだけで、正確な内容を新しいクラスにコピーすると、すべてが正常に機能します。Public Class ...
名前が長すぎるのではないかと思ったので、クラスを にコピーしましたAnotherClassWithAReallyLongName
が、これも機能しました。
ただし、を削除class2
して再度追加し、その内容を貼り付けても、まだ機能しません。
c# - OptionStrictOnでDataGridViewCell.Valueを設定する方法
Option Strict OnでDataGridViewCell.Valueをテストする方法は?
エラーが発生します:
編集:
解決策は次のとおりです。
vb.net - LINQ を使用して、親キーと 2 次元辞書の子キーを切り替える
正確な用語はわかりませんでしたが、LINQ を使用してやろうとしたことは、辞書のキーをその子のキーで「切り替える」ことでした。
これは、入力として取得したコレクションです。
そして、これは私が出力として欲しいコレクションです:
私はすでにVB.netでコードを作成しています:
この質問をする理由は純粋に教育的なものです。LINQ を使用してこれを正しいリストに変換しようとしましたが、非常に複雑で長い LINQ ステートメントを作成しない限り、どこにも到達できませんでした。
vb.net - Option Strictをオンにする-落とし穴?
新しく継承したVB.NETアプリケーションのすべてのプロジェクトでOptionStrictをオンにします。私は主に、すべてのコンパイルエラーを取り除くために、多くのCStr、CBool、CTypeステートメントを追加しています。
になります
等
私はほとんどすべてを手作業で一度に1つのエラーで実行しており、Nothing、...ボーダーケースをテストするためのテストアプリケーションがあります。
しかし、実行時に例外を生成するものが欠落している可能性はありますか?そして、Option Strictのためにどのようなコードが生成されていますか?追加されるのは一部の変換だけですか、それともOptionStrictは他のことも行いますか?