クラスの支配を逃れる方法はあるか? – プログラミング – Home

クラスの支配を逃れる方法はあるか?
 
通知
すべてクリア

[解決済] クラスの支配を逃れる方法はあるか?


暇人
 暇人
(@暇人)
ゲスト
結合: 22年前
投稿: 19
Topic starter  

只今、C# 2005 Beta1で勉強中です。
今回お聞きしたいのは共通で使用する関数を作成する時にクラスを意識することなく作成する
方法です。
例えばエラー処理をするErrLogMsgという関数をクラスA, B, Cから共通で呼び出したい場合、
ErrLogMsgをそれぞれのクラス内に書いてしまうとメンテ時の効率が下がってしまうので共通
領域に記述しておきたいのですが、クラスDを作ってその中に記述すると確かに共通化はでき
るのですが、関数を呼び出すときにクラスDの変数を用意(仮にD_Dush)してD_Dush.ErrLogMsg
として呼び出すようになってしまいます。
使用者側にクラスを意識させること無く呼び出せるようにしたいのですがどのようにすればよ
いのでしょうか。それともそのような方法はないのでしょうか。


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

もしかして、静的メソッドのことをおっしゃているのでしょうか?

ぐぐってみたページを載せておきます。
http://www-ise2.ise.eng.osaka-
u.ac.jp/~iwanaga/programming/csharp/oo_static.html


返信引用
暇人
 暇人
(@暇人)
ゲスト
結合: 22年前
投稿: 19
Topic starter  

返信ありがとうございます。

> もしかして、静的メソッドのことをおっしゃているのでしょうか?
>
多分、違うと思います。
参考ページを見させていただきましたが、静的メソッドで作成するとクラス名.関数名()と言
う形で呼び出さなければいけないと思います。そうではなく関数名()だけで呼び出すようにで
きないでしょうか。
イメージ的にはAPIみたいなものを考えてました。(VCやVB等で使用するときに○○.DLLに
○○関数が含まれているのでそれを呼び出せば機能が使用できる。その時にどのクラスに所属
しているかの概念は必要ないみたいなものです。)
↑うまく伝わるかな?

PS.
C#では共通関数はStatic定義したクラスに作成するのが普通なのでしょうか。
一番始めの投稿前はpartialの意味が良くわかっていなかったので共通関数が増え、多数ファ
イルに分割すると共通関数を管理するクラスが増えてしまい、使いにくいのかと思っていまし
た。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

>そうではなく関数名()だけで呼び出すようにできないでしょうか。
Cでいうとグローバル関数みたいなものでしょうか?

MSDNに

C# のクラスのメソッドには、クラスとして実行されるコードが含まれます。C# ではス
タンドアロン関数やグローバル関数がサポートされないため、C# のすべてのメソッドは
クラスメンバとして存在します。メソッドは常に、クラス宣言の一部として宣言されま
す。

とありますけどどうなんでしょうか?
http://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/jpdnprogvcsharp/htm/chapter2.asp


返信引用
暇人
 暇人
(@暇人)
ゲスト
結合: 22年前
投稿: 19
Topic starter  

>>そうではなく関数名()だけで呼び出すようにできないでしょうか。
>Cでいうとグローバル関数みたいなものでしょうか?
>
そうです。グローバルなものをイメージしておりました。

>MSDN
>
大変参考になりました。
やはり関数はクラス外には作成できないんですね。(泣
本疑問を持った根底部分もpartialを使うことで解決するみたいですし。

お付き合いいただきありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました