- PR -

項目名の文字列とインテリセンスと列挙体

投稿者投稿内容
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2006-04-03 21:38
Enumや,それに順ずるもので項目名を定義するということは
プログラム内で扱うデータの形が決まってるってことですよね?

それならリフレクションに頼って性能を劣化(本当に少しずつだけど)
させるよりは…
型指定したDataSetや自分でそういう型を定義したほうが素直だと思うのです。
それじゃ駄目な理由って何ですか??

そこがちょっと気になります。
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2006-04-05 08:45
ふと思ったんですけど、コードスニペットを作ればOKでは?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-05 10:16
多分ですが、保証されないとイヤなんでしょうね。
コード上で <同じもの> を <自分でそのように書いて> 入れたくない。

自動でそうあって欲しい、自動であれば打ち損じもない、と神経質に考えているのでしょう。
あくまで <定数のように> 使いたいのが願いであるようですから。

もしそういう意味であれば、サンプル コードの例が悪いように思えますが。
こちらを使う場面といったら、固定文言のグループ化 (かつパターンがある) しか思いつきません。

  文字列の列挙体

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-04-05 10:28
引用:

じゃんぬねっとさんの書き込み (2006-04-03 19:27) より:

私の頭では、もう思いつきません。



いえ十分便利です。
いろいろしていただいて、ありがとうございました。

#ちなみに、もうかっていません。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-04-05 10:39
引用:

Kazukiさんの書き込み (2006-04-03 21:38) より:
Enumや,それに順ずるもので項目名を定義するということは
プログラム内で扱うデータの形が決まってるってことですよね?

それならリフレクションに頼って性能を劣化(本当に少しずつだけど)
させるよりは…
型指定したDataSetや自分でそういう型を定義したほうが素直だと思うのです。
それじゃ駄目な理由って何ですか??

そこがちょっと気になります。



そうなんです。じゃんぬねっとさんのリンク先に書いてある、まさにその通りです。
キーワードをコードに埋め込む必要が生じた場合に広く使える方法が知りたかった
のです。
Yam
大ベテラン
会議室デビュー日: 2003/09/13
投稿数: 179
お住まい・勤務地: だんじり祭りの地
投稿日時: 2006-04-05 11:16
横から失礼します。
引用:

R・田中一郎さんの書き込み (2006-04-05 10:39) より:
キーワードをコードに埋め込む必要が生じた場合に広く使える方法が知りたかった
のです。


このような場合、私はEnum.ToString()を愛用していました。(R.田中一郎さんの>>1ですね)
ところがVS2005になって上記のインテリセンスに[使用しないでください]との表記が!!

おそらくFlagsAttribute が適用されると戻り値が変わるのでこのような警告が出ると思うのですが合っているでしょうか?<識者の皆様
使用を控えるべき理由が他にあるのでしょうか?

#てにをは修正

[ メッセージ編集済み 編集者: Yam 編集日時 2006-04-05 11:17 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-05 12:28
引用:

Yamさんの書き込み (2006-04-05 11:16) より:

おそらくFlagsAttribute が適用されると戻り値が変わるのでこのような警告が出ると思うのですが合っているでしょうか?


Flags 属性が適用されなくとも、組み合わせた値は格納できてしまいますから、
その時点で安全であることが保証されないですね。

引用:

使用を控えるべき理由が他にあるのでしょうか?


本質的に安全ではないからそうしているのかもしれませんね。
(文字列定数のような使い方をしていると MS が想定しているとするならばですが)

メンバに対して直接、ToString しているのかどうかは、コンパイラはわからないでしょうから。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Yam
大ベテラン
会議室デビュー日: 2003/09/13
投稿数: 179
お住まい・勤務地: だんじり祭りの地
投稿日時: 2006-04-05 13:45
レスありがとうございます。
引用:

じゃんぬねっとさんの書き込み (2006-04-05 12:28) より:
[本質的に安全ではないからそうしているのかもしれませんね。
(文字列定数のような使い方をしていると MS が想定しているとするならばですが)

メンバに対して直接、ToString しているのかどうかは、コンパイラはわからないでしょうから。


うーん、FramWork1.1と比べてより安全でなくなったという訳でもないでしょうから(希望的観測w)このまま使い続けることにします。
変事があれば報告します。

スキルアップ/キャリアアップ(JOB@IT)