- PR -

【C#】 複数のクラス(プロジェクト)から共通の定数を使いたい

投稿者投稿内容
Orion
常連さん
会議室デビュー日: 2005/07/11
投稿数: 27
お住まい・勤務地: 京都府・京都市
投稿日時: 2005-07-23 01:02
また初歩的な質問をします。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=12010&forum=7
でも書かれていたことですが、
この例ででは、定数を集めたDLLを参照して使用するものでした。
しかし、こうするとDLLの数が増える気がします。
DLL化しなくても以下のような感じでいいでしょうか。

<DefConst.cs>
namespace ManageUser
{
namespace clsConstant
{
class clsConstant
{
public const int DefMax = 100;
public const int DefMin = -100;
}
}
}

<ClassOther.cs>
namespace ManageUser
{
namespace Class1
{
Class Class1
{
public void Class1()
{
}

public int Max()
{
clsConstant clsConst;

return clsConst.DefMax;
}
}

namespace Class2
{
Class Class2
{
public void Class2()
{
}

public int Min()
{
clsConstant clsConst;

return clsConst.DefMin;
}
}
}
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-07-23 01:40
引用:

しかし、こうするとDLLの数が増える気がします。


DLLにどう分けるかはOrionさんしだいです。
実際にやってみてはいかが。
そもそもDLLの数が増えること自体はたいした問題ではないですよね。

_________________
たつごろー
codeseek
こみゅぷらす
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-07-23 06:35
 これって、DLL じゃなくて、.cs ファイルが減ってない?
_________________
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-07-23 06:35
 これって、DLL じゃなくて、.cs ファイルが減ってない?
_________________
Orion
常連さん
会議室デビュー日: 2005/07/11
投稿数: 27
お住まい・勤務地: 京都府・京都市
投稿日時: 2005-07-23 07:31
レス有難うございます。

引用:

たつごろーさんの書き込み (2005-07-23 01:40) より:
引用:

しかし、こうするとDLLの数が増える気がします。


DLLにどう分けるかはOrionさんしだいです。
実際にやってみてはいかが。
そもそもDLLの数が増えること自体はたいした問題ではないですよね。





DLLの数は結構重要だと思います。単純に定数を提供するだけのクラスだけ単独でDLL化するのはあまり気が進まないのです。
たくさんの機能があるクラスライブラリの一部のクラスが提供することなら良いのですが。
とりあえず試してみます。
C++のように#defineなどが使用できればいいのですが。しょうがないですね。
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-07-23 07:53
引用:

DLL化しなくても以下のような感じでいいでしょうか。


いいと思います。
共通の固定リソースを特定のクラスにまとめるという意図ですよね。

ただ、もしも、ある定数が特定のクラス内に持つべき値だというときなら、私ならクラスに埋め込んでしまいます。クラスの特徴ならばクラス内に持ったほうがよいと思うからです。可変の値ならxmlに出します。
Orionさんが書かれたサンプルコードがそうだという意味ではないですよ。これは設計の方針等によってかわるところでもあります。


_________________
たつごろー
codeseek
こみゅぷらす
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-07-23 09:10
引用:

ある定数が特定のクラス内に持つべき値だというときなら、
私ならクラスに埋め込んでしまいます。
クラスの特徴ならばクラス内に持ったほうがよいと思うからです。


そうですね、クラスはデータと手続きをまとめたものですから。
私は必ずクラスに含めますね。



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Orion
常連さん
会議室デビュー日: 2005/07/11
投稿数: 27
お住まい・勤務地: 京都府・京都市
投稿日時: 2005-07-23 09:48
引用:

じゃんぬねっとさんの書き込み (2005-07-23 09:10) より:
引用:

ある定数が特定のクラス内に持つべき値だというときなら、
私ならクラスに埋め込んでしまいます。
クラスの特徴ならばクラス内に持ったほうがよいと思うからです。


そうですね、クラスはデータと手続きをまとめたものですから。
私は必ずクラスに含めますね。







みなさんどうもありがとうございます。
そのクラスで必要なデータは当然クラス内で定義すべきものだと
僕も思います。

ただ、今回は、単純にC++の
#define XXX 1
の様な事をしたいだけなのです。
(各クラス共通の値として使用したいのです。)

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