- - PR -
DateTime型の定数
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-06-30 10:14
DateTime型の定数を宣言したいのですが、どのようにしたらいいのでしょうか?
× const DateTime dtHoge = 2000:01:01:10:00:00; × const DateTime dtHoge = (DateTime)"2000/01/01 10:00:00"; × const DateTime dtHoge = new DateTime(2000,1,1,10,0,0); | ||||
|
投稿日時: 2003-06-30 10:35
こんにちは。
const DateTime dtHoge = DateTime(2000,1,1,10,0,0); newしなくていいです。 | ||||
|
投稿日時: 2003-06-30 11:15
なるほど〜ありがとうございました!
スミマセン、初歩的な質問で・・・ | ||||
|
投稿日時: 2003-06-30 11:30
こんなことってできるんでしょうか? 実質的に、const には組込みでリテラルとして使える表現のある型しか 使用できないと思っています。 #表現があったからといって使用できるとは限らないかもしれませんが。 ドキュメントを読んだ感じだと、使用できるのは byte、char、short、int、long、float、double、decimal、bool、string および列挙体くらいっぽです。 | ||||
|
投稿日時: 2003-06-30 12:12
すみません、ちゃんと確認しないでポストしてました。
readonly a as datetime = datetime.parse("2000/01/01") const b as date = date("2000/01/01") constは定数が必要で、初期化された変数でもかまいませんが、オブジェクトへの参照は指定できません。基本的にnewしなければいけないものはオブジェクト参照が変数に入っています。従って、constの右辺にはできません。DateがリテラルなのでDateTimeもだろうと思ったら、DateTimeは違っていました。 失礼いたしました。 [ メッセージ編集済み 編集者: Jitta 編集日時 2003-06-30 12:19 ] | ||||
|
投稿日時: 2003-06-30 12:24
System.DateTimeは'クラス'を意味しますが、このコンテキストでは無効です。
というエラーがでてしまいました。 public static DateTime DATE_HOGE = new DateTime(9999,12,31,23,59,59); で代用する事にしました。 いろいろありがとうございました〜〜〜〜〜 #出かける前に「とりあえずお礼をば〜」と思ったのが裏目でした。スミマセン。 | ||||
|
投稿日時: 2003-06-30 13:39
定数として使用するのであれば、readony も指定した方が良いです。 # public にするのであればなおさらです。 ちなみに、DateTime の最大値をフラグ用値として使うのなら、 DateTime.MaxValue を使ってもいいと思います。 MSDN より、 > この定数の値は、10000 年 1 月 1 日の 00:00:00 よりちょうど > 100 ナノ秒タイマ刻み前の 9999 年 12 月 31 日の 23:59:59.9999999 > に相当します。 # これも、static readonly な変数(定数)です。 コード中に MaxValue と出てくると意図を表せない場合は、 初期化用の式として使えばよいです。 たとえば、 public static readonly DateTime DATE_HOGE = DateTime.MaxValue; | ||||
|
投稿日時: 2003-06-30 13:42
構造体などの場合もありますし、(正しく初期化するために)new しなければ ならないものが、参照型というわけではないです。 # DateTime 型も参照型ではなく値型です。 |