C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: C# と C(定義)


(過去ログ 10 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■2028 / inTopicNo.1)  C# と C(定義)
  
□投稿者/ もじもじ (1回)-(2007/03/14(Wed) 21:38:50)

分類:[C# (Windows)] 

よろしくです。

複数のクラスで共通の定義を用いたとき、C#ではどうするのでしょうか?
Cだとヘッダファイルに構造体の定義や、#define(constが代替?)で値を設定し、
そのファイルをincludeしていました。
列挙体のクラスを作成するのでしょうか?
より良い方法のアドバイスをお願いします。

引用返信 編集キー/
■2029 / inTopicNo.2)  Re[1]: C# と C(定義)
□投稿者/ 魔界の仮面弁士 (258回)-(2007/03/14(Wed) 22:01:17)
No2028 (もじもじ さん) に返信
> 複数のクラスで共通の定義を用いたとき、C#ではどうするのでしょうか?

その「定義」というのが何のことを指しているのかわからなかったのですが、
たとえば、interface 、 class 、enum などのことを示しているのであれば、
それらを「定義」してあるアセンブリを参照設定するか、
それらを「定義」してあるソースをプロジェクトに追加してやれば、
名前空間を指定して、各クラスから共通的に利用できるのでは。
引用返信 編集キー/
■2030 / inTopicNo.3)  Re[1]: C# と C(定義)
□投稿者/ よねKEN (16回)-(2007/03/14(Wed) 22:01:24)
よねKEN さんの Web サイト
> 複数のクラスで共通の定義を用いたとき、C#ではどうするのでしょうか?

何の定義ですか?

> Cだとヘッダファイルに構造体の定義や、#define(constが代替?)で値を設定し、
> そのファイルをincludeしていました。
> 列挙体のクラスを作成するのでしょうか?

C#ではすべてクラス(構造体や列挙型などの値型も)ですので、
適切なクラスに適切な定数やフィールドやプロパティやメソッドを定義します。

複数のプロジェクトで共通に利用するものは、ライブラリ(DLL)にまとめておき、
必要なプロジェクトで参照設定して使います。

引用返信 編集キー/
■2031 / inTopicNo.4)  Re[2]: C# と C(定義)
□投稿者/ もじもじ (2回)-(2007/03/15(Thu) 10:00:33)
> 何の定義ですか?

説明不足で申し訳ありません。

たとえば
#define SUCCESS 1(C的ですが。。。)
みたいなことです。

複数のクラスで同じように使用したいので、アドバイス通りdllにしてみます。

ありがとうございました。

解決済み
引用返信 編集キー/
■2033 / inTopicNo.5)  Re[3]: C# と C(定義)
□投稿者/ よねKEN (17回)-(2007/03/15(Thu) 11:23:31)
よねKEN さんの Web サイト
>> 何の定義ですか?
>
>説明不足で申し訳ありません。
>
>たとえば
>#define SUCCESS 1(C的ですが。。。)
>みたいなことです。

最初の投稿で#defineは一例として挙げてらっしゃいたのは認識していましたが、
その上で「何の定義ですか?」と問い直したのは、そういった部分的な話ではなく、
全体としてどういうことをしたいのかな?と思っての発言です。

というのもCとC#では言語が別物ですし、
また、言語の根本的な考え方が構造化とオブジェクト指向とで違うため、
C言語でのxxxはC#のyyyに当たるというように機械的に置き換えられるものではないので、

・XXXXな用途の#defineをC#に移植→じゃあ、WWWWクラス内でConstによる定数定義をすればいいのでは?
・YYYYを実現したい!→じゃあ、列挙型を使えばいいのでは?
・ZZZZ機能をコンバート→フレームワークのライブラリに同種のものがあるから、コンバート不要だと思いますよ。

といった例(適当ですが(^^;)のように、状況に応じてC#での書き方が変わってくるように思います。
#今まさにC→C#へのコンバートをされているのかな?と思いましたので、
#具体的な内容についてであれば、もう少し具体的なコメントもできるかもしれません。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -