問題タブ [cls-compliant]
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.
c# - unsigned int が CLS に準拠していないのはなぜですか?
符号なし整数が CLS に準拠していないのはなぜですか?
型指定はパフォーマンスのためだけのものであり、正確さのためではないと思い始めています。
.net - コードが CLS 準拠になるために必要な、より高度な規則は何ですか?
VS.NET 2005 によると、CLS 準拠ではない特定の例を次に示します。
これは、DbId32、DbId64、DbIdString などのクラスで実装するインターフェイスです。これは、ネイティブ データベースの主キー タイプを 1 つの共通の .Net タイプに抽象化する方法です。
私が表示していないのは、ネイティブ データベース タイプを指定して正しい具体的なタイプ (たとえば、SQL Server タイプ 'int' の新しい DbId32) をインスタンス化するファクトリ メソッドです。
このインターフェイスを次のように使用するとします。
VS は次の警告メッセージを出力するようになりました。
関数 'ID' の戻り型は CLS 準拠ではありません。
次のように、この属性をインターフェイスに追加することで、これらの警告を停止できます。
このインターフェイスが定義する関数はどれも、ここに記載されている規則に違反しているようには見えません。では、VS がこれらの警告を表示するのはなぜですか?
.net - .NET で非 CLS 準拠のコードを使用すると、どのような影響がありますか?
CLS-Compliance に関して、以前 VB6 から移植したアプリに対して、次のようなしつこいコンパイラ警告がいくつかあります。
それにもかかわらず、私のアプリは COM およびマネージ クライアントから問題なく動作しているようです。コードを CLS に準拠させるにはどうすればよいかを説明している記事をいくつか見てきましたが、しつこい警告を取り除くためにとにかく実行するつもりですが、CLS に準拠していないコードの実際の欠点について知りたいと思っています。条項?まだ発見されていない、この押し付けの制限とは何ですか?
.net - CLS 準拠を確認するためのツールはありますか?
.NET コード (C# およびVB.NET ) を分析して、 CLS に準拠していない理由を教えてくれるツールはありますか?
Visual Studio は、パラメーターが CLS に準拠していないことを喜んで教えてくれますが、原因がわからないため、問題の修正に近づくことはできません。
Visual Studio エラーの例:
パラメーター 'xyz' は CLS に準拠していません
.net - CLS への準拠を破ることが許容されるのはいつですか?
共通言語仕様への準拠を許容できるエッジ ケースが存在することを知りたいと思っていました。CLSCompliantAttribute
他の言語からアクセスするつもりがない場合でも、 によって主張されている信条は優れたベスト プラクティスであると思います。
YAGNIがベスト プラクティスよりも優れているケースに遭遇したことがありますか、または知っていますか?
vb.net - CLS 準拠と正しいコードを理解する
アプリケーションの状態の一部を管理するために、抽象化されたコントロールを作成しようとしました。しかし、私はいくつかの CLS の問題を抱えており、誰かが何らかの洞察を提供してくれることを望んでいました.
私はそのような列挙を持っています:
そして、そのようなクラス:
このコードをコンパイルしようとすると、Stateプロパティが CLS に準拠しておらず、state引数も準拠していないという警告が表示されます。どうして?また、この問題を修正して警告を削除するにはどうすればよいですか?
- <CLSCompliant(True)> 属性を両方のアイテムに追加しようとしましたが、うまくいきませんでした
- MSDN の記事Non-CLS-compliant 'MustOverride' member is not allowed in a CLS-compliant into the codeを広めようとしましたが、結果はありませんでした
Friend
アクセサーを代わりに変更しようとしましたPublic
- Enum の型を指定してみました (
Integer
andUInteger
)
c# - 引数の型 'FluentNHibernate.Mapping.IProperty' は CLS に準拠していません
名前は準拠していませんか? レイアウト?何?
このメッセージを正確に生成できるアイデアはありますか? どんなアイデアでも大歓迎です。私はそのような警告の束を持っています。
実際、私は CLSCompliant(true) を削除することにオープンですが、根本的な原因を知りたいです。
c# - .NET アセンブリの CLS 準拠の設定
.NET アセンブリ全体に対して CLS 準拠を設定できます。しかし、それは実際にどのように行われますか?たとえば、Visual Studio 2008 では?
c# - この場合、警告 CS3006 は有効ですか?
以下のコードは、警告 CS3006 を生成します。
この警告は有効ですか、つまり、これは本当に CLS に準拠していないのでしょうか? 明示的なインターフェイスの実装はオーバーロードとしてカウントされないと思っていました。