Mr.Tの場所

特攻野郎Aチームじゃないよー

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  207  : 記事  0  : コメント  840  : トラックバック  43

ニュース

  • 性別:男
  • 猫1:まる
  • 猫2:もろ
  • 猫3:にゃん左部郎
  • タバコ:男は黙ってJPS
[わんくま同盟] C#, VB.NET 掲示板
フィードメーター - Mr.Tの場所

書庫

日記カテゴリ

Mr.Tです、こんにちは。

 

マジックナンバー、マジックワードをプログラム上から消そうというときには、Const定義やリソースを利用する。

Private Const MaxSelectionNo as Integer = 10

Me._errorMessage = Resources.MyResource.InvalidInputLength '入力長がおかしい

さて。

 

1)文字列は、リソースに入れることができる。

 メッセージとか、タイトルとかCaptionも...

2)Const宣言の10をリソースに突っ込もうとして、IDEで怒られる。

  ああ、Constはビルド時に値がセットされるから、こういう使い方はできないよな。そうそう...

3)Const定義している定数や、判定値をリソースに突っ込み始める

 マジックナンバー、マジックナンバー...

4)(作業中)手をとめた。

 あれ、こうしてると、全く、Constっていらなくね?

5)Constについて、MSDNで調べ始める

 んなこた、わかってるんだよ、 MSDN! もちっとガイドライン的な話はねーのかよ!

6)ResourceについてもMSDNで調べてみる。なんだか、おかしいと気がついてきた

 Constってリソース定義に置き換えられたっけ? 多言語対応...必要ないし...

7)元に戻し始める

 おかしーとおもったんだよなー。そりゃ、メッセージはいいんだけど、マジックナンバーはやっぱConstだなー。

8)しばらく時間がたって、1)に戻る。

投稿日時 : 2007年12月18日 15:12

コメント

# re: 壮絶な間違い 2007/12/18 15:43 渋木宏明(ひどり)
const か readonly か、列挙子使いますね。

# re: 壮絶な間違い 2007/12/18 15:58 Mr.T
>const か readonly か、列挙子使いますね。

ReadOnlyは、Sharedですか?
どっちを使う?って話は何かで聞きましたが、
Constはビルド時にセット
Shared ReadOnly は実行時にセット
にくらいしかよくわかってません。


# re: 壮絶な間違い 2007/12/18 16:58 渋木宏明(ひどり)
どれが VB の何にあたるかは知りません (^^;

const は初期化の制約が厳しいので、実際には static readonly や static プロパティをよく使います。

でも、C/C++ の頃のように、いわゆる「定数値」を定義しておいて、それを使う機会は激減しています。

foreach があるので配列の最大値みたいなやつがコードに出現することはないですし、必要だったとしても .config から取り込んで static プロパティとして公開することがほとんどです。


# re: 壮絶な間違い 2007/12/18 18:43 Mr.T
> 必要だったとしても .config から取り込んで static プロパティとして公開することがほとんどです。

なるほど、やはり値としては外部に出しちゃうわけですね...
アレ?
やっぱりResourceに埋め込んでも同じことじゃね?w


# re: 壮絶な間違い 2007/12/19 7:40 渋木宏明(ひどり)
Resource と .config では意味や用途が異なります。

# re: 壮絶な間違い 2007/12/19 11:36 Mr.T
一応、Resourceで持つ場合はメッセージなどの文言だけにしてます。はい。



Post Feedback

タイトル
名前
Url:
コメント