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

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

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

Re[4]: 別のファイルとのリンク方法


(過去ログ 31 を表示中)

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

■15245 / inTopicNo.1)  別のファイルとのリンク方法
  
□投稿者/ OROCHI (1回)-(2008/03/09(Sun) 12:21:07)

分類:[C#] 

はじめまして,OROCHIと申します

最近C#を始めたのですが,以下のようなプログラムを作っています
ところが問題があり,解決方法を教えていただきたく思い投稿しました

プログラムの内容
1.名前空間内に配列Aを定義する
 EX:string[] A={a,b,c,d................};
2.同じ名前空間内のメンバ関数Xの中でその値を読む
EX:
private void X()
{
(Aの内容を用いた処理を行う)
}

という感じです.ここで問題なのが
1.Aの{}の中身が膨大である
2.X以外にも結構な種類の関数を使う

このため,メインの名前空間に全部書くとソースが長くなりすぎてしまいます.そこで以下のような方法をとりたいと思うのですが,やりかたを教えていただけないでしょうか?
1.別のコードファイルを作り,関数や配列の中身をそこに記述する
2.それらの関数や値を呼ぶことで処理を行う

C++なら「新しい項目の追加」→「cppファイル」→「追加したファイルの中に必要な内容を記述」→「メイン文の頭で#include (追加したファイル名)」でいけるのですが…

なによtぞよろしくお願いします
それでは,失礼します




引用返信 編集キー/
■15246 / inTopicNo.2)  Re[1]: 別のファイルとのリンク方法
□投稿者/ επιστημη (850回)-(2008/03/09(Sun) 14:12:19)
επιστημη さんの Web サイト
> 1.別のコードファイルを作り,関数や配列の中身をそこに記述する
> 2.それらの関数や値を呼ぶことで処理を行う

つまりこの、複数のソースコードで一つのクラスに仕立てたい、てことでしょか。
だったら partial class で解決すんじゃないかと。

--- X1.cs
public partial class X { ...あれや }

--- X2.cs
public partial class X { ...これや }

引用返信 編集キー/
■15250 / inTopicNo.3)  Re[2]: 別のファイルとのリンク方法
□投稿者/ 出水 (7回)-(2008/03/09(Sun) 15:46:10)
namespace ns
{
class cl
{
public static void func1(){}
}
}

ns.cl.func1();
これで呼び出せるような気がしますが…

引用返信 編集キー/
■15251 / inTopicNo.4)  Re[1]: 別のファイルとのリンク方法
□投稿者/ Tom Yama (38回)-(2008/03/09(Sun) 15:53:45)
No15245 (OROCHI さん) に返信
> 1.Aの{}の中身が膨大である
であれば、クラスを分けることを、検討すべきだと思います。
引用返信 編集キー/
■15271 / inTopicNo.5)  Re[2]: 別のファイルとのリンク方法
□投稿者/ OROCHI (3回)-(2008/03/09(Sun) 23:51:11)
ありがとうございました.参考になります
書き忘れたのですが私の環境はVS2003で.NETFREMEWORKは1.1及び2.0がインストールされています 

>επιστημη様
>つまりこの、複数のソースコードで一つのクラスに仕立てたい、てことでしょか
 おおむねその通りなのですが,以下のように名前空間内にあるクラス内の関数を,複数のソースコードに分けたい,という形です
 説明不足で申し訳ありませんでした.
--- X1.cs
namespace ns
{
public class X
  {
    private void M(){なんとか…};
    string[] A={a,b,c,.....}
  }  
}

(上記の「なんとか…」や配列Aの{}の中身を別のソースコードに記述したい)

partial class は名前空間内では使えないようでしたので,残念ながらおっしゃる方法では無理のようです
せっかく回答いただいたのに申し訳ありませんでした.


>出水様
 おっしゃる通りの方法で無事動くことを確認しました
 ありがとうございます

>Tom Yama 様
 クラス分割は考えていませんでした
 そちらの方法も調べてみます
 ありがとうございました

解決済み
引用返信 編集キー/
■15274 / inTopicNo.6)  Re[3]: 別のファイルとのリンク方法
□投稿者/ myugaru (37回)-(2008/03/10(Mon) 02:07:44)
myugaru さんの Web サイト
2008/03/10(Mon) 02:12:26 編集(投稿者)
2008/03/10(Mon) 02:08:19 編集(投稿者)

No15271 (OROCHI さん) に返信
> partial class は名前空間内では使えないようでしたので,残念ながらおっしゃる方法では無理のようです
> せっかく回答いただいたのに申し訳ありませんでした.


そんな大嘘で締めくくるのはやめてくださいww

--- X1.cs
namespace ns
{
public partial class X
  {
//他の部分はここにおいといて
  }  
}


--- X2.cs
namespace ns
{
public partial class X
  {
// こっちにこれだけ分けたりできます。絶対にw
    private void M(){なんとか…};
    string[] A={a,b,c,.....}
  }  
}



できないってんだったらオイラあんたの一生涯の奴隷になってやってもいいやww
引用返信 編集キー/
■15275 / inTopicNo.7)  Re[3]: 別のファイルとのリンク方法
□投稿者/ myugaru (38回)-(2008/03/10(Mon) 02:17:55)
myugaru さんの Web サイト
2008/03/10(Mon) 02:38:42 編集(投稿者)
2008/03/10(Mon) 02:18:44 編集(投稿者)

No15271 (OROCHI さん) に返信
> 書き忘れたのですが私の環境はVS2003で.NETFREMEWORKは1.1及び2.0がインストールされています 

あーーー!
partialはC#2.0からの機能です。だから使えないんですよ。
引用返信 編集キー/
■15288 / inTopicNo.8)  Re[4]: 別のファイルとのリンク方法
□投稿者/ OROCHI (4回)-(2008/03/10(Mon) 12:47:15)
myugaru 様

> partialはC#2.0からの機能です。だから使えないんですよ。

なるほどそういうことでしたか.今,VS2005で実験してみたら今度はうまく行きました
2003ではpartialと打ってもコンパイルすら通らなかったのでようやく合点がいきました

ありがとうございます
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -