C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Enumの値を後から変更する方法

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■87462 / inTopicNo.1)  Enumの値を後から変更する方法
  
□投稿者/ ふぇろ (1回)-(2018/05/24(Thu) 21:04:15)

分類:[.NET 全般] 

VB.NETでEnumを使いたいのですが
コード内で値を変更するようにしたいのですが
どのようにすれば良いですか?
 
引用返信 編集キー/
■87463 / inTopicNo.2)  Re[1]: Enumの値を後から変更する方法
□投稿者/ Jitta (374回)-(2018/05/24(Thu) 22:36:23)
No87462 (ふぇろ さん) に返信
> VB.NETでEnumを使いたいのですが
> コード内で値を変更するようにしたいのですが
> どのようにすれば良いですか?
>  


コードないで変更するようにしたいとは、具体的にどういうことですか。
ちなみに、enum は enumerator の略で、「列挙する」の意味です。
列挙されるのは値で、それに名前をつけます。
変数のように、変数領域に値を入れるのではなく、値(固定値)に対して名前(固有名)をつけているので、
値や名前を変更することはできません。

で、私たちの仕事は、情報処理のはずです。
与えられた情報を処理するのが仕事なので、情報を与えられなければ仕事になりません。
逆に言えば、情報を与えれば、たくさんの仕事ができます。
ということで、どのような場面で、どのような要求があって、「コードないで値を変更する」という要求になったのでしょうか。
例えば、Dictionary クラスを使えば解決できるのではないでしょうか。
引用返信 編集キー/
■87466 / inTopicNo.3)  Re[1]: Enumの値を後から変更する方法
□投稿者/ shu (1119回)-(2018/05/25(Fri) 07:57:53)
No87462 (ふぇろ さん) に返信
> VB.NETでEnumを使いたいのですが
> コード内で値を変更するようにしたいのですが
> どのようにすれば良いですか?
>  

Enumは定数なので変更出来ませんが、
Enumのどういうところを利用したくてEnumを使いたいのでしょうか?
引用返信 編集キー/
■87468 / inTopicNo.4)  Re[2]: Enumの値を後から変更する方法
□投稿者/ ぶなっぷ (180回)-(2018/05/25(Fri) 09:25:05)
C#風に書くと、こんなやつ?
  [Flags]
  public enum OpenMode
  {
      Read     = 0x0001,
      Write    = 0x0002,
      ExRead   = 0x0004,
      ExWrite  = 0x0008,
      ExAll    = 0x0010,
  }
こんなやつの整数の側を後から変えたいと。

ここだけ見ると、変数に値を入れてるっぽく見えるのかな?
>      Read     = 0x0001,

でも、変数なのは、
  OpenMode mode;
と定義した時の mode であって、
他の方もおっしゃっているとおり、OpenMode.Read とかは定数です。
定数の値を変えるのは無理です。

そもそも、値を変えたい理由をあまり思いつきませんが、
enumの整数値がDBテーブルのフィールドと連動してて、テーブルによって整数値が違うとか?

引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ