ホームページ > バックエンド開発 > C++ > C# でジェネリック属性型が許可されないのはなぜですか?

C# でジェネリック属性型が許可されないのはなぜですか?

Linda Hamilton
リリース: 2025-01-18 23:02:45
オリジナル
450 人が閲覧しました

Why Are Generic Attribute Types Not Allowed in C#?

C# のジェネリック属性の制限: 説明のつかない謎

C# 属性内でジェネリック型を使用しようとすると、不可解なコンパイル時エラーが発生します。 例:

<code class="language-csharp">[Validates<string>]
public static class StringValidation
{
    // ...
}</code>
ログイン後にコピー

これは、そのような使用が許可されている Java などの言語とは対照的です。 ただし、C# ではジェネリック属性型を断固として禁止しています。この正確な理由はまだ不明です。

ECMA C# 2 および 3 の仕様では、この制限について何の説明もなく言及されています。 元 Microsoft 開発者で C# 言語設計者の Eric Lippert 氏は、文書化された具体的な根拠はないと示唆しています。 この決定は、言語とコンパイラの単純さを優先し、明らかに価値の高い機能に開発努力を集中させることに起因すると考えられます。

したがって、C# でのジェネリック属性型の禁止は、C# の注目に値する、潜在的に制限的な言語の特徴であり、明確で公的に利用できる正当な理由が欠けています。

以上がC# でジェネリック属性型が許可されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート