[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/25 16:56 / Filesize : 209 KB / Number-of Response : 852
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっとC#,C♯,C#(初心者用) Part36



1 名前:デフォルトの名無しさん [2009/01/20(火) 21:47:33 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

641 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:41:50 ]
意味不明すぎる

642 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:43:05 ]
たぶんクラスとインスタンスの関係が分かってないんじゃない?
生まれて半年だし

643 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:43:28 ]
staticだな〜説明は誰かに任す

644 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:44:38 ]
そこでstaticにしろと言うのは教育的じゃないと思う


645 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:45:02 ]
もうちょっと勉強進めればわかるよ
staticにすればいいのかもしれないけど実際は絶対やっちゃダメなパターン

646 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:47:02 ]
つってもなあ

「○○したいんだ」

って言ってる奴に勉強しろっても回答になってない気がするぜー

647 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:47:08 ]
ClassB
{
 public String string = 〜;
 ClassA a = new ClassA()
 //↓これメソッド内だよね?
 a.stack.push(string);
}

↑でインスタンス化された a の stack にはちゃんとPushされている。
ただそのせっかく作ったClassAのインスタンスaは参照されないまま消えてしまっただけ

648 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:10:59 ]
C#で質問があります。
timeが11:00と入力されなかった場合(たとえば1100と入力された場合)、コロンを追加しようとしています。
string time;
if (!(time.Contains(":"))) {
time = time[0] + time[1] + ":" + time[2] + time[3];
}
で、この値を見ると、11:00ではなくて98:00になっちゃうのですが、なんでこんな数字になっちゃうんでしょう。
原因と改良方法をご示唆いただけないでしょうか。


649 名前:636の者です。 mailto:sage [2009/02/04(水) 18:15:02 ]
windowsフォームのボタンを押したときの動作をプログラムで書きたいときは、
ボタンをダブルクリックすれば、プログラムを書く場所を自動で作ってくれますが、
クラスBにあるボタンを押したときの動作を、クラスAに書くことは可能でしょうか?



650 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:17:59 ]
>>648
char同士の文字コードの加算になってるから
time = '1' + '1';
でやってみるとわかるよ
time = time[0].ToString() + time[1].ToString() + ":" + time[2].ToString() + time[3].ToString();
にすればいい

>>649
+=を使ったイベントハンドラの登録方法が理解できていればできる

651 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:23:58 ]
> time[0].ToString() + time[1].ToString() + ":" + time[2].ToString() + time[3].ToString();
くどすぎる。
StringBuilder つかおうぜ。

652 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:27:28 ]
じゃあString.Format("{0}{1}:{2}{3}", time[0], time[1], time[2], time[3])で

653 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:27:30 ]
>>647
あ〜昔同じ失敗したな〜

654 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:27:37 ]
>>650
早速ありがとうございました。
ToString()でできました。


655 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:28:11 ]
>>651
そこで、StringBuilderは使わないだろ。
time = time.Substring(0, 2) + ":" + time.SubString(2, 2);

656 名前:636の者です。 mailto:sage [2009/02/04(水) 18:31:41 ]
>>650
なんとなくいけそうです。

>>653
お〜友よ〜

657 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:44:37 ]
>>621
ツール-フォルダオプションは、真っ先に見ました〜。
>>626、636
というか、ここで手動で関連づけを登録しました。

そうしたら、登録したとたん、「詳細設定」のボタンが消え、「元に戻す」というボタンに変化しちゃったのです。

詳細設定のボタンがあれば、アプリケーションの挙動を見れるかと思ったのですけど。
たとえば、txtの詳細設定のopenアクションを見ると、アクションを実行するアプリケーションの項目に、「C:\Windows\system32\NOTEPAD.EXE %1」とあり、これを修正すればよいことがわかります。
ところがなにしろボタンがないから、手も足もでない…。

空白かな〜。う〜〜む。
アプリケーションじたいはデータファイルのダブルクリックで起動しているのですが…。
ま、C#とはあまり関係なさそうなので、この件はこれで。
お騒がせしました。ありがとうございました。


658 名前:デフォルトの名無しさん [2009/02/04(水) 18:57:25 ]
お願いします(゚ω゚)
System.Text.RegularExpressions.Regexを使って
 [ok] 100
 [ok] 0.001
 [ng] 00 → 0
 [ok] 0.1000
前ゼロ入力をReplaceで""に置き換えたいのですが、正規表現が上手く書けませぬ
教えてエロい人

659 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 19:00:35 ]
>>658
正規表現 Part5
pc11.2ch.net/test/read.cgi/tech/1212498448/



660 名前:デフォルトの名無しさん [2009/02/04(水) 19:02:22 ]
あーd>>659 ここで聞きたかったぜっ♪

661 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:49:44 ]
>>645
他クラスからアクセスする変数には手当たり次第static使ってるんだが…

何を勉強すればいいんですか?

662 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:52:53 ]
構造化プログラミング

663 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:55:56 ]
オブジェクト指向プログラミング

664 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:57:38 ]
staticフィールドはダメだがstaticメソッドはいいぞ
privateなstaticメソッドが最高だ

665 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:58:06 ]
構造化プログラミングを理解してない奴が、オブジェクト指向を学んでも無駄。

構造化プログラミングを学んだら、中規模以上のプログラムをたくさん書く。
それからでもオブジェクト指向は遅くないよ。

666 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:59:25 ]
static メンバ変数なんて
ただ1個しか存在しないもんな。
2つ作りてええええええええ!!!! と思っても
1つしか存在できない。
不便過ぎ。

667 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:02:02 ]
C言語等の非OOA出身者はstaticをメモ帳や定数保管庫程度に考えてない

668 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:02:42 ]
しか が抜けた

669 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:02:49 ]
オブジェクト指向も関数型プログラミングも
深いとこに行くと実用的じゃない宗教じみたものがうじゃうじゃ出てくるから
そこに行ってしまわないように気をつけないと



670 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:12:08 ]
むしろいきなりOOPでいいと思うよ。
>>665みたいな意見はありがちだけど、構造化プログラミングなんて
中身のないスカスカな話で馬鹿でなければ「畳の上の水泳」で十分だと思う。

っていうか、俺も含めてたかがOOP理解したぐらいで鬼の首とったように語るのは
とても恥ずかしいよなw

671 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:16:29 ]
物事をオブジェクトに切り分けるというのは大成功した考え方だと思うけど
継承は失敗だしインターフェースの実装もそんなに上手くない感じだと思う
そういった抽象化はクロージャにした方がシンプルで分かりやすい

672 名前:デフォルトの名無しさん [2009/02/04(水) 22:19:30 ]
>>636
> 生まれて半年の者です。

おいおい、生後半年でプログラミングかよ。
たいしたもんだな!

673 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:21:38 ]
どんな天才だよw

674 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:24:22 ]
>>671
使いこなせない人にとって上手くないだけなんだろ

675 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:26:16 ]
母国語より先にプログラム言語を覚えたんだな
いったいどんな子に育つやら

676 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:28:11 ]
今さらオブジェクト指向だデザパタだインターフェースだってやるのは
正直違うかなと思うよ
今のC#にはもっとよい道具があるから
ただオブジェクト指向の基本的なところは抑えておかないとまずいけど

677 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:29:44 ]
だまれ若造

678 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:31:19 ]
お年寄りは静かにしてください

679 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:32:17 ]
>>676
それはC#が、最近になってより初心者向けの機能を実装をしてるってこと?



680 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:33:25 ]
>>676
>今のC#にはもっとよい道具があるから
ないってw
知ったようなこというなよ。

クラスベースのOOPが万能じゃないのは確かだけど、現時点でそのオルタナティブが
C#に限らず発案されているとは思えん。

681 名前:デフォルトの名無しさん [2009/02/04(水) 22:33:31 ]
>>679
クロージャはインターフェースよりも初心者にとって使いやすいと思うよ
直観的だし

682 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:35:26 ]
なんでクロージャーとインターフェイスを対置するんだ?

クロージャーとインターフェイスって「代替財」か?
わけがわからんよ。

683 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:37:16 ]
覚え方なんて人それぞれだし。

自分が通ってきた道についてしか語れないだろ。

684 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:38:00 ]
>>680
クロージャは実際には一つのメソッドを持ったインターフェースを
実装したオブジェクトを簡易に作り出す機能だけど
それさえあればオブジェクト指向の抽象化は全部出来る
オブジェクト指向の継承にまつわるややこしいところはすっ飛ばして
そっちに行くのが今は正解なんじゃないかねえ

685 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:39:36 ]
また変な主義者が来ましたねw

686 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:44:52 ]
>>684
それって、昔の1ファンクション1機能の構造化プログラミングと同じじゃないの?
静的なメソッドとは何がちがうのけ?

687 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:53:45 ]
相談があります。
C#でプログラムを作り始めて半年くらいになります。
ようやく身の回りのソフトは、だいぶ自作できるようになってきました。
ところで、それをリリースしようと思うと、プログラムのなかに直接書いてあるパスワードなどを設定ファイルに移動したり、自分用のディレクトリ構造にあわせて作った部分を汎用にする必要が出てきます。
それはまあやる気になればできそうなのですが、設定不要のかんたんなソフトを知人10人ほどにテストしてもらったところ、だれひとりとして.NETを入れていないため、動作しなかった、ということがわかりました。
ひょっとして、.NETやC#って、すごくマイナーなんでしょうか。
このままC#をつづけた方がよいのか(けっこう使いやすくて気に入ってます)、それとも別の言語に移ったほうがよいのか。
移るとしたら、もっとメジャーな言語ってなんですか?
Webベースのプログラムとか、Ajaxとかですか?
.NETを組み込んだ状態でコンパイルするとかできないんですかね〜?


688 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:55:38 ]
WebでできるようなことならSiilverlightというのがある
イメージ的には「C#で書けるFlash」
ランタイムは超小さいので配布が手軽

689 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:57:55 ]
だからクロージャとインターフェイスは代替関係にないってw
ただ一部の機能が競合関係にあるだけ。

たぶん従来ICompareをわざわざ用意していたようなのがデリゲートでスッキリ
書けるようになった、みたいな例を見て短絡したんだろうけど。



690 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:03:14 ]
>>687
.netFrameworkをインストールしないって人は多いよね
vista以降は.netはインストされてるから、ある程度は問題なくなると思うけど

なんのインストもなくて利用可能なのは、VisualStudioのC++のネイティブコードか、
Delphiぐらいじゃないのかな。

691 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:13:21 ]
しつもんです。

クラス内のメンバの初期化はどこでしてますか?
宣言時に初期化してしまうか、コンストラクタ内で初期化するか迷ってます。

///以下抜粋
internal sealed class 通信
{
private UdpClient UDP;
private Thread スレッド;
private List<byte[]> 受信リスト= new List<byte[]>();///宣言時か
private List<IPEndPoint> クライアントリスト= new List<IPEndPoint>();

public 通信(int ポート)
{
UDP= new UdpClient(ポート);///コンストラクタ内か
スレッド = new System.Threading.Thread(new System.Threading.ThreadStart(受信));
///抜粋以上


692 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:18:16 ]
>>691
基本は宣言時じゃないかな。
コンストラクタでもいいけど、コンストラクタをオーバーロードしているときには、
複数のコンストラクタで初期化しなくちゃいけなくなるから。

別のメソッドを用意して、そこで初期化してもいいけど、意味ない気がするし。
条件によるけど。

693 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:18:50 ]
C#, C♯, C#相談室 Part50
pc11.2ch.net/test/read.cgi/tech/1229661915/

埋まったけど立てられなかった。
誰か頼む。

694 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:22:33 ]
ホスト規制のためNGですた。

695 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:22:51 ]
>>693
あっちは相談室と名乗りながら、
質問の揚げ足を取って悦に浸っている常連ばかりだから嫌い

696 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:23:14 ]
>>686
Cとの比較で言うと、クロージャは「状態のある関数ポインタ」といえると思う
Xの値が欲しい時に

void Hoge(Func<int> getX){ int x = getX(); }

C#ならこう書ける。getXにはintを返す関数がなんでも入れられるしその場で作れる
Cで書くと

struct Func_int{
int (*func)(void*);
void* args;
};
void Hoge(Func_int fi)
{
int x = fi.func(fi.args);
}
こんなんだけど引数の型も作らなきゃいけないし関数はvoid*をとらなきゃいけないしで大変だ
オブジェクト指向で書くと

class Func<int> : IFunc<int>
{
int x, y;
public Func(int x, int y){ this.x = x; this.y = y; }
public int Method(){ return x + y; }
}
クロージャだと

Hoge(() => x + y);

こうだ。
これが進化だよ。

697 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:25:53 ]
>>695
でも作っとかないと、そういう人らがここに常駐されたら困る

698 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:31:25 ]
>>691
その前になんちゅうソースだコレ。

699 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:31:36 ]
>>697
心配無用
既に常駐してる



700 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:36:15 ]
まあとりあえず立てた。
C#, C♯, C#相談室 Part51
pc11.2ch.net/test/read.cgi/tech/1233757615/l50

701 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:36:42 ]
>>696
その例だと従来の方法でもStaticなメソッドを使えば
int x = Class.Method(a, b);
で代用がきくから同じことだと思うんだけど。何が違うの?

702 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:37:33 ]
読解性

703 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:40:36 ]
>>690
VC++ も今は CRT が DLL 推奨だから配るならインストーラ作るべき
なんやけどな。msm があるしサイズも小さいので格段に楽だから
.NET と比べるレベルじゃないけど。


704 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:42:54 ]
自分の場合は固定長バッファ持たせる時とか、ソース直書きのデータを持たせる時以外は宣言の所に初期化コードを書かないようにしてる。
基本的にはできるだけコンストラクタに書いたほうが、読みやすいコードになるよ。
#regionと組み合わせるとなお良い。

指すものがコンパイル時点で決まっていて、利用者側のコードに左右されない要素(リテラル的なもの)は宣言と初期化を一緒にしてもいいと思う
上の固定長バッファはあてはまらないけど…

705 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:44:00 ]
>>687
「.net Frameworksインストールしてね」で終わりじゃないか?
むしろ、Windows Updateで配布されてるんじゃないのか?.netぐらい

706 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:45:31 ]
>>700


707 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:47:58 ]
>>687
「めんどくせえなぁ・・・なんでこんな糞プログラムを・・・。そうだ!インストールしてない事にすればいいんだ!」

708 名前:デフォルトの名無しさん [2009/02/04(水) 23:49:28 ]
>>701
void Hoge()
{
int x = Class.Method(a,b);
}
これだとxはMethod(a,b)から返ってくる値しかとれないでしょ。

void Hoge(Func<int> getX)
こうしておけば

Hoge(() => x + y);
Hoge(() => x * y);

外部から自由な演算を入れられる。
ハッシュテーブルのキーが欲しいということになっても

Dictionary<TKey, TValue> CreateDictionary<TKey, TValue>(TValue[] array, Func<TValue, TKey> getKey)
{
Dictionary<TKey, TValue> dic = new Dictionary<TKey, TValue>();

foreach(var item in array)
{
dic.Add(getKey(item), item);
}

return dic;
}

var dic = CreateDictionary(array, item => item.Name);
その型のKeyにしたいものを自由に選べる

709 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:52:03 ]
.NET Frameworkは再頒布可能だからその自作ソフトとやらに含めて配布すればいいんだよ。

msdn.microsoft.com/ja-jp/library/xak0tsbd.aspx

ちなみにWindows Server 2003、Windows Vista、Windows 7にはリリース時点で最新の.NET Frameworkが入っている。(より新しいバージョンが出て、それが必要な場合は更に入れる必要がある)



710 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:53:57 ]
はやくXPが駆逐されればいいんだがなあ

711 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:57:24 ]
デザインパターンは関数型っぽいことを無理やり手続き型OOPLでやるための工夫が主だから
かなり簡単に実装できるよな

712 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:58:26 ]
>>708
それみると、君の主張するところの直感的でもないし、
初心者にもわかりにくいと思うよ

713 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:02:11 ]
>>712
じゃあオブジェクト指向や構造化でもっと直感的に、
初心者に分かりやすく書ける?

714 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:04:46 ]
スレ違い
よそで存分に議論してくれ

715 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:05:14 ]
初心者ではないが、何が書いてあるかさっぱりだw

716 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:07:06 ]
人の揚げ足取りと議論厨は相談スレにお引き取りください

717 名前:デフォルトの名無しさん [2009/02/05(木) 00:07:42 ]
すみませんコレは仕様なんでしょうか
1:public class Foo{
2: private readonly int[] test = new int[]{1,2,3,4,5};
3: public Foo(){
4:  int[] test2 = test1;
5:  test2[0]=2;
6:  Console.WriteLine(@"test[0]=" + test[0].ToString());
7: }
8:}
上記 2行目readonlyにしてるtestが、5行目で書き換えられてしまいます。

718 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:09:03 ]
>>708 じゃねーけど知りたいんならレキシカルクロージャとかで
ぐぐった方がいいと思うよ。

>>708
2ch で説明するのはさすがに難しいと思う

719 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:09:15 ]
4:  int[] test2 = test;
のまちがいです



720 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:09:37 ]
配列の要素がreadonlyになるわけではありません

721 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:14:31 ]
>>718
2chで説明するのが難しいことが、初心者向けなの?

722 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:15:02 ]
>>718
ググっても関数型言語ユーザーの宗教じみた言論に圧倒されるばかりだと思う

723 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:18:22 ]
>>701
匿名関数は生成したスコープの変数をそのまま取り込める(環境を渡してるって言うんだっけ?)
副産物的な物だけど、遅延評価的な振る舞いも持ち合わせてる

724 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:19:56 ]
この辺の議論からもう13年か。
ttp://java-house.jp/ml/archive/j-h-b/001955.html
ttp://www.google.co.jp/search?hl=ja&q=%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%B8%E3%83%A3+interface+site%3Ajava-house.jp

>>718
むしろ近年のクロージャブームはLLの方が先に火をつけた気もするけどね。
JavaScriptの無名関数とかやっぱり初心者泣かせなのかねぇ?

725 名前:723 mailto:sage [2009/02/05(木) 00:21:07 ]
ごめんさっきの >>718 あてじゃなくて >>722

726 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:31:46 ]
何々、これでいいじゃん?

public static class Class
{
 static int i;
 public static int Method() { return i++; }
}

727 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:37:50 ]
>>726
でもさ、C#でクラスそのものを引数に渡すって面倒事が多いでしょ。
だからデリゲートでもインタフェースでもインスタンスを生成して引数に渡していたのに。

728 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:41:24 ]
クラスそのものって引数に渡せるの?

729 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:41:29 ]
>>727
staticだからclassそのものを渡す必要なんてないよ
どこでも自由に

this.label1.Text = Class.Method().ToString();

でいいんじゃない?



730 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:43:56 ]
>>728
private void button1_Click(object sender, EventArgs e)
のobjectはクラスじゃん?

731 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:48:04 ]
objectはインスタンスだろ

732 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:48:56 ]
ocjectはクラス名だ

733 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:49:27 ]
object

734 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:50:41 ]
この場合は話の流れからインスタンスってことじゃねーの?


735 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:51:26 ]
public class Class
{
 int i;
 public int Method() { return i++; }
}

これの方がいいだろ
たくさん作れるし

736 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:54:51 ]
>>734
この流れって話の本筋なわけ?

737 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:56:27 ]
>>729
それだと元のコードの引数を変えれば動作を変えられるという点が失われているじゃないか。

738 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:34:39 ]
>>737
その引数を、Staticなメソッドで渡してあげればいいじゃない
public static class test
{
 static int i;
 public static int Method1() { return i++; }
 public static void Method2(int k) { i = i + k; }
}

739 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:36:47 ]
>>738
いや、>>708とか足し算が掛け算になったり、辞書引いたりするような変化なんだけど。



740 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:45:46 ]
>>739
つまり

>だからデリゲートでもインタフェースでもインスタンスを生成して引数に渡していたのに。

というのは

>708とか足し算が掛け算になったり、辞書引いたりするような変化なんだけど。

と同義ということ?


741 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:58:26 ]
C#でCreateToolhelp32Snapshot関数を使いたいのですが、どう書けばいいのか分かりません。
.NET Frameworkに似たようなクラスライブラリはありませんか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<209KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef