答えて
No. const
修飾子は、プリミティブ型(bool、int、float、double、long、decimal、short、byte)と文字列にのみ適用されます。基本的にはリテラルとして宣言できます。
これは実際には逆の方法で定義されています。コンパイル時のリテラル値に 'const'を使うことができます。 C#は実際には "プリミティブ型"という用語を定義していません。それは技術的にただのスラングだ。他の言語では、実際には「プリミティブ型」という用語を定義し、そのような型の固定リストを使用します。実際、 'Guid'にはコンパイル時のリテラルが1つあり、それは' default(Guid) 'です。それはGuidのための唯一のコンパイル時のリテラルです。 – Servy
あなたがそれを必要とするたびに解析されるようにそれを行うことができることをやるように見えることはできませんが:
const string _myGuidStr = "e6b86ea3-6479-48a2-b8d4-54bd6cbbdbc5";
しかし、私が最初に発生した、それは単に私のものとしてのguid上記を使用していませんそれで私は上記のこの特定のGUIDの所有権を主張します!しかし、私は寛大です - 代わりにこの1つを使用してください(私はそれが私に戻って話すのが好きではありませんが、それはそれが口を閉じたままにして全体的に素敵なガイドです):284c694d - d9cc - 446b - 9701 - b391876c8394
+1、あなたのGUIDは私にも戻って話しましたが。 –
あなたはGuidsを販売することを検討する必要があります... –
@ZarShardan彼らは一種です! –
宣言それはstatic readonly Guid
いうよりconst Guid
最終的な結果を変更せずに代替案を提供する唯一のものであるため、これは最善の答えだと信じています。静的な読み取り専用はintellisenseを含むconstの同じ方法で使うことができます – Raffaeu
@Raffaeu:私から+ 1)、しかし技術的には、それは質問に答えることさえしません(「C#で一定のGuidを宣言することはできますか?」)。これは回避策を提供しますが、 'static readonly'が' const'とどのように異なっているのか、そして他のものの代わりに1つを使用することの意味については説明しません。したがって、「最善の答え」がどのように見えるかは遠いです。 – Heinzi
ように私はこのようにそれをやっている:
public static class RecordTypeIds
{
public const string USERS_TYPEID = "5C60F693-BEF5-E011-A485-80EE7300C695";
public static Guid Users { get { return new Guid(EntityTypeIds.USERS_TYPEID); } }
}
アクセスごとに新しいGUIDを作成するプロパティではなく、読み取り専用フィールドでわずかに優れたパフォーマンスが得られます – smartcaveman
私はあなたの答えがマイナスのgetプロパティを好むのが好きです。私はsmartcavemanに同意します...ただ公的な静的な読み取り専用Guidにしてください。 –
私がこれが好きな唯一の理由は、switch文で文字列を使用できるようにすることです。他のすべての場所私は静的な読み取り専用Guidを使用します。 –
public static readonly Guid Users = new Guid("5C60F693-BEF5-E011-A485-80EE7300C695");
、それはそれです。
- 1. C#/ .NETで定数を宣言するには?
- 2. C++変数宣言
- 3. c#変数宣言
- 4. C++のメソッド定義と変数宣言
- 5. C#で定数を宣言して文字を代入する
- 6. エラーメッセージC言語での変数宣言
- 7. 定数でない配列宣言によるコンパイルエラー、C++
- 8. C++ネームスペース宣言と定義
- 9. Cで定数文字列を宣言する方法とは何ですか?
- 10. C#で変数を宣言するベストプラクティスは何ですか?
- 11. C++空の関数宣言
- 12. C++メソッド変数宣言
- 13. 宣言変数(ANSI C)
- 14. @ sign in C変数宣言
- 15. C++関数の宣言
- 16. C++の変数定義と宣言を使用するグローバル
- 17. 関数宣言でC++のmem_fn(member_function)を宣言するにはどうすればよいですか?
- 18. 構造体をC言語で宣言せずに宣言する
- 19. Javaで定数階層データ構造を宣言するには?
- 20. ヘッダとcファイルに関数ポインタを宣言するには?
- 21. はCで、異なるタイプの変数を宣言する++
- 22. 前宣言はC
- 23. C++で複数回関数と変数を宣言する
- 24. c# "?"メソッド宣言で
- 25. Rustの変数を宣言するマクロ? Cでは
- 26. C#フローチャートで変数を宣言する方法は?
- 27. C++複数の宣言コンパイラエラーを修正するには
- 28. Items WPFで宣言的にC#に宣言的にソース
- 29. Javascriptプロトタイプ定数宣言
- 30. C++でテンプレート内に別のテンプレート変数を宣言する
静的な読み取り専用Guidの何が問題なのですか? – Pedro
それを行う唯一の方法なら何もありません。 – smartcaveman
@ Pedroでは、コンパイル時にconstが評価され、実行時にスタティックが評価されます。 –