- PR -

構造体のNULL表現

投稿者投稿内容
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2004-06-14 11:43
引用:

burton999さんの書き込み (2004-06-14 11:04) より:
私の読んだ本によると
クラスは参照型、構造体は値型で
Intなど頻繁に使用されるものを参照型にすると

1.ポインタの参照先を探しにいく処理がオーバーヘッドになる
2.ポインタ変数分のメモリがもったいない(Intは4byte、ポインタ変数も4byteと2倍になってしまう)

だからだそうです。。。



特に配列の場合は大きな差が出るそうです。
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_005/cs2_005_03.html
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2004-06-14 12:45
引用:

でもNULLが使用できないのは不便ですよね(´Д⊂グスン



DB のフィールド値を扱うような場合に困りますよね。
それを見越してか、VS 2005 では Nullable テンプレートの追加が検討されています。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
IKA
会議室デビュー日: 2003/10/20
投稿数: 3
投稿日時: 2004-06-14 15:54
System.Data.SqlTypes.SqlDateTime を使うと行けそうです。
dragonball
会議室デビュー日: 2004/06/09
投稿数: 19
投稿日時: 2004-06-14 19:03
非常に参考になりました。皆様ありがとうございます。

構造体にもやはり意義があったのですね。

> System.Data.SqlTypes.SqlDateTime を使うと行けそうです。

これいいですね。試してみます。


少しずれてしまうかもしれないのですが、
NULL値の検索で非常に悩んでいます。

どうやら
set ansi_nulls on
を実行すると

"AAAA = NULL"でなく"AAAA IS NULL"

としないとヒットしないのですが、
セキュリティー上この設定を変えるべきではないようでした。

となると、
"AAAA = @AAAA"のような形で指定しパラメータを追加していく方法では
NULLを検索することができません。

結局パラメータの追加は使わない方がよいのでしょうか?
それともNULL不可の設計をするべきなのでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-06-14 19:12
引用:

dragonballさんの書き込み (2004-06-14 19:03) より:

"AAAA = @AAAA"のような形で指定しパラメータを追加していく方法では
NULLを検索することができません。

結局パラメータの追加は使わない方がよいのでしょうか?
それともNULL不可の設計をするべきなのでしょうか?



このスレッド
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=12273&forum=7&10
dragonball
会議室デビュー日: 2004/06/09
投稿数: 19
投稿日時: 2004-06-14 19:36
Jittaさんありがとうございます。
お手数おかけしまして申し訳ありません。

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