ふらっとC#,C♯,C#(初心者用) Part61
に
Sun day
foreach
GoSub Return
System.Net.Sockets.SocketでCSテストしてたんだけど receiveの戻りが0byteなら終了と判定してたら 接続直後にたまに0byteが帰ってきていきなり切れたと判定される だから例外が発生したら終了判定しようとしたら 相手のsocket.Closeを呼び出しても例外が発生しない いったいどうすれば?
7 :
デフォルトの名無しさん :2010/06/29(火) 12:55:44
受信メールのライブラリがないって聞いたんだけど、どうすればいいの(´・ω・`) メール受信ソフトはつくれないの?
9 :
7 :2010/06/29(火) 13:07:41
あ、どうも
>>9 自前で組むこともできるんですね。また、商用で売ってるんですね。
ライブラリを買ってみようかな・・
どうもありがとう。
10 :
7 :2010/06/29(火) 13:09:40
ああ、BASP21っていうのは、無料だ・・ 失礼しました。
何この痛い子
(´・ω・`)・・
13 :
デフォルトの名無しさん :2010/06/29(火) 17:57:49
ニコニコとツベは擬似スとリーミングだからレンジ指定してダウンロードすれば いいんだろうけどシークバーの単位は時間だからなあ 頭から順次再生だとそれほど問題にはならないだろうけど シークバーを動かして途中から再生の場合は指定した時間が 動画データのどの辺から始まるのかという情報を持ってないと 厳しいかもね あれってどうやってるんだろう
14 :
デフォルトの名無しさん :2010/06/29(火) 17:58:49
ああああ
書き込むスレ間違えた
>>13 は無視してw
DOMについて勉強したいのですがいいサイトってありますか?
DOMにも色々ある
じゃ、リックドムでお願いします。
VS2010ってC# Ver.4.0の新機能使えますか? 使えるならこの機に載せ替えようかと思うんですが
当然使えます。
即レスありがとう 明日にでも買ってこよう
使えるけどdynamicやジェネリックの共変反変は.NET4必須 あとはCOM interop専用
主に使いたいのがオプション引数や名前付き引数だったんです dynamicとかCOM相互運用とかはまだ分かってないド素人ので、そっちも追々使えるようになりたいです
オプション引数や名前付き引数はCOM相互運用のために仕方なく追加されたんだよ あんまり積極的に使うもんじゃない
すいません、質問です。 Form1ウィンドウからボタンをクリックして、Form2のウィンドウを表示させたいのですが、どうプログラムを組んだらよいのでしょう? これだけじゃ分りにくいかもしれませんが、アドバイスお願いします。
そのまま書くだけだが……。何が分からないのかさっぱり分からん。
Form2 f2 = new Form2(); f2.Show(); これだけなんだけどもっと違うことがしたいの?
なにがわからないの?
なにがわからないのかわからないの?
もうなにもわからない!ぼくはだれなの?ここはどこなの?!
きみはうんこ、そこはべんき
おいすぃぃぃ!!!!うんこおいすぃぃぃのお”お”お”ぉぉぉぉ!!!
この状況、どうすればいいの(´・ω・`)
お兄ちゃん、らめぇぇ そこは、おしっこしゅゆところよ
便器ウマー!!
なにこのスレ怖い
こわくないよ、おいで
ピクチャーボックスの中で円を描画する。 その円を動かしたい。 操作はキーボード上でもマウス上でも、どちらでも構いません。 だれか動かし方を教えてください。
ピクチャーボックスのマウスムーブイベントで処理した例 private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { Graphics g = pictureBox1.CreateGraphics(); g.Clear(Color.White); g.DrawEllipse(Pens.Black, e.X - 30, e.Y - 30, 30, 30); g.Dispose(); } あくまで例だからね
using使えよ それと画面クリアしちゃったらイライラ棒にはならんぞw
>>40 こういうのを見るといつも思う
「で、最終的にそのコードでやるやつなんて居るの?」ってw
結局ちらつき防止でダブルバッファとかやるわけで
そんな糞コードを教えて何の意味があるのか分からん
MSDNも含めてw
ピクチャーボックスの中で円を描画し、その円を動かしたい 操作はキーボードでもマウスでも、どちらでも構わない 要件は100%満たしてるなw
んだ
45 :
デフォルトの名無しさん :2010/07/02(金) 05:25:25
C#からCで書かれた関数(DLL)にアクセスする必要がありますが Cの関数から構造体をポインタで受け取り、C#側で処理してまたポインタで結果を返す というのはぶっちゃけ可能なんでしょうか? C#はまだ勉強を始めたばかりで、ポインタは使用しないほうがよいと言われたのですが・・・
そりゃ不可能じゃないが ポインタ使わずとも可能なケースもある
C#->文字列に変換->仲介DLL->構造体に変換->DLL とかすれば頭使わなくていい
>>46 アンマネージで確保して呼び出せば行ける
流れとしては
1.C#で構造体を作成
2.アンマネージメモリを確保
3.C#の構造体をアンマネージメモリに展開
4.アンマネージメモリのポインタをDLLに渡して呼び出す
5. 戻ってきたアンマネージメモリをC#構造体に展開
6. アンマネージメモリを解放
MCIにアクセスするライブラリを作ったけどかなり苦労した
>>46 追加
これは他の方法でやった手法だけど
C++/CLIでラップDLLを作る方が楽かもしれない
C++の構造体もそのまま定義してアクセス出来る
結局はC#側にはそのままでは渡せないので
マネージ型の構造体に展開する必要はあるけど
>>46 元の関数がよっぽど変な仕様でない限り、ポインタなんか使わなくても可能。
C#側からは構造体の参照渡しに見える。
ポインタとの相互変換はランタイムが勝手にやる
typedef struct { int x; int y; } HOGE; int WINAPI hage(HOGE *p); たとえばこういう関数をエクスポートしているDLLがあるとしたら、C#側では、 [StructLayout.Sequential] struct HOGE { public int x; public int y; } [DllImport("hoge.dll")] static extern int hage(ref HOGE p); こんな風に構造体とメソッドを定義して、普通に構造体を渡せばOK。
そのくらいなら、P/Invokeでいけるでしょ。
54 :
デフォルトの名無しさん :2010/07/02(金) 20:13:13
(´ω`)(´・ω・`)
ソースまで書いてる奴に別解提示せずに馬鹿にする奴何なの?
List<*> list = class.GetList(); でGetListはすでに中身があるメンバを返すだけなんだけど これでlist[0].flg = 1;ってやるとメンバの方にも反映されるの? 反映させたいんだけど出来るの?
>>56 いやー、マネージメモリはGCが管理しててころころ移動したりするから使えないと思ったけど
違ったかな?
struct突っ込めばコンパイル通るんじゃね?
コンパイルは通るけど動かないと思うけどな MCIのライブラリ作った時にそれではまったから 構造体に対して意味がないDLLならいいのかもしれないけど MCIは最初にきっちりデータを入れて渡さないといけなくて 形だけ揃えてマネージメモリ渡したらうんともすんとも言わなかったけど
ダイナミックなら何とかなるんじゃね?
そういうこと言う奴のほとんどが、なんかしら間違ってるけどな。
ころころ動く、っていうなら、ピン止めすればいいだけ。
>>67 ピン止めって結局アンマネージメモリを確保してそこに構造体を展開してってのを
GCがやってるだけだよ
だからなんだよ
>>69 ピンは呼び出す度に入れ替えが行われるから効率が悪い
直接アンマネージメモリなんか確保しない方がいいのは確か。
効率が必要だなんて誰も言ってねえぞ
効率とか、全然違う話になってるやん。
効率が必要ならC#で書き直すかCで完結しろドアホ
聞いてもいない事まで語りだすのが調子に乗り始めた初心者の特徴です。
またつまらねぇことで盛り上がってやがるな
>>39 の回答の方がもっと見たいわ
>>63-64 何か微妙に他の質問のレスと混同している気がするけど
>>58 に対して
>>60 が参照型ならokとレスしているが、
要素が値型なら
>>58 はコンパイル通らない(CS1612)から、
参照型ならという仮定は意味を成さないという指摘
一応真面目に言っておくけど、
>>39 は質問の仕方がまずい。
質問が漠然としすぎている。
一体全体何が聞きたいんだよ。一から十まで全部か?
アホの子の特徴だけど、自分には甘く問題を言葉を尽くして他人に説明する努力すら
惜しむくせに、他人にはエスパー的な行間読み能力と親切心を期待している。
こんな人はプログラムなんて書かなくていいよ。
おきました(´・ω・`)
特に意味はありません。 失礼しました(´・ω・`)
ウンコが漏れました(´・ω・`) 割札しました(´・ω・`)
メール受信ソフトはつくれないの?(´・ω・`)
お前には無理
あ、どうも
>>85 自前で組むこともできるんですね。また、商用で売ってるんですね。
ライブラリを買ってみようかな・・
どうもありがとう。
ああ、BASP21っていうのは、無料だ・・ 失礼しました。
デジャブだ……
(´・ω・`)・・
>>7-10 前スレかと思って探したのに無かったから精神病んでるのかと思ったじゃねーかw
俺はブラウザのログが壊れたかと思った
参照したdllをexeと同じフォルダじゃなくlibsみたいなフォルダにまとめるにはどうしたらいいの?
逆に考えるんだ。参照したdllをlibsに入れるんじゃなくてlibsに入れたdllを参照するんだ。
解決法を探しています。以下簡略コード class Form1 : Form { public class test : x { public void vsc(object sender, ScrollEventArgs e) { int y = vScrollBar1.Value; } } private void vScrollBar1_Scroll(object sender, ScrollEventArgs e){} } 入れ子になっている y に 外の型の vScrollBar1.Value を動的に取得したいのですが (つまり、スクロールバーを動かすたびに y の値も自動で変化させたい) エラー CS0038が出てしまいます。 なんとかして解決できないものでしょうか。 入れ子を解除するのはその他の部分に影響がでてしまい、自分の技量ではまだできそうにありません。
testにForm1を渡す public test(Form1 owner) { this.owner = owner; } Form1 owner;
すみません、以下のようにしたのですが解決できませんでした。 class Form1 : Form { public class test : x { public test(Form1 owner) { this.owner = owner; } Form1 owner; public void vsc(object sender, ScrollEventArgs e) { int y = vScrollBar1.Value; } } private void vScrollBar1_Scroll(object sender, ScrollEventArgs e){} } やはり、エラーCS0038が出てしまいました。入れる場所が違ったのでしょうか。
vScrollBar1を所有してるフォームはどこなんだよ 馬鹿かお前
owner.vScrollBar.Value ていうかxって何? 無理に継承使わなくても.NETで継承しないとできないことってほとんど無いだろ
int y = this.owner.vScrollBar1.Value; 分からないならプログラミング辞めて畑でも耕そう
わからないなら文法から勉強し直そう
このスレで質問する時って class Hoge : Fuga { /* 質問したい部分 */ } って書くと Fugaって何?継承する必要あんの? とか聞かれるんですかね
基本お節介焼きだからね。 こんなスレにいるくらいだし。
フォームはclassフォームの中のtestクラスと同じ階層にあります。省略して書いているので・・・ xの継承を使っている理由は、他所から手に入れたサンプルコードを弄っているからです。 どういう状況かといいますと、GLSharpというライブラリを使いたくて、GLSharp_Demoというソリューションを見ておりました。 その中のCGのカメラ操作がマウスで行われており、それをForm上のスクロールバーで変わりに操作したいと思っていたので 下手に継承を解除できなかったのです。
その様子だと
>>101 の言う通り文法覚えた方がいいんじゃないの
毎回初歩を学べば済むことを聞きに来る気?
>>103 いや。ただ単に相手してくれる現実の人間がいないんだよ。
うんうんでたお
class Aでpublic virutual で定義されたメソッドを class Bでprivate 形でoverrideする方法ってありますかね?
ないな
うん
>>108 そんなのできたら継承の概念と矛盾しちゃうし。
EditorBrowsable属性をいじる当たりで妥協したら
したら
>>111 必ずしも矛盾はしないよ
インターフェイスの明示的実装みたいにキャストすれば見れるようにするって形が考えられる
まあそうすると今度はアクセス修飾子変える意味なくね?って話になるけど
>>113 お忘れかも知れんが、たとえ親クラスの型に入っている場合でも
メソッド呼び出しで呼ばれるのはそのクラス自身のメソッドでなければならないはずだが、
>>108 こんなことが出来ちゃうとそのポリシーが破綻しちゃうでしょ。
privateだから呼び出せないという認識はちょっと違うんだよな .NETではインターフェイスメンバをprivateで実装しても構わない。キャストすればもちろん呼び出し可。 あくまでそのメンバを含む型としてオブジェクトを扱った場合にはコンパイルエラーを出すべきということ。 実際C#で明示的実装されたインターフェイスメンバのアクセスレベルはprivateになる。
どーでもいいよ
C#もwindowsプログラムも初心者です。
C#でwebアプリからファイルサーバー上にある
ファイルのアクセス権を取得したいと思っています。
ttp://intre.net/item_6569.html ↑のサイトを参考にコーディングしてみたのですが、
デバッグでローカル環境で実行すると正常に
アクセス権を取得できますが、IIS上で実行すると
アクセス権を取得できません。
どうすれば良いかアドバイスお願いします。
また、このあたりの情報の載っているサイト、
書籍の紹介がありましたら、教えてください。
よろしくお願いします。
>>117 普通のIISの問題だろ?
フォルダにIISユーザーの権限与えてるか?
はい。
Webブラウザを配置して、リンクをクリックしたときに起きるイベントって、webBrawser_Navigatingじゃないのでしょうか? 違うとしたら、何というイベントでその開こうとしているURLを取得できますか?
>>フォルダにIISユーザーの権限与えてるか? >はい。 いったい誰に与えてる?
普通にログインユーザとかにしてそうだな 権限の問題ならとりあえずOSとIISのバージョンが必要だな
権限の問題ならとりあえずスレチだな
いいえ。
はい。
comboBoxのテキストエリアをクリックするときのイベントはなにですか? Click? それともMouseClick? どちらもテキストエリアでなくて、 comboBox全体をクリックしたときに割り当てられているような気がします。 テキストエリアだけのクリックを検出したいので、 アドバイスよろしくお願いします。
そんなのないんじゃね? コンボボックスの中のEditコントロールをサブクラス化して、メッセージを横取りすればいけそう。
(´・ω・`)過疎ってますね・・
じゃあ、このバカに一つご教授願いたい。
話を聞こうか 言ってみたまえ
予め言っておく、俺はC#を始めてから日が浅い。 1ヶ月も経ってない。 そしてこの上ない バ カ である。 それでもおけ?
馬鹿につける薬は無い 去れ。
>>131 いいじゃないか
ここは初心者用だ
そして俺も初心者だw
まぁ、今課題でイライラ棒(笑)を作ってるんですけど、うまくプログラムが作動しなくて困ってる状態なんです。 ソース貼ったほうがいいですか?
ここにか?貼るなよ迷惑だ
>>135 初心者だから勝手が分らない。
どうしろというんだ?
てか課題は自力でやれ
宿題スレあるだろ
初心者はお呼び出ないと。 分りました。
それでよし
鬼がいる・・・
>>143 過疎ってるからこっちで聞こうとしたんだけどね。
初心者だし、こっちでもいいかなって思った
何のために専用のスレあると思ってんだ?
>>145 次回からは気をつける。
そう揚げ足とりなさんな。
次回からじゃねえよ!今気をつけろ!
>>147 どうした?
納期前か?
デスマか?
新屋だし愚痴ってみろよw
まったく反省してないな
>>147 良くそこまでして揚げ足取りにかかるな。
>>147 プログラマーは人間性に欠けるというのは本当なんだな・・・
何でそんな奴が初心者板にいるんだよ。
逆切れワロタ
まったくもって、揚げ足ではない。
くやしかったのかい?
156 :
デフォルトの名無しさん :2010/07/09(金) 14:19:43
プログラマっていうか、プログラム板はなぜか人格異常者が他板に比べ 異常に多い。
デスマという煉獄で脳の回路が焼かれちゃってるんだろうぜ フヒヒ……
ふーん
そういう異常者は他のスレに言ってくれよな。 そういう奴らが圧迫してくるから初心者って質問しにくいんじゃないか。
162 :
デフォルトの名無しさん :2010/07/09(金) 20:42:02
>>159 よう、人格異常者。おまえみたいなやつはリアルでもネットでも居場所ないから
こなくていいよ。
おっと、リアル厨房の悪口はそこまでだぜ
>>161 何のための「匿名」掲示板だよ
そんな気にせずどんどん質問しろ
もちろん答えが返ってくるとは限らないけどな
せめてIDが表示されればいいのに
166 :
名無しさん@そうだ選挙に行こう :2010/07/10(土) 09:59:56
すみません。以下のコードは、どう違うのでしょうか。1つのソースにこの2つがあったんですが違いが分りませんでした。 public override bool Equals(object o){ return base.Equals(RuntimeHelpers.GetObjectValue(o)); } と public override bool Equals(object o){ object p = System.Runtime.CompilerServices.RuntimeHelpers.GetObjectValue(o); return p.Equals(this); } です。
baseとthisで違うだろ
本当に初心者なのですが、C#でWinAPI使ったWindowsアプリケーションは作れますでしょうか。 出来れば.NETは使いたくないのです。
Win32APIを使ったアプリってのは意味不明だが > 出来れば.NETは使いたくないのです。 こっちは諦めれ
C#でWinAPIを使ったアプリは作れる。 でも、C#で.NETを使わないアプリ、は作れない。
なんでC#のスレで聞くんだ…
C#で、ってことだからだろ
WPFなんかのtip本って出ないのかねぇ あまりに本がなさ過ぎる…
人気ないんだから当たり前
大手はもうFormsからWPFに移行したけどな。 してないのは学生とか零細だけだと思う。
System.Net.Sockets.SocketのRecvfromなんですが EndPointに例えば192.168.0.100:4000みたいなのを先に入れると 192.168.0.100:4000からのデータからしか反応しないように出来るんですか?
うん
ううん
Unix系だとUDPもconnect関数が使えて対象通信相手を限定したソケットが作れるみたいなんだけど System.Net.Sockets.SocketでUDP Connectしたらどうなるんだろう とにかくソースを簡素化するために通信相手を分離したいんだけど
取り敢えず解説読んでみたら
>>181 解説ってMSDNのこと?何も書いてないよ
聞いてるうちにやってみればいいじゃん。
Socket.Connectの解説にコネクションレスのときについても言及されてるみたいだけど?
そうだね
>>184 ほんとだ
分離するにはセレクタを自分で実装するしかなさそう
だろw
>>173 Silverlightなら.NET使わずにC#で作れるよ
189 :
名無しさん@そうだ選挙に行こう :2010/07/10(土) 23:18:48
windowsに接続されているモニタ(複数)を取得したいのですが、 .netで出来ますでしょうか?
WinFormならScreenクラス
先を越されたけどScreenクラスだよ
|д゚) XAMLの質問してもいいかなぁ?
193 :
189 :2010/07/11(日) 00:05:42
>>190 ,191
ありがとう!
C++,MFCから移ってきたから、よくわからんことばかりだわ。
じゃあ・・・ダメ!
(つд・)エーン
>>192 WPFスレとかSilverlightスレでもいいが
あっちできくっ!
■プログラムの流れ
1.フォーム1(メイン)を起動
2.フォーム2をフォーム1のロードイベントで起動
3.重い処理を複数回行い、ログをフォーム2のテキストボックスに書き込みつつ、処理終了を待つ。
4.フォーム2を閉じる
5.フォーム1表示
■困ってること
フォーム2にはキャンセルボタンがあります。
このボタンを押すと、3番の処理を中断してフォーム2を閉じ、5番の処理に移ります。
このキャンセルボタンの実装で困っています。
3番の処理はテキストボックスにログを書きながら実行するため、フォーム2のフォームロードイベントでスレッドを使用しています。
スレッドの中断には、abortメソッドは危険なため使用していません。
現在は、キャンセルボタン内でフラグをたてて、スレッドを中断しています。(下記URLの20行目、40行目)
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10829.txt 42行目のthread.Join();が終わりません。どうやってスレッドの終了を待てば良いのでしょうか?
そもそもJoinする意味なんかないだろうに Joinでメインスレッド待機 this.Invokeでメインスレッドに処理を依頼 メインスレッドが止まってるからその処理を完了できない this.Invokeは処理が完了するまで待機するからいつまでたっても返らない ワーカースレッドが終わらないからJoinが完了しない
isCancel cancelled
isBeingCancelled
だからキャンセルフレームワーク使えよ 俺様コードを量産するからデッドロックが起きるんだろ…
キャンセリングフレームワークを正しく使えるような人は 使わなくても大した失敗はしないと思うぜ もちろん統一したフレームワークに乗せるという意味では大事だけど
うん!大事だね。
のせるはだいじ……のせるはだいじ……
(´・ω・`)ノシ みんな〜
(´;ω;`)み、みんな…
tabpage.MouseDown += new MouseEventHandler(tabpage_MouseDown); これだとtabpage.text = で書き換えられる場所を右クリックした時にイベントが取れないようですが、 お手軽に取る方法はないのでしょうか?
209 :
208 :2010/07/15(木) 12:45:17
もうお前らに用は無い!
210 :
デフォルトの名無しさん :2010/07/15(木) 13:32:36
クリップボードに取得したデータ(HTML形式)を ちゃんと画像も表示されるように保存することってできますか? ためしにIEで選択コピーしたクリップボードの中身をWordで貼り付けたらうまく 画像もフォーマットも表示されましたが。 そのように保存することはできますか?
211 :
210 :2010/07/15(木) 13:34:07
ちなみに↓までできてます。 IDataObject sentaku_data = Clipboard.GetDataObject(); if (sentaku_data.GetDataPresent(DataFormats.Html)) { // 直前のデータがHTML形式であるとき、取得したデータを保存する(時刻、名前) }
クリップボードから取ったデータからURL抽出して拾えばいーだろーが
HTMLそのものに画像データが含まれているわけではない(通常)ので普通なら画像は表示されない。 ワードは勝手にsrcを読みに行っただけではないかと。
214 :
210 :2010/07/15(木) 13:43:34
なるほど。Wordはそのように、ソースの方から拾ってくるのですね。
普通なら、画像まで拾ってくれないというのも初めて知りました。
お二方のいうとおり、URLから画像を取得することにします。
Wordがそんなことまでして画像を表示してるとは知りませんでした(;^_^
ありがとうございました。
>>212-213 さん。
>>213 揚げ足取りになってしまうが、
>HTMLそのものに画像データが含まれているわけではない(通常)
含まれていることなんてあんの??
バイトコード埋め込むってこと??
ちゃんと動くかわからんけど。
>>215 揚げ足をとられるけどあります。
ブラウザ対応度は知らないし保存しようとするとbmpになりますけど。
src=data:image/type;base64,data
こんな感じです。
mhtというのがあってだな
221 :
215 :2010/07/15(木) 15:03:11
>>216 おーー
しらんかった。
いいこと教えてもらった。
ありがとう^^
これからC#をやるのですが、初心者向けのよい本をおしえてください。
>>223 本屋で立ち読みして、少しは理解できるやつ。
>>223 お題がほしいだけならぐぐればいろいろでてくるよ
本を買うのならある程度マスターしてステップアップの関連で
投資するのが一番かと
227 :
デフォルトの名無しさん :2010/07/16(金) 00:53:06
嘘つけお前は他言語からの乗り換え組だろ
229 :
デフォルトの名無しさん :2010/07/16(金) 01:02:00
誰だよお前
うそはいくないです(>_<)
俺なんかプログラム初見は@ITの川俣コラムだったぞ(´・ω・`) 最初に言語仕様しっかり把握するべきだったと後で後悔した。
最初からキッチリやろうとすると案外続かないものだよ 好きなことからやるよろし
ControlをDisposeするとControlに関連付けられていた例えばNameなども破棄されますよね?
されない。そのうちGCに回収されるが、ControlをDisposeしたからといって 回収される可能性が上がるわけでもない。そのコントロールがその場でGCされるわけでもない。 DisposeとGCは関係ない。
メタセコイアで作った数字で3Dのスコア表示させるんだけど 桁ごとにモデルを表示させるのがうまくいかない。 例えば12なら十の位に1、一の位に2を表示させたい。 配列でa[1]=1、a[0]=2って感じに格納出来ればなんとかなるんだけど ぐぐってもよくわからなかったんだ。 教えてくださいえろい人。
モデルの配列にする。 そんなレベルで躓いてたらさすがに時間の無駄。最低限の勉強は必要。
>>236 別にちょっと考えればほんとはわかるんだけどね
まあ、今は卓上論でしかないが、数式的な考え方でOS設計程度の能力は既に俺の中で軽く確立してる。
ただ自分は目立とうとかも思わないしプログラムはただの趣味だしその程度のもの。
自分が知ってる限り、そういう「闇の」エンジニアは数人知っているが、
こういう煽りに近い初心者(俺はそれを模しただけ)いびりを見ると、
「おやおや、俺のような達人に得意げに語るだけで飽きたらず、しかも馬鹿にまでしちゃってるよ、HAHAHA」としか思わないのよね
口だけじゃあれだから、一応言っておきたいが、
これ、作り話だと思ってた親友に俺が作った物みせたら
そいつは「ビルゲイツ?おいおい、そんなレベルじゃないだろ、お前。お前は表の世界に出るなよ。世界にはバランスっていうのがある。お前なら分かるだろ?ったく」と言い、笑った。
そういう世界に俺はいるんですよ
わかった?
238 :
235 :2010/07/16(金) 09:39:19
>>236 すいません、勉強不足でした。
自力で頑張ります、低レベルな質問してすいません。
一応
>>237 は私ではないです。
闇wwwwwww なんだこれwwwwwww
おまえらそんな事を俺に行ってもいいわけ? かの有名なマタドールパターンを作ったのは俺なんだけど あらゆるアルゴリズムに対応している神をも平伏す事が出来るデザパタ しらないだけでも無かろうに 俺がたまに下界に下りてきておまえらに声かけてるのは業界のレベルの低さを嘆いているから 初心者を演じるのもお前等に優越感を出させてやる気を出させる為っていうのがわからないの? あんまり怒らせないでね なんならやるかい? プログラム勝負をさ
C++のメンバ関数ポインタ的なものってどうやって書けばいいの
デリゲート
delegateはオブジェクトが決まってないと取得できないよね。 C++の場合class A{ void foo(int); void bar(int); };があったとして、 typedef int A::(*int_void_signature)(); void tekitou_na_kannsuu(int_void_signature memfnp, A *array){ for(int i = 0; i < N; ++i){ (array[i].*memfnp)(99); } } //... tekitou_na_kannsuu(&A::foo, hairetu); tekitou_na_kannsuu(&A::bar, hairetu); 要するに、オブジェクトが任意で同一シグネチャのメソッドを複数の中から切り替えたい場合にC#ではどうすればいいかということ
MethodInfo
どうも
今日から復帰するよ。ヨロシクシャプー
荒らしか・・・
おにいちゃんもうおしっこ我慢できないよぉシャプァ
C#2010をインストールしてみたんだが 2回も再起動をさせられたんだが 「今すぐ再起動をする」と「後で再起動をする」のボタン2個表示されてるのに 「後で再起動をする」のボタンはdisabledってどういうことなの!ふざけてるの?
C#「ふざけてごめんなさい」
252 :
デフォルトの名無しさん :2010/07/16(金) 13:56:46
ぽっくんのCelorenのパソコンでは2008が限界だよ。 2010を動かせるPasoconがあるだけうらやましいよ。 C#でフリーソフト作れるのもあと何年か・・
253 :
デフォルトの名無しさん :2010/07/16(金) 14:04:11
無職かなんかなの? 5万もあればそれよりはずっとまともなPC買えるだろ
今、C#2080なんだけど、C#2010にバージョンアップした方がいいのかな?
それを面白いと思って言ってるのならキチガイだよ
2010はかなり重い。 評価目的でしか使えないので、オレは2008に戻した。
低性能の家のマシン(2.8GHz、1.75GB)でさえそんな重さは感じないけどなぁ ボトルネックになりやすいHDDを変えてみては?
>>2 .8GHz 何が??
CPUの型番書いた方が分かりやすい。
それでも2.8GHzのCPUが低スペックだとは思わないけど。
もうそのネタ飽きたよ
>>258 Pentium4の2.8GHzはひどいぞ
>>260 cookieが無効にならない限りログインは1回だけじゃん
263 :
デフォルトの名無しさん :2010/07/16(金) 17:48:54
こんにちは。C♯を学校の授業でとっている学生です。課題で ,各自で課題を設定しプログラム を作成しなさい.ただし,以下の要件を満たすこと. 自作のメソッド(関数)を最低一つ作成し,Mainメソッドなど他の関数 から呼び出す.その際,実引数を与え,戻り値を受け取るようにするこ と. プログラム中で,条件分岐および繰り返し処理を行うこと. 入力はキーボードから行い,出力は標準出力とすること. というものが出ているんですが・・・まったくちんぷんかんぷんで・・・誰かお力になっていただけませんでしょうか?
>>263 課題が悪すぎる。
白紙で提出してやれ。
265 :
デフォルトの名無しさん :2010/07/16(金) 17:59:14
>>263 課題を出した人をリプレースする必要がありそうだな
266 :
デフォルトの名無しさん :2010/07/16(金) 17:59:31
そうですか・・・宿題スレでも聞いてみます!
なんでこんな課題が分からないんだよ。
268 :
デフォルトの名無しさん :2010/07/16(金) 18:24:24
すみません・・・わからないです。 よかったら協力していただけませんか?
>,各自で課題を設定しプログラム >を作成しなさい.ただし,以下の要件を満たすこと. , ー――― 、 / \ / ,へ `、 / ,Λ/ `、Λ , \ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ レ| /十十 十十| _ \_ | はぁ… /| (イ-t―,- -t―,-`'6)ー 、`、 o O | / `  ̄  ̄ r' \) | だっるぅー… / ` 、 _ / | ,_,へ| \_______ ( ̄`' ̄ ̄ ̄)  ̄ ( ̄ ̄ ̄`'  ̄`) っていきなり言われてる気がする
俺が作ってやるよ。 足し算かべき乗計算をするプログラムを作る。 Main内で足し算かべき乗計算かで条件分岐し足し算の関数とべき乗計算の関数をつくり Mainから呼び出す。当然戻り値は計算結果。 んで、べき乗計算の関数は引数を2つ取り、2番目の引数まで1番目の引数を掛け算しまくる。当然、ここで繰り返し処理を使う。 標準入力は、Console.In 標準出力は、Console.Outでも使っとけ。
わからない場所があるってんならともかく まったくちんぷんかんぷんってのは 授業の一回目でこんな課題が出たのか 授業に着いていけてないのかどっちだ?
このレベルで授業についていけないなんてありえない。 明らかに授業を真面目に聞いてないだけ。DQN破滅しろ
引き篭もりニート無職童貞キモデブオタの俺でも余裕だった。
DOMか正規表現どっち勉強しとけばいい?両方必要?
276 :
デフォルトの名無しさん :2010/07/17(土) 19:44:36
どっちもが優先というかDOMやってると正規表現使いたくなるケースがほとんどじゃね? 正規表現ライブラリとかもあるだし
こっちが懐かしい`;ω;´
278 :
デフォルトの名無しさん :2010/07/18(日) 04:43:37
C#に限らず、目的を実現する為の手段ってどうやって調べます? 今、 DLLに含まれるクラスやメソッドを取得したい ↓ リフレクションというのが必要らしい ↓ クラスライブラリを眺める ↓ 使い方が分からない。ていうか知らない用語ばっか ←今ここ って状態なんですが、用語の意味を調べると、更に分からない事が増える負のループ状態です orz
>Assembly.CreateInstance(”アセンブリ名”)で読み込んで いきなりなんだそれはw
Assembly.CreateInstanceはアセンブリ内の型のインスタンスを作るメソッドだろw アセンブリを読み込むのはAssembly.Load
>>278 ググる。解からない部分が無くなるまでループ繰り返し
278が欲しいのはAssembly.Loadなの?DllImportじゃなくて?
ふぅ
DllImportならImageDirectoryEntryToDataでExportDirectoryを取得すればいいのではなかろうか
ListViewの先頭に項目を追加する方法を教えてください
かー、そうですか
リファレンス読んでわからんかったことが、本読んだら一発で理解できたわ。 脳味噌って不思議。
290 :
デフォルトの名無しさん :2010/07/18(日) 21:32:22
かー、そうですか
すいません。わかってない感ありありの質問ですが、よろしくお願いします。 C#のwebアプリでTextBoxの入力された文字列を取得したいです。 buttonを押されたときは、 session["TEXT"] = txtbox.Text; という感じで正常に取得できました。 これとは別に、キーボードのEnterキーを押したときに TextBoxの入力内容を取得するのはどうすればいいんでしょうか? C#ではキーボード入力のハンドラがないので、javascriptのコールバックで処理しました。 その中で、Session["TEXT"] = txtbox.Text;としても値が取得できませんでした。 それで、txtbox_TextChangedというイベントを登録して、そのなかでsessionに 代入したら、基本的にはtxtboxの中身を取得できるようになりました。 しかし、IISでこのアプリを動かしてみたら、取得できることとできないことがありました。 PCとブラウザの組み合わせで取得できない頻度が変わります。 とりあえず、javascriptのコールバック処理中に 明示的にtextboxの中身を取得する方法というのはあるのでしょうか? とりあえず、最近のお友達googleさんに聞いてもわかりませんでした。 質問する人間に知識がなく、本当に申し訳ないですが、よろしくお願いします。
CPUのコア数をどっかのクラスのスタティックプロパティから取得できたはずなんだけど思い出せません ググるとAPIでGetSystemInfo使えとかGetLogicalProcessorInformation使えとか SmartDeviceどうとかいう倒片木な答えしか出てこないんで 誰か教えてください そんなAPI呼ぶまでもなかったはずです
Environment.ProcessorCount
結局のところ とどのつまりC#ってのはDelphiなの?
Delphiは斜陽ボーランド C#はゲイツに首輪を付けられた言語(最近自由になった)
コントロール作成時にRegion regにreg.MakeInfinite()してCreateGrapicsで取得したgraphics.Clipに代入しているんですが、 graphicsを作成したコントロールがResizeする時にGDI+で描画できる範囲が初期状態のコントロールの大きさに自動的にクリッピングされてしまいます。 何か他に設定するべき項目でも存在するんでしょうか?
>>298 全体的に言ってることがオカシイしよく分からん。
どうせ君はGDI+についてもコントロールについてもちゃんと理解してないんだから、
初めからストレートに「最終的に何を実現したいのか」だけを書いた方がいいと思う。
ウィンドウをドラッグしてコントロールを大きくして再度System.Drawing.Graphicsで描画しても元の大きさ以上の領域に描画が反映されない
今VisibleClipBoundsを見たらコントロールのWidth, Heightと一致しておらず、小さかった。 どうやってVisibleClipBoundsの大きさ変えればいいの
ごめんResizeのたびにCreateGraphics()からgraphics更新したら解決した
VisualStudio2010の話なのですが、 左側にメインのプログラム、右側にメソッドの中身 という形で分割して メインのプログラムが進行して行くにつれて 自動的に右側のメソッドウィンドウも変わって行くみたいな表示の仕方って できますか? お願いします。
ダブルバッファの設定にSetStyle(ControlStyles.DoubleBuffer, true);をするとOnPaintイベントハンドラが呼ばれ、制御を返した後にバッファからディスプレイへ転送されるみたいですが、 明示的にバッファに描きこみをしつつプログラマの決めるタイミングでOnPaint外からバッファをディスプレイへ転送する方法はありませんか?
自分で用意したバッファ用bmpに描画して 自分の好きなタイミングでバッファ用bmpからコントロールにDrawすればいいんじゃね? と試さずに書いてみる
なんで.NET側に作業用バッファが用意してあるのに更にバッファ作らないといけないんだよ
作業用バッファへの書き込みに使う作業用バッファ
refreshすりゃいいんじゃないのかしら
ややこしいな
WPFでおk
C++からC#に移って、いちいち名前空間書くの面倒だなあと思ってたけど、C++でも本来は書くべきだったんだなーと気付いた。 C#は素晴らしい言語です。
C++の方が名前空間書くだろ C#はusingしまくっても問題が出ないように注意して設計されてるから 基本的にすべてusingでおk
>>313 そのせいで長ったらしいクラス名を書かないといけないんだけどな
最初からIDEの使用を前提に設計されてるからな
IDEがないJavaは悲惨すぎる
317 :
デフォルトの名無しさん :2010/07/20(火) 07:19:02
C言語あたりは省略しまくりだよね
ファイルがロックされてたら開放されるまで待つってのはどうやればいいの? FileStreamだとすぐ例外が発生するだけだよね? あとlockで一定時間止まってたらlockを解除するって出来る?
319 :
デフォルトの名無しさん :2010/07/20(火) 16:54:19
ListView(View:Details)でアイテムが追加されたときに、 スクロールバーを動かして常に最新アイテムを表示させたいのですがどうすればいいですか?
よーし! 俺がまとめてこたえたる! 待ってろ!
はい
ちょっと聞いてくれ 4.1999999999999993=3.0*1.4 ってなるんだけどなんで??
二進浮動小数点数の宿命
324 :
322 :2010/07/20(火) 17:28:19
いま、二進浮動小数点数をググッてきました。 C#の場合、どうすればスマートに 4.2 = 3.0*1.4 になるのでしょうか?
下駄を履かせる
4.2は2進数では無理数になる。 整数ならΣa_n * 2^n (a_n in {0, 1})で綺麗に表されるが、小数の場合はΣa_n * 2^nに加えΣa_m * 2^(-m)も処理しなければならない。 そこで問題になるのが0.2が1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256, ...のそれぞれの項の和で示せるかどうかで、 少なくともC#の浮動小数点数型では桁数が足りない。 .netにはdecimalってのがあったはずだからそれ使えばいいよ。これは確か「小数をドットを外した時の数とドットの位置」を覚えている型だったと思うから。
328 :
322 :2010/07/20(火) 17:47:59
decimalを使ったところ、 思うような動きをしてくれました。 二進浮動小数点数、decimal型をもうちょっと勉強してみます。 ありがとうございました。
小数点以下を厳密にしたいなら浮動小数点型は使うなってことだ
∩_∩ / \ /\ | (゚)=(゚) | 人人人人人人人人人人人人人人人人人人人人人人人人人 | ●_● | < 小数点以下を厳密にしたいなら浮動小数点型は使うなよ > / ヽ < > | 〃 ------ ヾ | YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY \__二__ノ ∩ ∩ | | | | | |__| | / 一 ー \ 人人人人人人人人人人人人人人人 / (・) (・) | < 無理数超越数はどうすればいいの > | ○ | YYYYYYYYYYYYYYYYYYYYYYY \__ ─ __ノ ∩_∩ / \ /\ | (^)=(^) | 人人人人人人人人人人 | ●_● | < 諦めろってことだよ > / // ///ヽ <言わせんな恥ずかしい> | 〃 ------ ヾ | YYYYYYYYYYYYYY \__二__ノ
AA厨うぜえええ
夏休みなんだよ
実際は30過ぎのおっさんが嬉々として貼ってるのかもな
VS2005のC#でDataGridViewにデータを表示させています。 そして、DataGridViewに以下の列設定を行いました。 1列目> 名称:"連番" 幅:50 2列目> 名称:"名前" 幅:100 問題は、"連番"という文字の横幅から考えて 50pxと余裕を持った横幅にしているにも関わらず、 画面に表示させた場合に、本来は、 連番 と横に表示させたいのですが、 連 番 と縦に表示されてしまうのです。 また、横幅を100にすると 連番 と正常に横に表示される様に なるのですが、どうすれば幅を小さくした場合でも正常に 横に表示される様になりますか?
338 :
322 :2010/07/20(火) 19:15:14
>>336 なぜDecimalは浮動小数点型なんですか?
msdnには「decimal 型は、浮動小数点型よりも有効桁数が多く」
と浮動小数点型よりもと書いてあるので、
違うものと思いましたが浮動小数点型なのでしょうか?
2進化浮動少数点演算と10進化浮動少数点演算
一般的な用語としての「浮動小数点型」である、ということと、
特定のdoubleなりsingleなりの実装を指す「浮動小数点型」の違い。
>>336 が言ってるのは一般的な意味で、MSDNの文章では特定の型のことを言っている。
341 :
デフォルトの名無しさん :2010/07/20(火) 19:21:44
>>337 その列の「SortMode」を「NotSortable」にしてみたら?
「連番」だけじゃなく▲も表示されるようになってるから3文字分必要。
342 :
322 :2010/07/20(火) 19:26:50
>>340 理解出来ました。
ありがとうございます。
>>322 なんかどう考えても間違った方向に進んでるのを見過ごすのもアレなんで。
たぶん扱う小数点以下の桁数が確定しているような用途なんだろうから、
だったら表示なり何なりする時点で必要な桁数で丸めればいい、っていうか
それが普通の方法だと思うよ。
たまたま上手くいくからDecimal使おう、とか、考え方間違ってるでしょ。
>>341 疑問が解決しました。どうもありがとうございます。
DataGridViewとバインドしているDataTable内の【連番】列は、 int(数値型)では無く、諸事情によりstringで定義しています。 しかし、DataGridView上の連番をクリックするとどうやら ソートが数値としてでは無く、文字列としてされている様です。 どうすれば数値としてソートする事が出来ますでしょうか?
>>343 やさしいんですね(><;)
いづみは、そういう人が大好きなんです(><;)
ありがとうございました(//∇//)
ColumnHeaderMouseClickで自前で DataTableバインディングしてるなら DataTableに数値型の非表示列作ってそれをソート列にすることになるな 結構めんどくさいから素直に元々数値列にするなり0パディングするなりするのがお勧めだがね
>>343 どう考えても間違ってるってこたないだろー
これだけの情報ではどっちが適切なのかはわからんぜ
ああ、引きこもりニートのプログラマだけど 小数点扱うのもめんどくさいんだな〜 ようやくC#でGUIつくれたりK&Rを7年かかってようやく理解できるようになったりしたのに、 小数点扱う上でもそんな盲点があったのか・・ やっぱ大学行ってきっちり教えてもらわないと駄目だな・・1回だけ就職したブラック企業では 浮動小数点の扱い方なんておしえてくれなかったわ。
>>349 大学行っても2進化10進数とか軽く流されるから意味ないよ
数値計算とか金銭系行かないと数値を厳格に扱わないのではないかな
金融系か、COBOLからの移行とか、そんなんじゃないと あんまり厳格にはやらないと思う。
大学でやらされるのは、伝統的なカリキュラムなら、物理シミュレーションとかで問題になるようなほうの 数値計算だね。金銭系で問題になるようなところを教えるカリキュラムはすごく珍しいと思う。探せば教えてる ところもないではないけども。
>>349 2進浮動小数点数の実装や誤差について調べたいなら、GNUの多倍精度演算ライブラリのドキュメントを見たり
浮動小数点数演算が可能なCPUを話題に取り扱っている本を読んでみれば良い。
ここまでくるとC#は関係ないが、ほんの30年前まではアナログ回路で計算させてたのに
最近だとデジタル演算でマンデルブロー集合が一瞬で計算できる様になるまでの道のりなども調べてみると興味深いかもしれない。
DEFINT A-Z
>>350 一応突っ込んどくけど、2進化10進数(いわゆるBCD)なんて
組み込み用のマイコンでもなきゃ直接扱うことはまずない。
別の何かと勘違いしてないか。
BCDなんてビット演算の方法とn進数の体系的な知識があればwikipediaで説明見て終わるレベル。 大学でそれが流されるか、流されなかったとしてもさわりだけしかやらないのはわざわざ授業の時間割いてやる様なものではないから。 俺中卒引きこもり無職だけど
クラスのアレイをforeachで初期化するにはどうすればいいですか? iのあとに.でaがインテリセンスに出てこないんです class TESTcls { int a; } TESTcls[,] test = new Testcls[100,100]; foreach(TESTcls i in test) { i.a=0; }
それ以前にiにインスタンス入ってないし
int aのアクセス修飾子がprivateだからに決まっている アホか
アホですみません
どういたしまして
クラスのアクセス修飾子は省略するとinternalになる クラス内にネストしてクラスを作った場合は省略するとprivateになる メンバは常にprivate
あ、多次元配列ってforeachで一気にいけるんだ。いままでネストしてた気がするorz
まあ、でも一気にする用途って多次元にする意味ないっちゃない。ひとりごとでスマソ
一番やりたいだろう「取り敢えず全部new」には使えないしな
画像処理はいっきにやる処理ばかりだけど2次元の方が都合がいい場合が多い
369 :
349 :2010/07/21(水) 00:29:28
ああ、みなさん、見てないうちにたくさんのレスありがとうございました。
なんしろ、趣味?で7年もやってるので、引くに引けないので、とりあえず
いろいろと調べてみます。実は本屋で今調べてきたところです。
少数を掛け算して整数にしてから、10やら100でわるという方法とか
何人かの方がおっしゃってた、BCDという手法も載っていました。金がたまったら本買って見ます。
>>353 さんのレスを足がかりにいろいろ調べてみたいとおもいます。ありがとうございましたm(_ _)m
問題は、多分、私がそこまでのレベルに達していないと思われることです(;^_^
とりあえず、小数部分を10倍とか100倍して、計算後に10やら100でわるという方法で対処します。
みなさん、ありがとうございました。本当に参考になりました。
371 :
349 :2010/07/21(水) 00:35:15
すみません、さっきに続き独り言を… 暇にまかせて、Java、PHPから入り、CやらWin32APIやらC++やらC#に手を出したのですが、最近、コンソールアプリしかなかった時代のK&Rを読み、C言語プログラミングの実感がわきました。 で、だんだんと、あーこうやってつながっていって今のC#があるんだなとかわかったりしました。また、Cの文法のでき方の由来を知るにも「こりゃアセンブラやりゃいいな」とかわかるようになりました。 K&Rがやや?理解できるようになってから、急にC#でのプログラムのうまいアルゴリズムとかもできるようになりました。 苦節10年とありますが、多分私はまだしばらくニートだとおもいますので、それまでがんばってみます。 スレチすません。
夢はでっかく持て!! いつか自分の時代が来ると思って。。。 Step by Step
>>349 一応ちょっとアドバイス。
学者になりたいなら話は別だけど、別に難しい本なんて読まなくても
誤差を最小化する方法なんて自分で考えれば分かるでしょ?
っていうか、難しい科学計算とか数値積分とかは知らんけど、
普通のプログラマが扱う領域で必要な精度なんて、たぶんほとんどの場合
演算順序とか何も気を使わなくても得られちゃうよ。
必要なのは、必要とされている精度をちゃんと把握することと、
適切に丸めを使うことを覚えるだけ。
浮動小数点のことはよく分からないがw .Net 3か4からか知らないが2には無いBigIntegerとうものがある 多倍長整数を計算計算出来るすぐれもの 2に拘ったからCodeProjectにBigIntegerを作ってくれてる人が居るよ
>>375 警察に通報しといた。
会社や学校に最後の挨拶をしておいた方が良い。
うん。すごいよ。
(><;) (><;) (´・ω・`)?(><;) (><;)
うほっ(;^_^
>>375 警察に通報しといた。
会社や学校に最後の挨拶をしておいた方が良い。
publicにしても通りません 本当に通らないんです public partial class Form1 : Form { public Form1() { InitializeComponent(); TESTcls[,] test = new Testcls[100,100]; test[1,1].a = 2; ここの.の後にaが通らない } } public class TESTcls { int a; int b; TESTcls(){ a = 1; b = 1; } }
384 :
デフォルトの名無しさん :2010/07/21(水) 08:29:00
まずクラスを理解してないでしょ
386 :
デフォルトの名無しさん :2010/07/21(水) 09:17:44
ネタとしてはつまらない
int a; ↓ public int a;
それは、、コンパイルは通るかも知れんが
>>359 だな
>>375 これのどこがまずいんだよ。
数値として扱えるから署名が正しいかどうか検証できて、返って全く怪しくない利用方法で役立てられるだろ。
名前からしてただの多倍精度整数型だしな。
>>390 TESTcls[,] test
の中が全部nullです。どうすればいいんですか?
for(int x=0;x<100x++){
for(inty=0;y<100;y++){
test[x,y] = new TESTcls()
}
}
TESTcls.TESTcla()はアクセスできない保護レベルですと出てしまいます
なんていうか、こう見ててイライラするコードだなw
newしろって
ままーTESTclsはどこから産まれてくるのー
ループ抜けた後、 test[1,1].a にはアクセスできるだろ?
public partial class Form1 : Form { public Form1() { InitializeComponent(); TESTcls[,] test = new Testcls[100,100]; #test[1,1].a = 2; インテリセンスは通ったがインスタンスが無いと言われる #TESTcls.TESTcla()はアクセスできない保護レベルでコンパイルできない間違え #for(int x=0;x<100x++){ #for(inty=0;y<100;y++){ #test[x,y] = new TESTcls(); #} #} for(int x=0;x<100x++){ for(inty=0;y<100;y++){ test[x,y].a = 2; インスタンスが無いと言われる test[x,y].b = 2; インスタンスが無いと言われる } } } } public class TESTcls { public int a; public int b; TESTcls(){ a = 1; b = 1; } } どこで何をnewすればいいんですか?そもそもTESTcls[,] test = new Testcls[100,100]でインスタンスが無いのが納得できません
public TESTcls(){ a = 1; b = 1; } そういえば多次元配列なんか最初にC#勉強して以来使ったことないわ
>>397 だからnewしてねぇつってんだろwwwwwwwwww
クラス作ったらコンストラクタ書け
いつも思うんだが、VIP以外の板で語尾にやたら「w」を付けたがる人って何考えてるの? おかしいって受け取れるんだが、我輩だけ?
拙者は気にならないでござるよ
小生も特に気にならないが。
主のスレなので第三者が文句を言うべきではないかと某は思うのであった
吾人も気になりませぬ。
多次元配列は最初の頃こそ他のC系と比べたC#の特徴的な機能として紹介されてたが 今では見向きもされなくなったな。扱いづらいだけ。 使ったらFxCopで警告が出るという悲惨な状況
それがしも特に気に留めることは無かろう
そうでござるな
にんにん
面白いと思ってるの?
貴殿よりはよほど
そうでござるな
w = 笑 w = ^^ この見え方の違いだと思う
で?
でっていう
RSS1.0を解析したいのですが、何を使うのが簡単ですか?
visual studio以外にメジャーな開発環境は在りますか?
netbeans eclipse
PythonとRuby用にNetBeans使ってるけど更新する度にどんどん重くなってくな 結局Gedit使う頻度高くなる
>>400 だめですわかりません。何をnewすればいいんですか?
>>421 TESTcls[,] test = new Testcls[100,100];
の行でも、その次の行でもいいのでブレークポイントを置いてtestの中身を確認すれば
全部nullになってることがわかるはず。
あとは各要素をnewするだけ。
for (int i = 0; i < test.GetLength(0); i++) for (int j = 0; j < test.GetLength(1); j++) test[i,j] = new TESTcls();
C#でグリッドって言うと、DataGridView 以外に何かありますか?
DataGrid あとはGrapeCityとかのサードパーティ製のとか
FlexibleGridだろ
WPFのGrid
>>425 だめです
test[i,j] = new TESTcls();
やはりここでTESTcls.TESTcls()はアクセスできない保護レベルになっていますとエラーが出ます
助けてください。
コンストラクタをPublicにしれ
>>431 できましたーーーーーーーーーーーーーーーーーーーーー
多次元配列とかまったく関係ありませんでしためちゃくちゃはずかしいです
ありがとうございました!!!!!!!!!!!!
434 :
426 :2010/07/21(水) 23:00:54
>>427 〜429
ありがとうございます。参考になりました。
とりあえずDataGridから始めてみます。
インデクサでジェネリックを使いたいのですが下の書き方だとエラーがでてしまいます インデクサでジェネリックは使えないのでしょうか? public T this<T>[string key] { get {} set {} }
何かしらんが ボンボンハウスとかいうところに飛ばされるんだが
>>434 DataGrid(WinFormの)はネタとしてあげただけだから始めなくて良いよ
>>435 使えないけど、使えたとして呼び出し側をどう書くつもりだよw特にsetするとき
>>438 aaa<T> = 10;
こんな感じですかね・・・
ともかくありがとうございました。他の方法を探してみます
>>433 はい。人の言うことを聞いてないのが原因でした
クラスを理解していません。
でも納得できません。なぜ
TESTcls[,] test = new Testcls[100,100];
と
test[x,y] = new TESTcls();
で、
2段階もnewしないといけないんですか?
TESTcls[,] test = new Testcls[100,100];
これでインスタンスが出来ていると普通考えるとおもうんですが何とかして一つにまとめる方法はありませんか
お前の常識は世界の常識ではない
>>440 TESTcls[,] test = new Testcls[100,100]; //100x100サイズの空っぽの表を作る
test[x,y] = new TESTcls(); //表の座標x, yに新しく作ったインスタンスを指す参照を入れる
型TESTcls[,]のインスタンスは具体的な大きさの定まっているTESTclsの変数の領域。
対して型TESTclsのインスタンスはTESTcls型のオブジェクトを指している値の領域。
TESTcls型の変数が100x100=10000個あっても、そのひとつひとつがnullならないもないんだよ。
値型と参照型の違いでもある。 値型なら 1 段階でいける。つまり、 int[,] hoge = new int[10,10]; とかならそのまま使える。
>>442 配列newは参照型の入れ物を作るだけという仕様なんですね
object[,] test = new object[100,100];
test[x,y] = new TESTcls();
これで通ったので完璧に理解できました。ありがとうございました
>>443 ありがとうございます
これからは参照の配列作成時は全部object型にすることにします。これですっきりします。
ここまで行ったらさすがにネタだろw
448 :
デフォルトの名無しさん :2010/07/22(木) 06:56:29
ワロタwww
ワロチwww
ワロッシュw
ばーか つまんねえって
間違ってはいない
何この流れ
荒らされてる・・・のか?
EXCEL連携でget_Rangeで取得したセルに対するメソッド一覧のヘルプはどこにあるんですか? ダイナミックヘルプに出てきません
FileStreamなどを使った時、 Dispose()を呼べばClose()する必要はないのでしょうか? せっかく using(){}を使っても、その中でtry〜catchでClose()は変な感じなので。 また、Close()とDispose()の違いは、 Close()してもオブジェクトはそのまま使えるけど、 Dispose()をしたらそれ以降はオブジェクトを使えないと言うでしょうか?
MSDNのDisposeの説明では、実質CloseはDisposeの別名として定義してたはず
うん
closeだけやってもロックが解除されない
んなこたーない。 それはそれとして、Fileクラスの静的メソッドを使えるならそっちを使うべき。
461 :
456 :2010/07/22(木) 23:57:23
>>457 混乱しそうなので、基本は Dispose() で統一します。
ちなみにFileStreamを継承してみましたが、
Close()とDispose()を呼ばないでフォームを落とすと
Dispose(bool)だけ呼ばれますね。なんでだろ。
Dispose(またはClose)が明示的に呼ばれた場合はDispose(bool)の引数はtrueで GCによってファイナライザが呼び出された場合はfalseになるお約束 後者の場合は、参照先のオブジェクトのファイナライザが既に呼び出されている可能性があるので 絶対に他のマネージオブジェクトにアクセスしてはいけない
うんファイナライザないオブジェクトならいいけどね
464 :
456 :2010/07/23(金) 01:49:45
ちょっとスレ違いかもしれませんが、質問させて下さい。 VS2005を使っているのですが、 気が付くといつの間にか、VSでソースファイルを開いた時に、 通常であれば【クラス名】と【そのクラスの中に存在するメソッドの一覧】が 画面上部にプルダウン形式で表示されていると思うのですが それが表示されなくなりました。 どうすれば元に戻りますか?
Syste.Net.Sockets.SocketってSendして相手が受け取るのを待ってる間に自分の方はReceiveやろうとすると 相手も同じようなことをやってると たぶんReceiveはSendが完了するのを待っててお互いSendが完了しないせいで デッドロックするの?
467 :
466 :2010/07/23(金) 10:45:23
そういうわけでもないみたいだな 同時にやっても動いてる時は動いてる 何かのタイミングで突然Sendしなくなる しかもすべてのソケットが一斉に なんぞこれ Console.Writeしてデバッグしようとすると止まらないから分からない なんぞこれ
スレッドプール使い切ったとか?
470 :
466 :2010/07/23(金) 11:09:11
原因判明したlockでデッドロックしてた
くたばってしまえ
デバッグ時に Form_Load で例外が発生した場合、 何事もなかったようにFormが起動するのですが、どうしてでしょうか? EXEで動かすと、エラーで落ちます。
Form_Loadは非同期で実行されるから失敗しても画面は出てくる
別クラスからのForm内のTextBoxへのアクセスについて教えてください。 (VB2005:C#) Windowsアプリを作成しています。 Form1にbuttonを配置しており、クリックで処理をおこなっています。 またTextBoxには上記の処理の状況を表示するようにしています。 クリックでの処理の部分は煩雑にしたくないので、別途クラスを用意して 処理の部分をクラスのメソッドとしたいのですが、その際にTextBoxへの表示の 部分(A.Text=m)でコンパイルエラーがでます。 このような場合の対処方法について教えてください。
方法に気を使ってるようだから言うけど、そんなことはしないのが正しい テキストボックスなんか実装の詳細だから他のクラスから弄るという発想が間違っている フォームクラスにプロパティを定義してgetとsetの中でA.Textを取得設定する
テキストボックスの参照をクラスに渡せばおk
あちこちからコントロールを直接触ったりすると余計に煩雑になる イベントハンドラに直接書きたくないんだったら別のクラスになんてせずにフォーム内でメソッド分ければいいだけ
何のために別のクラスにするのかってことだよ 処理状況の通知のためだけに無駄にUIに依存させちゃもったいない フォームクラスを渡すよりはテキストボックスを渡す方がマシだが 何も渡さずにイベントなどで通知するのが最善
クラスに状況プロパティを設けて 別スレッドで処理を実行して フォームのタイマーコントロールで状況プロパティを取得して テキストボックスに描画する。 超クール。
>>475 そういうGUIに依存するようなクラスを作るのは糞設計の典型だよ。
「GUIが」データを持ってるクラスに依存するのはOK。
データを持ってるクラスが「GUIに」依存するのは普通の神経してたら
やりたいと思わない。
想定しているレベルがみんな違うんだし、 それを定義しないで議論しても、結論は一致しないと思います。
別にVB的にやりたければそれでもいいけど 煩雑にしたくないからクラスにしたとか言ってる以上は仕方ない
じゃ、どうすれば一番スマートなの?
>>474 1.即座に表示が必要な場合は
クラスにイベントを作ってイベントハンドラでメッセージを受け取って表示
2.表示より処理そのものの速度が重要な場合
クラスにメッセージをStringに溜め込んでおいてフォームで
タイマーを使って表示する
3.即座に表示しつつも速度も重視する場合
System.Dignostics.Debugを使う
テキストボックスをリスナーに登録してクラスでDebug.WriteLineする
か
Debug.Listenerと同じものを自分で作る
>>484 理想的な形だと思われるものが、現実的には理想的ではない典型的なパターンかな。
>>474 メソッドに直接書くか、クラスにTextboxを引数で渡しちゃいなさい。
理想を求めると、それが煩雑の原因になる可能性がある。処理も重くなるし。
ネットだと、コントロールをpublicにする方法ばかりがあって、
>>474 の具体的にわかりやすいページがみつからない。
>>485 何を分かったようなこと言ってんの。
煩雑(可読性を損なう)ことがないための「理想」なんだよ。
処理の重さ?
TextBox一つの更新ごときでどうやりゃそんなに重くなるんだよアホかw
つか内部クラスにすればええやんけ
>>485 それが一番だめなパターンだな
作りっぱなしで終わるならいいけど
クラスライブラリでまとめられるように設計しとけば言語が進化しても使いまわしが出来る
それとコンソールアプリ化が一瞬で出来る点は大きい
デバッグしやすい
あのー頭のイイ方で言い争わないで、具体的なコードをだして話してよ。
アホの子に算数を教える時には買い物に喩えろって話かねw アホの子ってなんで抽象論理解できないのかね
たとえ下手なやつにも抽象論はできぬw
仕事で規則が決まってるんでなければ個々のポリシーの話になるから無駄の一言 だから動けばいいよ 手間と結果が自分でペイしてると思うならそれでいい
>>486 publicにしろってことだよ
言わせんな面倒臭い
そんなに発展をスルーされたのがくやしいのか?
(*´‐`) みんな穏やかになろう!
ソースが長ったらしくなるのが嫌なら もともとpartial classなんだから、さらにソースファイルを分ければいい
悪い順に ・テキストボックスをpublicにしてフォームごと渡す ・フォームにプロパティ付けてフォームごと渡す ・テキストボックスだけ渡す ・渡さないで外から監視 あとは手間次第
WPF使ってViewModelでやり取りするベスト(゚∀゚)
無意味 モデルの状態の変更をViewModelに通知する仕組みが必要になるから同じこと
へ? ViewModelが何か意味わかってる?
通知ぐらいRx使うなりなんなりでobちゃんパターン使えよ
だから、モデルを監視する人がフォームからViewModelに変わっただけでしょ ViewModelに本質的な処理を書くのは御法度
ViewModelは「抽象化されたUI」なので、ViewModelにデータを操作したりするロジックを書くのは フォームに全部書くのと大差ない
処理はViewModelの仕事だろう… 相互の橋渡しがViewModelの役目なのに何をいってるだよ… 抽象化されたUIとか何をいってるんだ? Prismのサンプルソースでもいいからみろよ
旦那、、それMVCですがな… いや、ViewModelの役目の説明の一役にはなってますけどね…
>>474 は結局モデルの状態をビューに反映したいわけだろ?
橋渡しってことは結局どこかでViewModelがModelを監視しなきゃいけない
だからRxつかってObserverをモデルに仕込んでViewModelで公開通知しろよ 何でViewに書くのと同じになるのやら ViewはViewだろ
だからイベントなりRxなりコールバックなり、その通知方法の話をしてるんだろうw その問題にViewModelは関係ない
関係ないって・・・ もしかしてModelからViewに直接通知すんのか? んなわけねぇよな?
Rxってなーに?
だから通知を受ける側がViewModelだろうがフォームだろうがUIと関係ないクラスだろうが 通知方法の話としては一緒だという意味だよ
>>513 車の事
通知は徒歩よりも車使えって事をいってるのさ
>>507 そんなものがあるとは知らなかったが
model-viewだけだとやり難い場面があるなと思って
modelとviewを制御する部分を独立させるってのは自然にやってたな
そうすると両方を継承したクラスでも違和感無く連携が取れる
modelとviewは一方向制御とは限らないからね
制御ルールはcontrolに隠蔽してしまうとやりやすい
MVVMでもINotifyPropertyChanged通してるんだから何かが違うわけじゃない
今の時代自分の作ったものがOpenSourceになる可能性がけっこうあるし ソースが無いものなんか使えるかソース出せやゴルァって 何様か分からないようなのがうようよしてるし 結局中身をパクリたいだけなんだろうけど まあいいや、とにかくソース公開した時に恥ずかしい形にしたくないから いろいろと工夫してると自然に綺麗な設計になってくるんだと思います
>>499 Formを継承してイベントは子クラスでって言うのもあるかな
もとの質問
>>474 が書いてあるとおりの処理なのか、
もっと複雑な処理があって質問のために簡略化しているかで、
回答は変わってくるね。
リフレクションを使って変数の参照を取得するにはどのメソッド使えばいいんでしょうかー
ローカル変数なら無理 フィールドならType.GetField その前にDictionaryが使えないか検討すること
>>523 ありがとござーます!
Dictionaryを使うケースってどういう事でしょうかー
525 :
デフォルトの名無しさん :2010/07/24(土) 22:05:05
2.0の時みたいな、ローカルにインストールされるドキュメントって今はもう無いんですか?
あるよ。
WebClientはデザイナでフォームに貼りつけたりできるようにするためにComponentを継承していて ComponentがIDisposableを実装しているから伝染してるだけ ComponentのDisposeの実装も単なるスケルトンなので特に実質的な意味はない
>>528 なるほど。全部が全部呼ばなくて良いわけですね。ありがとうございます。
すぐに解放の必要があるリソースがある時だけ呼べばいいか。
しかし普通はそのオブジェクトがすぐに解放の必要があるリソースを持っているかどうか 判断できないのでIDisposableは使い終わったら取り敢えずDisposeすることにするのが無難 (「使い終わった」の判断が難しいものもあるけど) あとサンプルに書かれてないから不要って考えはやめるべき
サンプルに書いとけって話だけどな
解放がアプリ終了と同時でいいならしなくていいし 即解放しないと排他制御とかで問題がある場合は解放する
.net3.5です WebBrowserコンポーネントでファイルではなくstringの値を指定して開くことは可能でしょうか string = hogehoge; // 中身はhtmlソース
DocumentText
536 :
デフォルトの名無しさん :2010/07/26(月) 23:40:49
リフレクションで取得したメソッドを実行することは出来るのですが、 いつ実行されるか分らないジェネリックメソッドが実行された際に、引数(可変個数)、戻り値を取得・記録するにはどうしたらいいでしょうか?
アスペクト指向プログラミングの世界へようこそ
その辺はプロファイラの出番じゃね?
ProxyAttributeとか使って外から突っ込んだりはできる
ほとんどハックの領域だな
ボックス化って何のためにあるの?
参照型に値型を入れる為
つまり混乱させるためってことか
お前にとってはそうなんだろ
動的クラスの動的メソッドは、そのクラスのインスタンスの数に準じた個数作成されるのでしょうか? 例えば、動的メソッドMをもつクラスAのインスタンスを大量に作成すると、Mも大量に作成されてしまう のでしょうか?
546 :
545 :2010/07/27(火) 13:53:09
言葉が足りませんでした。 簡単に言うと、たくさんメモリ食っちゃうの?ってことです
動的クラス、動的クラスの動的メソッド どういう意味で使ってるの? 静的クラスを動的にインスタンス化してるだけなのか、Reflection.EmitとかCodeDomで型から生成してるのか…
リフレクションとかは使っていません。 上の例でいうと、 class A { ... public void M() { ... } } を A[] a = new A[1000]; のように使用した場合です。
どれだけ大量に作っても変わらない。 そういうのは普通にクラス・メソッドって言う方がいい。動的って言うと別の意味になる。
>>548 最適化してくれるかもしれないけど、食ってる気がする。
試しに1000個くらいメソッドを持ったクラスを定義して測定してみてよ。
>>549 ホント?元ネタとかある?
昔からよくある話だけど、実際のところ結論を聞いたことがないので。
クラスメソッドってインスタンス化しなくても使えるメソッドのことじゃない?
ありがとうございます。 静的に対して動的だと思ってました。大変失礼しました><
>>551 スマン、書き方が悪かった。
クラス・メソッドで一語じゃなくて
「動的クラス、動的メソッド」ではなく、それぞれ「クラス、メソッド」と言うべき って意味だった。
やってみりゃいいじゃん。
556 :
デフォルトの名無しさん :2010/07/27(火) 15:19:40
下記のソースコードをコンパイルしてSample.exeを作成しました。コマンドラインに「Sample.exe hello 1000」と入力してそれぞれの引数を出力したいのですが 2つめの引数が表示されず、また引数がない状態「Sample.exe」で実行した場合エラー(インデックスが配列の境界外です)が出てしまいました。 foreachを使わずに、cmds[0]、cmds[1]のような形で利用したいのですがどなたかご教示お願い致します。 using System; class Sample {static void Main() { string[] cmds = Environment.GetCommandLineArgs(); if (cmds.Length > 0) { Console.WriteLine(cmds[1]);// helloと表示させたい Console.WriteLine(cmds[2]);// 1000と表示させたいのですが、表示されません } else {Console.WriteLine("引数はありません");// 引数がない場合に表示させたい} }}
> cmds[0]、cmds[1]のような形で利用したいのですが
デバッグしろよ…
まぁ、別に内部動作なんて知らなくても、常識的に考えて不変で共通なやつをいくつも作るわけないじゃん
メソッドへのポインタ分くらいはメモリ食うのでは?
>>561 オブジェクトとして考えた場合、共通化ない方が自然なんだよ。
564 :
545 :2010/07/27(火) 16:02:06
テストしてみました。 public class A { }
終わりかよ
途中で書き込んでしまいました。 public class A { public int Methodxxxx() //xxxx: 0001〜1000 { return xxxx; } } public static class A_Static { public static int Methodxxxx() //xxxx: 0001〜1000 { return xxxx; } } AまたはA_Staticを100000個作成し、 全Methodxxxxを1回ずつ実行ました。 GC.GetTotalMemory(false)でインスタンス作成前と全Methodxxxx実行後のメモリ使用量を比較すると、 Aの場合、1299820 bytes A_Staticの場合、1566996 bytes でした。
失礼、 ×publi static class A_Static ○public class A_Static です。
>>562 メソッドへのポインタ× メソッドテーブルへのポインタ○
メソッドが1個だろうと1000個だろうと、インスタンスのサイズは一定。
メソッドテーブルは当然メソッドの数だけ大きくなるけど、インスタンスのサイズは一定。
>>566 お疲れさま。毎回同じように後者の方が大きくなるなら、興味深い。
正直、すごくどうでもいい
virutual methodのことかな?C++だとvirutual methodが増えるとオブジェクトサイズは増える。 C#についてはどうなのかと考えて、一度測定してみたことがある。 結果は意外なことに、増えなかった。つまりメソッドをVirtualにするかどうかにあたっては メモリ消費を考慮にいれる必要はないということになる。
ああ、ごめん。動的メソッドって非Staticなメソッドのことか。 勘違いした。失礼。
だからなに?って感じ
理解できないなら黙ってればいい
だからなに?って感じ
例えば長大なメソッドが大量にあるクラスをインスタンス化したら、 大量のメソッドがコピーされるのか? なんのために? ありえない。
参照型の各インスタンスが持ってるのは、同期ブロックインデックスと型ハンドルのみ。
580 :
474 :2010/07/28(水) 00:57:33
亀レスになりましたが、解決しました。 値の参照はエラーになり断念しました(たぶんイベントと関連がありそう)が、イベントを使って機能を実現しました。 ご助言いただいた方々、ありがとうございましたm(__)m
581 :
デフォルトの名無しさん :2010/07/28(水) 02:04:21
>>578 無知って怖いわ〜。そのポリシーで仕事されたらたまらんわ。
メリットがデメリット、デメリットがメリット。わかる?
>>563 の言う通り、ある有名な言語は、まさにメソッドが大量にコピーされる。
もちろん、メモリ節約の手段はある。
さて、この言語は何でしょう?
初心者用のスレッドですので、上から目線的クイズはご遠慮ください・・・
>>581 言い返せない根拠
>>560 を示されたからって、C#と関係ない話をして荒らすな無能。
無知って怖いわ〜。そのポリシーで仕事されたらたまらんわ。
動的型付け言語で一番馴染み深いのはECMAScriptか
C++/Java/C#なんかの静的型付け言語からすると随分設計思想が違う
ま、それだって今時は高速化の為に共有できるメソッドは共有したりするわけで
大量のメソッドがコピーされる内部動作が正しいと言う
>>563 は馬鹿だろ
585 :
563 :2010/07/28(水) 14:02:33
>>584 正しいなんて書いてないけど。。。そして馬鹿呼ばわりか。
工場で車(オブジェクト)を作ったら、ハンドル(メソッド)は個別にできるでしょって言う意味。
理解できない、しようとしない相手に正論語っても無駄だけどさ。
やっぱお前馬鹿だろ。 C#スレでC#の"内部実装"の話をしてるのに、 「共通化ない方が自然なんだ」とか「ある有名な言語は、まさにメソッドが大量にコピーされる」とか 「工場で車(オブジェクト)を作ったら、ハンドル(メソッド)は個別にできるでしょ」なんて話が出てくるんだ。 君の頭では話の流れが理解できないようだな。
新人類といわれた世代と比べてみても、取るに足らない主張に熱くなれることはやはり素敵です でもそうやって熱くなってるとああ、この人は中身のない人なんだなと勘違いする子もいるので 気をつけてくださいね 虚しい人生を送り続けている人の中には、意味不明なことをして優位性を保持しようとする輩が稀によくいますから あなたは怒りの感情を押し込めたりしない熱いハートの持ち主なんでしょう そして熱いハートは行動によってのみ示され、言葉が足りないためによく大きな誤解を周囲に与えているようです ですが悲しいかな、ここにもその熱いハートを真っ向から向き合える人間がいないようです なので提案ですが、マックスハートスレにいかれてはどうでしょう そうすればあなたは晴れやかなマックスハートとなりくだらない諍いもなくなるでしょう
ばーか つまんねえって
正論(笑)
( ゚д゚)< いいか、みんな せいろ ん っが
592 :
563 :2010/07/28(水) 16:44:06
>>586 >>578 が、C#だけを特定して語っているとは思えない。
こんなのも理解できない君は、まさに君が言うそれですよ。
>>591 そして妄想が始まる。
>>592 C#はそんな非効率的な事はやっていないと結論が出たのに
スレタイ読めない馬鹿がまだ騒いでやがるwwwwww
ていうか、俺のレスじゃないやつまで俺のせいにされてもねぇ?
被害妄想甚だしい。ただの馬鹿だと思っていたがもっと深刻なようだな。
つか内部を気にせずに使おうって感じの言語なのにそんなこと考えてたら生産性高まらないじゃん
ある程度内部動作を知っとかないと、ただでさえ重い.net Framework上での動作がさらに重くなるだろ
実際のとこ、本当にメソッドの本体がインスタンスの数分コピーされるような言語処理系ってあるの? 見た目でそう見えるようになってるだけで内部実装は違いそうなもんだが。 プロトタイプ的な言語だって必要なメソッドだけ参照で入れ替えればいいだけだろ? C#だって見た目はインスタンスごとにメソッドがあるように見えるよな。 単に内部実装上そんな無駄なあほなことはしてないってだけで。 まあC#の場合はCLIの仕様の方が本来だから、内部実装詳細とは言い切れない面があるが。
>>594 気にせず使おう じゃなくて 気にしなくても使える。
つかググれば数分で答えに巡りつく程度の問題で「生産性高まらない」なんて大袈裟だなぁ
問題解決の手がかりになったりして得する事はあっても損はしないだろ。
599 :
563 :2010/07/28(水) 21:37:13
>>593 スレタイで逃げるのはいいけど、とりあえずレスを遡って見てもらってもいい?
C#ではなく、一般論から始まってるんだけど。あー、草刈は面倒だ。
600 :
デフォルトの名無しさん :2010/07/28(水) 21:49:33
そうしたい気持ちは理解せんでもないが 578は一般論じゃないと思う
>>599 C#の話から始まって
>>545 、途中で入ってきたお前さんがスレ違いの荒らしを延々とやってるわけだが。
603 :
デフォルトの名無しさん :2010/07/28(水) 23:09:01
webを巡回するプログラムを作成しているんですけど、mixiとかにアクセスした時に ときどき「Webページからのメッセージ」というポップアップウィンドウが出てきてしまうページがあります。 メッセージには、「error0」もしくは「エラーが発生しました。[Object Error]」と書いてあるのですが、「OKボタン」を押すとその後問題なく動きます。 このメッセージを出さないようにしたいのですが、何かいい方法はありますでしょうか?
何のクラス使ってるかぐらいは書け System.Windows.Forms.WebBrowserならScriptErrorSuppressed これでダメならIDocHostUIHandler辺り実装することになるかねぇ
>>563 割り込んで悪いけど、さすがに誰が考えても君の言ってることは変だ。
クラスメソッドの一番素朴な実装方法は、インスタンスのフィールドの値を保持する
構造体へのポインタを暗黙的に引数に取る方法だと思うが、
それよりどう考えても非効率な方法をとる理由が何一つない。
つか質問と回答以外いらねえからよ 素人の見解発表会場じゃねーんだよ
なんで初心者スレに粘着するんだよ。 頭のいい上級者さんは、MVPとねちょねちょやってろ。
609 :
603 :2010/07/28(水) 23:35:19
>>603 ,604
ありがとう、これでなんとかなりそうです。
何で自分にレスしてんだよw
611 :
063 :2010/07/28(水) 23:42:14
>>604 ,605,610
ありがとう、これでなんとかなりそうです。
ふうん 面白いと思うの、それ
クイズの答えぐらい書いていってくれればいいのに
614 :
デフォルトの名無しさん :2010/07/29(木) 01:37:39
struct ANY { System.Type type; string value; } 上記のような構造体で、typeで型、valueで値を表しているとき、 type型のvalue値を持った、インスタンスを作るにはどうしたらいいですか?
Type からインスタンス作るだけなら Activator.CreateInstance だけども。 文字列からの Parse もやりたいなら色々リフレクション駆使しないとダメ。 数値型なら、 int.Parse みたいなのが各型にあるから、 type.GetMethod("Parse", BindingFlags.Public | BindingFlags.Static) とかで変換関数とれるけども、 一般の型だとちょっと難しい。 WPF なんかは、TypeConverter 属性とか調べて、それに基づいて型変換してる。
616 :
デフォルトの名無しさん :2010/07/29(木) 01:47:25
>>615 そうですね。
Activator.CreateInstance()でからインスタンスは作れるのですが、
そこにどうやって値を与えればいいのかわかりませんでした。
簡単にはいかないようですね。
用途かぎられてるなら、使う型の分だけ Dictionary<Type, Func<string, object>> で変換関数持っとくという手はある。
618 :
デフォルトの名無しさん :2010/07/29(木) 04:34:44
なんか俺にピッタリなスレにたどり着いた うすうす気づいてるのだけど C# って C++ の delete とか C の free() みたいなのって無いんだよね? デストラクタとか Dispose() とか using (foo){ } とか用途がまったく違うんだよね? 強いて言うなら System.GC.Collect(世代); が一番幸せに近いの? 質問ばかりでごめんねすぐにVIPに帰るから許して
GC任せにするのが一番幸せに近い。 そして空いた時間でプロファイル取ってロジック見直す方がよっぽど効果的。
リソース持ってるならDisposeしろよ
>>618 IDispose 実装してたらとりあえず using。
GC 強制呼び出しとかいまいち。
Windows Vistaで、ListViewItemの選択状態をエクスプローラ風に (ハイライト色塗りつぶしじゃなくて半透明角丸の選択状態)するのって どうやるんですか?
624 :
デフォルトの名無しさん :2010/07/29(木) 20:10:48
質問です 数千件のIPアドレスがあり全てに対してPINGを行いたいのですが IPアドレスのネットワークが数種類ありNICの設定を変更しなければ 全てに対してPINGを行うことができません。 If(192.168.01) { } elseif(192.168.100.1) { } みたいな感じでIPごとにゲートウェイを指定して接続する方法て無いでしょうか
>>623 ありがとうございます。
ところでこれは必ずWndProcでWM_CREATEをフックして実行しなければダメですか?
コンストラクタでもできたんですが
627 :
デフォルトの名無しさん :2010/07/29(木) 20:30:48
>>625 ルーティングテーブルを設定すればいいんじゃないの。
仮想NICを使ったほうがスマートじゃないの?
>>626 HandleCreatedイベントでやるのがベストかな
>>629 ListViewはデザイナでHandleCreated表示されないので面倒なんですよね・・・
>>627 ルーティングテーブルってWindowsのでしょうか
>>628 SoftEtherがシェアウェアになってしまったし
フリーで使える仮想NICってほかにありますか
SoftEtherならオープンソース版が最近出たぞ
>>631 ルーティングテーブルは、あるIPやネットワークが、
どのNICやルータの先にあるかって定義
だからping打つだけで勝手にそこ経由して出て行ってくれるよ
634 :
デフォルトの名無しさん :2010/07/30(金) 04:21:48
>>618 です。
>>619-621 さんどうもでした
一度ヒープに乗っけてしまうと、自分の思い通りには出来ないのね…
struct組み合わせたりして頑張ってみます
どうでもいいがタイトルがオブジェクト指向じゃないなぁ なんのためのポリモーフィズムだよw
>>631 NW構造によるわけだけどNATの向こうにpingを通したいのか、
IPアドレスのインクリメントのしかた(*)がわからないのか
(*:ex)192.168.0.254の次に192.168.1.1にする方法)
vmwareで仮想PC作ってそこに仮想NICいっぱい追加すればいいよw
IPごとにちまちまデフォルトゲートウェイ変更してからpingとかw 同時に動いてるネットワーク関連の動作がぐちゃぐちゃになるけど。
コモンコントロールのMonthCalendarで、 特定の日付の部分だけ背景色を変えたり文字を強調させたりしたいのですが、 どのようにすればできるでしょうか?
特定の日付の部分だけ背景色を変えたり文字を強調させればいいですよ。
スクリーンセーバーを製作しようと思ってて、それ関係のサイトあったら教えてください
アホやw
夏休みか。
virtualからoverrideされたメソッドを更にoverrideする場合ってどういう表記になるんですか?
普通にoverride
逆になぜ特別な表記になると思ったのか知りたい
特別になるかどうかなんて、C#の仕様次第だろそんなの
逆にoverrideの連鎖をとめたい場合はsealedを指定。
virtual に対して1回 override した時点で、 ルーティングイベントの e.Handled = true みたいな状態になって、 次からはもう override 書かなくても言い的な解釈しちゃった? んなわけねぇだろぉ。 override 必須にしてる理由が、 「間違えて別の名前でメソッド書いてもコンパイルエラーにならない」っていう人為的ミスを避けるためだし。
652 :
646 :2010/07/31(土) 11:58:56
ありがとうございます
来月からC#使うんだけど
・環境入れてない
・とりあえず本で学習
・手元の本及びサイトで二階層overrideがなぜか乗ってない
C++だとvirtual→virtual→virtual→virtual→…となるから
どうなんだろうと思って
>>651 寧ろ中間階層のクラスがoverride virtualじゃないのかと思ったくらいです
>>652 C++だと2回め以降のvirtualは書いても書かなくてもいい。
C#の場合は
>>651 の言うとおり人為的ミスを避けるために構文がわざと冗長になっている。
>>652 overrideを書かなくても、baseで親メソッドを呼べば、同じ結果になる場合がある。
newを使う場合ってどんな時だろう。
>>654 new はまず使わない。
あれは「やるなよ」って警告みたいなもんだ。
いやいやWindows.Formsのコントロールをカスタマイズするときには大活躍する。 もっとも、あれはほとんどの場合コントロールの設計がまずいからだけど
>>656 それにしたって、別の名前のメソッドにした方がいいと思うけどね。
どう見てもTextBoxベースのコントロールなのに、テキストの設定取得がTextじゃない コントロールなんて嫌じゃん普通は。 もちろん、newした場合はアップキャストした場合の問題があるんで一長一短なんだけど。
new の弊害はアップキャストにつきるというか、アップキャストできる以上 new を使う意味はないというか。
>>654 参照しているライブラリをバージョンアップしたら基底クラスにメソッドが追加されてて
自分の書いていたサブクラス側のメソッドと重複した場合。
夏休みか。
662 :
デフォルトの名無しさん :2010/07/31(土) 17:22:34
例年夏休み頃に発生する「夏だな〜」「夏休みか。」って書き込むアホを最近よく見かけるから、たぶん夏休みなんだろう。
ずっと2chに入り浸ってるこの人気持ち悪い(´・ω・`)
>>657 同じ名前じゃないと駄目な場合が多いんだなこれが
カスタムコントロールを配布/販売できるくらいまともに作ろうとすると、
デザイナで扱いやすくするために既存のプロパティやイベントに属性を追加して、
不要なプロパティを非表示にしたり、初期値を変更したり、etc.
ちょっとした機能追加だと、こんなコードが大半を占めるという馬鹿らしい状況に
[Browsable(false)]
public new string Hoge {
get { return base.Hoge; }
set { base.Hoge = value; }
}
本来のnewの主目的は
>>660 の言う通り
基底クラスに偶然同じシグネチャのメンバが追加される
→派生クラスをコンパイルしたら警告が出る
→派生クラスを書いた人がそれに気付く
→確認したらnewで警告抑制→派生クラスを利用してたコードの修正は不要
>>662 じゃないけど、俺も
>>661 って自分が見えてない奴の典型だなとは思った。
お前の笑ってるものってお前自身なんじゃねえの、って奴。
実にみっともないな。
それに、老人の繰言みたいに2ch的定型句を何の疑問もなく口にできる奴って
個人的にはちょっと信じられないんだよな。
>>667 きみのレスが信じられないんだが。ほっとけよ。
>>666 継承なら警告出る→new追加で解決できるけど、拡張メソッドでそれやっちゃうと警告すら出ないという……
拡張メソッドを追加するときは名前空間ごと新規に追加するべき 今後の.NET Frameworkの拡張は間違いなくそういうルールで行われるはず
>>665 よくわからないんだけど、デザイン時に隠して、
プロパテイへのアクセスは許可するってどう言うことでしょうか?
674 :
663 :2010/07/31(土) 20:04:27
>>673 そういうことじゃなくて、例えば曜日を選択するComboBoxを作ったとすると、
普通はデザイン時にItemsは編集する必要がないし、してもらいたくないわけだ。
>>665 は恐らくそういう場合のことを言っている。
ScrollableControlを継承して独自コントロールを作ったけど、ユーザーにはスクロールの制御を させたくないとかね。 アップキャストされたらどうしようもないんだけどさ。
>>675 なるほど。setがあるのは、最悪の場合は使えってことか。
ただこの場合、newを使う必要があるかどうかはよくわからないが、まぁいいか。
678 :
614 :2010/08/01(日) 11:48:14
struct ANY { System.Type type; string value; } typeが様々なEnum型の場合、type型からvalue値を持ったEnum型のインスタンスを生成するにはどうしたらいいでしょうか。 Enum.Parse(type, value)でobject型を得られるところまでは分かったのですが、これをtype型にキャストする方法がわかりません。 Enum.Parse(type, value) as type のようなことが出来ればいいのですが。
679 :
614 :2010/08/01(日) 11:54:22
訂正 × typeが様々なEnum型の場合、type型からvalue値を持ったEnum型のインスタンスを生成するにはどうしたらいいでしょうか。 ↓ ○ typeが様々なEnum型の場合に、typeのEnum型のvalue値を持ったインスタンスを生成するにはどうしたらいいでしょうか。
.NET 4 で Enum.TryParse<T> も入ったけどもね。 あとは、もっとリフレクション勉強した方がいいんじゃないかと。
>>680-681 なんか突っ込みどころがズレてる気もする。
614は
>これをtype型にキャストする方法がわかりません
こう言ってるんだから、少なくともC#では、実行時にメソッドの返り値や
変数の型を指定することはできない、というような回答でないとおかしいのでは
T Parse<T>(string str) { object parsed = Enum.Parse(typeof(T), str); return (T)parsed; } とかいうコード示すのがいい気もしてきた。
var src = Enumerable.Range(1, 100); Func<int, bool> f1 = SerchValue; Func<int, int, bool> f2 = SerchValue; foreach (var s in src.Where(f1)) Console.WriteLine(s); foreach (var s in src.Where(f2)) Console.WriteLine(s); static bool SerchValue(int x, int index) { return ((x + index) % 2) == 0; } static bool SerchValue(int x) { return (x % 2) == 0; } 匿名メソッド、ラムダ式を使用せずに、 Func<int, bool> f1 = SerchValue; Func<int, int, bool> f2 = SerchValue; の宣言を行わずして記述できる方法が不明。 教えて。
>>684 質問の意図がつかめないけどこういうことかな?
foreach (var s in src.Where((Func<int, bool>)SearchValue)) Console.WriteLine(s);
foreach (var s in src.Where((Func<int, int, bool>)SearchValue)) Console.WriteLine(s);
>>685 foreach (var s in src.Where(Func<int, bool>SearchValue)) Console.WriteLine(s);
foreach (var s in src.Where(Func<int, int, bool>SearchValue)) Console.WriteLine(s);
とか記述して、なぜだろうって思ってたw
単純にキャストですね。
ありがとうございます!
687 :
614 :2010/08/01(日) 21:14:22
>>680 それはわかります。でも、特定のEnum型に代入するためにはキャストが必要ですよね?
↓このようにはできるのですが、
MyEnum me = (MyEnum)Enum.Parse(typeof(MyEnum), "hoge");
このMyEnumの型がType型で与えられているときは、どうすればいいでしょうか?
688 :
614 :2010/08/01(日) 21:15:25
type型という言い方が間違ってるんだよ <T>のTはType型とはいわない。ジェネリックの型引数とか呼ぶ。
まぁ的確な言葉を使うってのは難しい まず知らないわけだから
691 :
614 :2010/08/01(日) 21:25:44
>>683 残念ながら、T Parse<T>ではダメでした。
下記のようなことをやりたいのですが、<>にはType型の変数を入れられないようです。
Type t = typeof(MyEnum);
object obj = Parse<t>("hoge"); //←これが出来ない。
692 :
625 :2010/08/01(日) 21:31:12
>>625 です
ルーティングテーブルで検討してみましたが
膨大な数のIPに対してすべてのルートを追加するのは現実的ではないので
理想を言えば ping.exe の -j オプションのように経由するGWを指定して
PINGテストをできればよいのですがPINGクラスを見てもそれらしきものが見つかりませんでした
何か良い方法はないでしょうか
NW構成は [PC]-[HUB]-[ネットワークごと複数ルーター]-[インターネット] です
694 :
614 :2010/08/01(日) 22:35:03
>>693 ご指導ありがとうございます。
先ずは、書籍やC#の初心者向けのスレッドなどを幅広く利用して勉強してみたいと思います。
>>692 個別のIPだけじゃなくて、ネットワークも指定できるよ
ネットワークマスクで指定すればいいじゃん
>>695 ありがとうございます。
ちょっと理由があってマスク指定しても正常にルーティングされないんです。
それで別の方法を検討中です。
理由も出さずに解答した相手にダメ出し?氏ねよどんな教育うけてきたんだよマジで
>>694 リフレクションというか、基礎が徹底的に欠けてる感じだねえ。
一度書籍をザッと眺めるといいと思うよ。
699 :
695 :2010/08/01(日) 23:31:13
お礼を言ってから別の方法を検討してる理由を説明しただけで 駄目だしはしていないと思いますが・・・
>>697 が受けてきた教育よりかはマシだと思うマジで
いいから氏ねよ
失せろカス
>>691 だからType型で与えられてるならキャストする意味無いんだから
Type t = typeof(MyEnum);
object obj = Enum.Parse(t, str);
でいいんだよ
特定のEnum型に代入したいならそもそもType型で与えられてないだろ?
頭を整理して考えてみて
フォームに収まるサイズのDataGridViewを、 内容に合わせて自動的に小さくするには、どうしたら良いでしょうか? 今はコントロールとセルと間にグレーの余白ができてしまいます。
環境:VB2005 Form上(に配置したアイコン または 登録したメニュー欄)から新しいウィンドウを開くのは 「Form内にFormを配置する」と考えていいでしょうか? または、DataGridViewなんかでもできますでしょうか? 例:JaneStyleの板一覧ウィンドウなど。 枠がついてて右上に×を出して閉じれるようにしたいです。
コントロール直接配置すりゃいいじゃん Formの中を分割したいだけだろ?
参照したdllのバージョン情報ってどうやって取得するの? 自分のバージョン情報だと string appVersion = Application.ProductVersion; で取れるんだけど参照したdllはどうするのかわけわかめ
709 :
デフォルトの名無しさん :2010/08/02(月) 15:36:21
関数ポインタで保持して 呼び出すみたいなことをやりたいと思ってます。 調べてたら Func<>という奴がそれっぽいみたいですが ref / out を使おうとするとエラーになってしまいます。 Func<> では使えないのでしょうか? また、ほかに実現する手段ありますか?
refつけなきゃいいじゃん
>>708 System.Diagnostics.FileVersionInfo.GetVersionInfoがそれっぽい。
>>709 Func<>はMSDNでみてもわかるように、引数にref/outが指定されていないデリゲート。
なので自分でそれらしいものを用意すればいいんじゃないかと。
delegate TResult FuncRef<T, TResult>(ref T value);
delegate TResult FuncOut<T, TResult>(out T value);
VS2003が出てきたので始めてみようかなと思ってます。 で何から始めればいいでしょうか? プログラミング経験といえばFortran90、BASICぐらいしかありません(それもかじった程度)
何がしたいのか分からないのならひたすら文法だけ覚えろ
>>713 まずそのVS2003をそっと押し入れに戻すところから。
Fortranとか数年ぶりに聞いたな・・・w あれどういう需要あんの?
数値計算 情報系じゃない学者先生が惰性で使う
VisualStudio2010を使って折れ線グラフを作ってます。 線を太くしたいのですが、それらしきプロパティがありません。 DataPointのサイズをいじればいいのかな?と思って色々試しているのですが、変わりません・・・。 どなたかお願いします。
720 :
デフォルトの名無しさん :2010/08/02(月) 21:16:47
This is a Pen!!
>>717-718 少なくとも工学ではまだまだ現役。最古の高級言語なのにね。
行列とかベクトルとかの扱いが楽だから簡単なシミュレーション書きたいときに重宝。
スパコンなんかでもまだまだ使われてるとか。
>>719 SeriesのBorderWidthプロパティ?
724 :
614 :2010/08/02(月) 23:26:21
>>704 切羽詰っていたので勘違いしていましたが、問題は
>>691 ではなく、
object[] を enum[] に代入することでした。
問題は無事解決しました。ありがとうございました。
いえいえ
726 :
デフォルトの名無しさん :2010/08/03(火) 00:49:45
C# に C++のPathAddBackslash()のようにパスの末に¥が 存在しない場合に付加するような関数ありますか?
うーん・・・ new DirectoryInfo(@"c:\test").FullName でも Path.Combine(@"c:\test", "") でもダメだった・・・
ちょっとそのものとは違うけど、 Path.Combine(@"C:\test", @".") とか・・・
path.TrimEnd('\\') + @"\"
>>723 Seriesのそれ変えてるんだけど、変化がないんですよね。
よくわからない。
>>723 とおもったら、マーカーボーダーウィズと勘違いしてた!
ボーダーウィズかえたらいけました。
サンクス!
こんな簡単なことに手間取ってはずかしい・・・。
ウィズ・・・
むしろウィズで正解。
>>726 二重になってもかまわないから無条件に付加しちゃえ。
ふぅ
735 :
デフォルトの名無しさん :2010/08/03(火) 21:02:34
>>733 \が2つあっても認識するんですね。
知りませんでした。
\が2つ以上でも大丈夫なのでしょうか?
それならいちいちチェックしなくてもいいかなと思いましたが。
Path.DirectorySeparatorChar
5MBのテキスト文字列から単語を高速に検索するにはどうすればいいんですか? String.Substringが遅いんです。
正規表現でいいんじゃね?
>>737 単純に検索なら IndexOf は?
Substring使ってるってことは、ループして自分で検索してるよね?
文字列の検索で何故Substring。 やりたい/やっている動作は検索なのか?
C#で画像を読み込んでお絵かきチャットに自動で書きこむソフトを作りたいんですがどうやったらマウスを自動操作できますか? と書き込んでいるうちに自己解決しました(ゝω・)v☆キャピ!
これだけなんですが、2時間経っても終わりません。 Lengthが250万ぐらいです。 for (int i = 20; i < text.Length - 2; i++) { if (text.Substring(i, 1) == "-") { int pos = 0; for(int n=2; n< 20; n++){ if (text.Substring(i-n, 1) == " ") { pos++; } if( pos == 2 ){ text = text.Insert(i-n, "\r\n"); break; } } } } この中で一番重いのはSubstringですよね? 今回の処理が終わったらIndexOfやってみます。ありがとうです。
いろいろとダメダメだな。
無知って罪だね
>>742 text = text.Insert(i-n, "\r\n"); が一番重そう。
そりゃあ重いだろ string str = "abc"; if(str[1]=='b') { // true } この程度すら理解してないだろ
うん。
>>742 でやらんとしている事なんてRegex.Replaceで一発だと思ったがどうだろう
とりあえずSubstring(n,1)をインデクサに置き換えるべよ。
>>742 その仕様をコードじゃなくて言葉に表してみ?
・20文字目以降でハイフン出てくるところを探す ・ハイフンから手前を最大20文字見て、二つ目の空白の手前に改行を入れる
ところで改行って"\r\n"派? それともEnvironment.NewLine派? 俺はEnvironment.NewLineだけど Environment.NewLineはダサいから\r\n使えっていう奴がいるんだよね
Win以外の環境でなんか実行しないが定数派w
空文字列は ""。stringEmpty はダせえwwwwwww とか思っちゃってるのに 改行はNewLineですwなぜ?w
@" "
>>756 ぜったいやだw
それやってる奴いたら即直させる。
あっそ
>>757 そんじゃあMicrosoft.VisualBasic.ControlChars.CrLfとかMicrosoft.VisualBasic.Constants.vbCrLf
なんてのもあるよ
>>759 VwwwwwwwwwwwwwBwwwwwwwwwwwwwwwwww
辻と加護の区別がつかないのと同様に、 \r\n なのか \n\r なのかがわからなくなる。 よっておれは、トランクス派。
>>755 空文字列は""。
書きやすいのと文字列として色分けされるから。
改行は原則Environment.NewLine。
Win以外の環境でなんて実行しないけどw 一応考慮して。
いっぱい使うときは var nl = Environment.NewLine に入れてる。
最初はマルチプラットフォームを謳ってたからね その頃の意気込みがEnvironment.NewLineなのかw
Environmentが長すぎるのが問題なんだよ。 stringクラスにあればいい。
XPでもVistaでも動くしマルチプラットフォームじゃん
>>764 stringクラスに環境依存の定数はちょっとやだ。
Environmentが長すぎるのが問題なんだよ。 stringクラスにあればいい。
>>767 stringクラスに環境依存の定数はちょっとやだ。
>>757 そんじゃあMicrosoft.VisualBasic.ControlChars.CrLfとかMicrosoft.VisualBasic.Constants.vbCrLf
なんてのもあるよ
既視感が…
たいへんだね
まぁネタは置いといても やっぱEnvironmentは長すぎると思わね? Environment.NewLine使うときって + で結合するから更に長くなりがちなんだよね。 だからstringクラスにあればいい。
正直、String.NewLineもEnvironment.NewLineもたいして変わらんと思う(どっちも長い)
>>773 そこはお前
stringクラスに環境依存の定数はちょっとやだ。
って書いとけよ
いっそ拡張メソッドでNewLine(),NewLine(string) でも作るとか
>>775 public static string AddNewLine(this string value)
{
return value + Environment.NewLine;
}
public static string CombinLine(this string left, string right)
{
return left + Environment.NewLine + right;
}
そんなくだらないメソッドについて語るなんておまえら可愛いな
暇なのさ
779 :
デフォルトの名無しさん :2010/08/04(水) 05:04:00
(ゝω・)v☆キャピ!
IntelliSense 前提の言語で Environment が長すぎって文句付けるのもちょっとアレだし、 「意味」が通ることが最重要とされるこのご時世に string に環境依存なもの入れたいってはかなりアレだし。
うごきゃいい
今はSilverlightもあるからな まあ環境無視して同じ出力が得られるようにするのがSilverlightの用途としては普通だろうけど
783 :
デフォルトの名無しさん :2010/08/04(水) 09:44:41
適当なUriからファイルを一つ読みだしたいのですが(ローカルのディスクのファイルを指定する事も多分にある)、どのクラスを使うのが一番適当でしょうか? とりあえず System.Net.WebClient を使っているのですがもっと適切なのはありますか?
タイトルがないフォームを、 MouseDown、MouseMove、MouseUpを使って移動させることはできましたが、 ウィンドウを非アクティブな状態にして、素早くマウスを動かすと、 フォームがついて来なくなりました。ゆっくり動かすと大丈夫です。 どう言った原因が考えられますでしょうか? とりあえず、MouseDown時にActiveにすることにより、解決はしています。
キャプチャしないからじゃに
タイトルがないフォームをマウスで動かすならWM_NCHITTESTに応答するのが簡単
788 :
784 :2010/08/04(水) 19:00:41
>>785 キャプチャなしでも、MouseMoveでフォーム外のマウスの位置を取れるみたいです。
イベント発生のきっかけと、イベント発生にタイムラグがあるからですかね。
>>787 めちゃくちゃ簡単ですね。これで試してみます。
ありがとうございました。
789 :
784 :2010/08/04(水) 19:14:46
何てなw
790 :
デフォルトの名無しさん :2010/08/04(水) 20:15:06
ちなみにWPFだとDragMove();一文で済んでしまう Aeroシェイクの対応までやってくれる衝撃
リッチテキストボックスで中の文字をマウスで選択反転させる時一文字ずつ選択していくにはどうすればいいんですか? 途中で数文字まとめてどどどって反転してその単語内で分割した位置で反転できないんです
クラスの配列を作りたいのですが、 現在は下記コードのように、普通に参照の配列をnewで作ってから forで配列の中身に一つずつクラスをnewして代入しています。 var arr = new Class[N]; for(int i=0; i<N; i++) { arr[i] = new Class(); } しかしNか数万のオーダーとなるとこの初期化処理に時間がかかり、困っています。 配列arrは実体の配列でよく、派生したクラス実体の代入を試みると言ったこともあり得ないのですが、 このような場合はどのようにすればまとめて実体を確保することができますでしょうか。
ループが多い場合はループ内の型宣言はループ外でしたほうがいいんですか? while(true){ int a = 1; } int a; while(true){ a = 1; }
どっちでもいいよ。
>>792 1個1個newしてるか、まとめて確保してるかとかの問題じゃなくて、
そもそも数万のオーダーのインスタンス作ってるんだから重くて当たり前だろうに。
>>793 そんなもん、コンパイラが最適化する。
ループが重いんじゃなくて、単に数万回コンストラクターが呼ばれるのが重い。
0 初期化でいいんなら struct に変えれば?
>>793 が同じになるのは、コンパイラの最適化というより、
C系の静的言語の設計のコンセプトみたいなもんだよ
はじめからローカル変数は関数ごとに確保する前提で設計されてるから当たり前
>>780 >string に環境依存なもの入れたいってはかなりアレだし
それはおかしな話だろ。
環境依存を中和するのは .NET Framework の存在意義の一つでもある。
環境によって改行という概念がないというのであれば
お前の意見は正しいかもしれないが。
そもそもNewLineプロパティ(フィールド)があった場合に
NewLineの中身を意識すること自体が間違い。
一般的には正しいかもしれないが、 改行コードについては影響があまりにも大きすぎるから意識しないと仕方ない
どっちでもいいよ。
>>798 いやいや、「この実行環境における改行文字」という情報がSystem.Stringという型に
属するのは意味論的におかしいでしょ。
>>780 の言い方もちょっと舌足らずとは思うが。
いい加減どうでもいいと思わんか?
オマエガナー
805 :
デフォルトの名無しさん :2010/08/05(木) 23:50:14
staticコンストラクタを明示的に宣言しない場合、CILに、beforefieldinitが自動的に追加されますが、 staticコンストラクタを明示的に宣言しなくても、staticメンバを宣言した場合にbeforefieldinitが追加されるのは、 C#からCILに変換される際にstaticコンストラクタが自動的に追加されてるだけと考えてよいでしょうか?
>>804 自分はうざくないと思ってるのか。
まるで幼児の所業だな。
showDialogでForm1からForm2を呼び出したんですが 2から1の中身にアクセスするにはどうすればいいんですか?
>>807 それやっちゃダメ
あらかじめForm2のプロパティに値を入れるアルよ
ありがとうございました
810 :
805 :2010/08/06(金) 00:30:21
度々すみません。 staticコンストラクタを明示的に宣言しない場合、beforefieldinitが自動追加されるので、staticコンストラクタとbeforefieldinitは共存しないと思ったんですが、 staticメンバを宣言してILDasmでMSILを見ると、staticコンストラクタ(.cctor)とbeforefieldinitの両方が存在しています。 なぜでしょうか?
>>796 なるほど。関数が重いというのであれば、struct化等検討してみたいと思います。
ありがとうございました。
>>810 あんまり詳しくなく適当にいうけども・・・
static じゃない場合って、呼び出し順序的には、
フィールドの初期化 → 親クラスのフィールドの初期化 → 親のコンストラクター → 自身のコンストラクター
なのよね。
なんかそれと同じような手順が static でも動いてるのかね?
フィールドの初期化を行うstaticコンストラクタが自動生成されてるだけ。
814 :
805 :2010/08/06(金) 01:36:50
>>812-813 ありがとうございます。追加質問で申し訳ないのですが、
他classから継承したclassで、コンストラクタも含め一切のメンバを持たず、beforefieldinitも無いケースはどのようなケースが考えられますか?
>>808 できましたありがとうございました
class Form2{
public Form form;
((Form1)form).a=1;
}
class Form1{
int a;
Form2 form2 = new Form2();
form2.form = this;
}
これはすごい
すげーすげー!
>>791 いったん単語の区切り位置を行き過ぎてから戻すと希望の位置で切ることができる
前も後ろも同様
>>818 前後にどどどってなる時があって、その場合絶対特定の単語を選択できないんです
すいませんシフト+十字キーで選択できました ウィンドウズの問題でしたすいません
>>819-820 たとえばabcdeの中のbcdだけを選択したいとき、aとbの間にポインタを置いてボタンダウン、
まずaの左までドラッグしてから右にドラッグする。そうすると、左に自動的に広がらなくなる。
右も同じ。選択範囲が自動的に広がったら、その範囲の右までドラッグしてから左に戻す。
そうすると自動的に単語全体に広がる機能がキャンセルされる。
C#は
>>815 みたいな書き方はダメなんでしょ?
publicなフィールドじゃなくプロパティを仕えって事になってるはずだけど。
作法論的なことを言ってるのなら何だって駄目だろあんなやり方
825 :
822 :2010/08/06(金) 19:21:52
826 :
デフォルトの名無しさん :2010/08/06(金) 22:09:34
>>793 ループ内で定義できるなら、ループ内で定義。これ常識。
>>822 その常識、非常識。したくなったらあとからプロパティにすればいいよ。
{set;get;}ってまぬけだと思う。いつか改善されるだろう。
>>826 要改善なのは、あとからプロパティにすればいいだの{set;get;}を間抜けだのいう
君のセンスの方じゃないのか
>>826 >
>>822 > その常識、非常識。したくなったらあとからプロパティにすればいいよ。
> {set;get;}ってまぬけだと思う。いつか改善されるだろう。
C#でなくても、いまどきpublicのフィールドなんか定義してたらB級認定。
>>826 プロパティとフィールドはコードの表層レベルでは表記が同じだが
コンパイルされると別のものになる。後はわかるよな。
>>828 それも言いすぎ。
どこの世界でも知恵がない奴は極端に走るよな
>>830 publicのフィールドが許されるシナリオを挙げてみ。
>>831 そんなのいくらでもある。
例えば値の検証も〜Changedイベントも必要ないような単純な座標を
フィールドにするのはむしろ自然。
こりゃあ週末は暇しないで済みそうだ
お前らはランクなしの初心者だろ とやかく言うない
電卓くらいしか作ったことないんだろ?正直に言ってごらん
>>836 ジャンケンゲームくらい朝飯前だ!なめんなよこのやろう
失礼な オセロくらいはあるよ
オセロと表記する時点でネタかお遊びかだな
中学生レベルだな でも国内じゃこれが大学生レベルというから信じられない どうしてこうも学生はレベルが低いのか
昭和生まれなめんなよこのやろう
昭和生まれでも中2からゆとり教育受けたやつもいるだろ
インスタンスの破棄には、~とDispose()とnull代入とdefault()どれが一番いいですか?
自称玄人が何故駄目なのかも説明せずにいきがってるののは何レベル?
Z
>>843 MSDNのDisposeの実装のところ読んでみたら?
デストラクタの使い方も書いてある。
Disposeはオブジェクト(の内部リソース)を明示的に破棄する。
オブジェクト自体は参照が残っている場合は破棄されないので、スコープが広い場合はnull代入。
null代入はオブジェクトの破棄というよりは参照の破棄。
参照を失ったオブジェクトは後でガベージコレクタに回収される。
default()は既定値(null、0など)を表すだけ。
847 :
846 :2010/08/07(土) 00:00:14
内部でDisposeが必要なオブジェクト(ファイルとかGDI系とかWebBrowserとか)を持っていたり、 アンマネージリソースを使用している場合はDisposeを実装してそれを使う。 そうでない場合はメモリ使用量を気にしない限りDisposeしなくていい。参照されなくなった後に自動で解放される。
>>831 const field
static readonly field
field of non-public class
>>848 const は別枠っぽいよ。
あんまりフィールドとは言わず、普通にコンスタント。
>>848 君が義務教育中なのか大学生なのか社会人なのかしらんけど
「publicのフィールド」というニュアンスが
「const field/static readonly field/field of non-public class」と同じ、という思考回路はものすごく危険
学生なら許されるのかもしれんが
会社でそんな答えをしてたら間違いなく怒られるよ
このコピペ使いやすい
コピペ脳の君は、恐らくまず間違いなく「使えない奴」だけどねw 真 面目な話、ボケ老人の繰言じゃあるまいし、コピペで嬉しくなっちゃう 感覚が理解できない。
コ 真 面 感
向こうのC#スレも同じ流れだな
C#覚えると精神が歪むんですよ
それは大いに感じる
同じ奴が荒らしてんだろ
>>848 field of non-public class
これは無いわ
field of non-public class? フィールド の でない-パブリック クラス・・・パブリックではないクラスのフィールド!! オレ英語ワカル!オレ頭イイ!!
そう?それなりに使わない?
自動実装プロパティがなかった頃はめんどくさがって
外に公開しないとこでpublicフィールド使ってるのもあったけど今時はほとんど見なくなった。
>>848 の周りでは残ってるのかも知れんけど、オープンソースの見れば分かるように今では少数派(多数派だった時期があるのかは知らない)
クラスがでかくなりすぎた時ファイルを分けて書くことはできませんか?
たまにはpartialキーワードのことを思い出してくださいいいいいいいいいいいいいいいいいいいいい
つーか、Form全部ぶっこんでるとこに突っ込めよwww
なるほど!Designerの仕組みがやっとわかったありがとう
用語の解釈にずれがあると思う。
>>828 は狭義のfieldで厳密には"インスタンス フィールド"
>>848 は広義のfieldで上に加えて"静的フィールド"と"readonly フィールド"を含んでる。
ただ、public static readonly fieldはC#言語仕様の中でconstが使えない時の代替として次のように書かれている。
>定数値のシンボル名が必要で、その値の型を const 宣言で使用できない場合、またはその値をコンパイル時に計算できない場合は、static readonly フィールドが役に立ちます。
フィールドには間違いないんだけど、constと並べて"定数"として扱うのが普通じゃないか?
>>863 それはフィールドで実装したプロパティなわけで…別の概念で"依存関係プロパティ"としか言えないんじゃないか。
どっちにせよ依存関係プロパティ使うときはCLRプロパティもセットで実装しとかないといけない。
このスレには2種類の人種がいる 職業プログラマで妙にスタイルに拘る人種と 配布もしないサンデープログラマでスタイルなんかどうでもいい人種だ
別に依存プロパティはフィールドで実装されてるわけじゃないぞ DependencyPropertyのpublicフィールドは取得や設定を行いたい対象のプロパティを 指定するためのキーにすぎなくて、プロパティの値自体はやっぱりインスタンスが持ってる
publicフィールドがダメな理由を誰か教えてくれ プロパティへの切り替えが簡単なら、最初はpublicでいいんでないの?
お前の好きにやっていいから 他人に確認するな
この手の理由確認してくる奴って 自分の中では答えを出してるのに自分への同意が欲しくて聞いてるからな。 構ってちゃんはわんくま同盟で死ねよ。
DoNotDeclareVisibleInstanceFields でググれ
>>869 雑な分類だな。
君の言う「スタイルのこだわる」人種にも、少なくとも大きく分けて
(1) 形式主義者。そいつが権威だと思い込んでいる対称の「言いつけ」を教条主義的に固守する。
「教義」の正当性を問う姿勢は低い。
(2) 合理主義者。スタイルは「可読性の維持」という目的に対して合理的である限り重視する。
の二つの種族がいて、2chなどで起こりがちなのは、一見スタイルにこだわるタイプの中でも
前者の方とそれ以外の種族の争いだろう。
最初から争うことだけが目的で スタイルなんてどうでもいいというのが大半
>>875 場合によっては単純に置き換えできない場合があるので最初からプロパティで作るほうがいいよ。
そういうときのためにフィールド宣言なしの手抜きプロパティが宣言できるんだよ。
>>868 public static readonly field
は値が初期化される前に取得できるタイミングがあるのでメンテし続けて複雑になったソースで混じってるとちょっと危ない。
それくらいならpublic staticでgetのみのプロパティで固定値を返すようにして使う。
あと、Obsoleteした後フィールドは削除するわけにはいかなくて困る。
プロパティはObsoleteでも互換性のある挙動に実装を置き換えできたりといろいろ融通が利く。
何でこんな初歩的な事で争ってるのか分からん。 外部から参照できるインスタンス フィールドを作るべきではないって入門レベルの話だろって、ここふらっとだったわ。
またロジックなき教条主義者が一人来たよw 入門レベルの話をしてるのはお前だろってw
入門レベルなら乱数の話がお勧め
>>884 お前は何を言っているんだ。
外部から参照できるインスタンス フィールドを使うべきではない理由なんて上にいくつも挙げられてるだろ。
まさか何度も同じ事書けなんて馬鹿なことは言わないだろうな。
>>886 君、そもそも何が話題になってるのかちゃんとフォローしてるか?
>>828 の少し前辺りから始まってる話なんだが、
誰か一人でも君と反対意見、つまり「privateでないフィールドを使うべきでない理由などない」
と言ってる奴がいるのか?
いねえよそんな奴は。
privateでないフィールドは無条件で禁止すべきとまでは言えない、と言ってるんだけど。
フィールドはあとで容易にプロパティに変更できるというのはありがちな勘違いだよ バイナリレベルでの互換性が無いのは当たり前だけど、 利用側のソースコードを変更しないといけない場合が多い 特にリフレクションやバインディングでは確実に引っかかるが、そうでなくても互換性は無い
少し付言しとくと、禁止すべき理由がある、ということは、 禁止すべき理由に当てはまらない場合は禁止する理由はない、ということでもあるんだが、 こういう義務教育レベルのロジックがわからない奴が多いよな自称上級者様は
なんかいちゃもんつけるために、意図的に拡大解釈してないかこの人。
>>891 具体的に、ってそういうのは「そんなのいくらでもある」って嘯いてる側
(君自身じゃないのか?w)に聞いてよ。
俺に聞く理由がわからん。
>>893 禁止すべき理由は「そんなのいくらでもある」。上のレス読み直して来い。
「禁止すべき理由に当てはまらない場合」が具体的に何なのか。
そして、あえてpublic fieldを選択するに足る合理的理由を説明してくれ(どうせ言えないんでしょ?w)
質問する側がちゃんと質問できてればそうはならんと思う ちょっと煽るくらいで情報引き出さないと想定できる問題点が多すぎて回答できないとかどうなのよ? 質問者は 素人判断で問題点を想像してそれを根拠に質問するな 大本の判断材料からすでに間違ってることが多すぎる 素直に最終的にやりたい事と現状どうなってるかを明確書け
>>815 みたいな場合だろ
そもそも
>>815 のようなそもそもカプセル化なんか無視した方法が問題にならないような簡単なプログラムであれば
プロパティかフィールドかなんてそれこそどうでもいい些細な問題
>>895 何で突然話が飛んだのか分からんけど
それが出来る人なら、質問する前の下調べの段階で自己解決するだろ。
おまえら自重しろ 質問しづらい空気になってるだろ
>>895 それが書ける奴なら質問しねーよバーカ
中途半端にプライド高くなってるのが自称上級者なのでこの流れは当分変わらない どちらか精神年齢の高い方が折れてくれないものかねー 学校で子供を諭してるようだ
>>894 あえて禁止する理由が存在しない場合についてはずっと前に回答済み。(
>>832 )
無礼な口を聞く前にやるべきことをやれよ。
それでも、フィールドを使うべき積極的理由についてはない場合が多いとは
俺も思うが、あえて言えば、値にアクセスすることがそれ以外の何の副作用も
起こさないことを明示する機能はあるかもしれない。
>>900 煽りに参加してるお前さんも同レベル。自覚がないのが怖い。
釣られる俺も似たようなもんだが
あっちは乱数 こっちはフィールドか
>>902 悪いけど自覚して煽ってるに決まってんだろw
>>901 >回答済み。(
>>832 )
あのレスお前だったのかwwwあまりに馬鹿げてたから触らずスルーしてたわ。
>例えば値の検証も〜Changedイベントも必要ないような単純な座標を
>フィールドにするのはむしろ自然。
.NETの慣例からすると著しく不自然。
例えばSystem.Drawing.Pointの座標(X,Y)だってプロパティだ。
一緒になって釣られたと思ったら相手は餌だったと。
ほんとは釣りでしたー! って敗北宣言したようなもんだな。 釣るつもりなら最後まで通せよ
哀れな奴だな
言い返せなくなると荒らすのはいつものパターン
質問者は、とりあえず 挙げた内容でわかる範囲の答えが欲しいだけ。 それで望む答えが得られなけば、掘り下げて 質問を続ける。または打ち切る。 いたって普通の2chの使い方じゃねーの。
最後まで通せよ(キリッ って別に煽りいれただけなのに お前が食いついただけじゃねえか 自分で噛み付いといて何その言い草
マジレスしちゃって恥ずかしいだけ。
レス流そうと必死だなw
>>905 「慣例」が「慣例」であるという理由だけで固執する人間のことを教条主義者という。
何度も言うが、
>>828 に対して「一概に禁止すべきとまではいえない」と
言ってるわけだが、そこのところ理解してるのか。
理解した上で食って掛かってきているのなら一概に禁止すべき理由について
語って欲しいものだな。
もちろんアホだろ
これ以上続けるなよ 本当に殺すから
>>905 おい人をお前呼ばわりして逃げるなよ。
ちゃんと落とし前付けろよ
>>916 君は言い返せなくなるとすぐ人格批判に走るな。
「一概に禁止すべきとまではいえない」理由として
>例えば値の検証も〜Changedイベントも必要ないような単純な座標を
>フィールドにするのはむしろ自然。
なんて言っちゃうような馬鹿が何言ってんだw
921 :
デフォルトの名無しさん :2010/08/07(土) 15:43:52
age
まず日本語からまともに頼むよ君ィ
>>922 >「禁止すべき理由に当てはまらない場合」が具体的に何なのか。
>そして、あえてpublic fieldを選択するに足る合理的理由を説明してくれ(どうせ言えないんでしょ?w)
ほら、やっぱり言えなかった。
で、「一概に禁止すべきとまではいえない」理由は?
>>832 がそうなの?wwww
>>924 UFOなんかいないことを証明はできない。
「これがUFOです」という主張を個別に検証することはできる。
言ってる意味わかるか?
>>925 UFOwwwwwww
キャトルミューティレーションされてしまえばいいのにwwwwwww
>>924 というか、あえてパブリックなフィールドを使うべき理由があるんだ、
なんていってる奴ないないと何度も言ってるはずだが。
義務教育レベルの知能がない奴はこれだから議論にならない。
>>925 個別に検証も何も、
「一概に禁止すべきとまではいえない」理由として一番最初に
>>832 なんて言い出す奴が検証なんてできんの?無理だろw
マイクロソフトの方針がプロパティ使えなのに何でずっと言い争うしてるんだよ
>>927 >あえてパブリックなフィールドを使うべき理由があるんだ、なんていってる奴ないない
というか、あえてパブリックなフィールドを使うべき理由なんてないんだから、プロパティ使っとけと何度も言ってるはずだが。
>>publicのフィールドが許されるシナリオを挙げてみ。
>そんなのいくらでもある。
>例えば値の検証も〜Changedイベントも必要ないような単純な座標を
>フィールドにするのはむしろ自然。
これのどこがpublicのフィールドが許されるシナリオなんだw
『そんなのいくらでもある。』と言う割りに他のが出てこないけど
>>927 義務教育レベルの知能がない奴はこれだから議論にならない。
相手は争うのが目的なのに説教足れて良い気になってるからだよ〜〜〜〜〜〜〜〜〜〜〜
パブリックなメンバー変数を作ってる奴はキチガイだろ
パブリックフィールドなんて無理筋で居座るからこんな事になる。 適当に煽ったとこで引くか、題材選んだほうがいい(乱数とかw)
乱数は奥が深いからこいつ等は話についてこれないよ
>>935 一応突っ込んでおくけど、君のように「自分の主観が世界を決める」という感受性のことを
「セカイ系」と呼ぶらしい。
自分が主観的に煽ってると思えば客観的にもそうなんだ、って思考はかなりヤバい。
それ以前に、そもそも何について議論しているのか正確に把握できない(と思われるが)
その読解力もかなりヤバい。
対するお前はキチガイ、か。
夏だな。
で、publicなフィールド使ってる人っているの?
ちょっとしたツールを
>>815 みたいなノリで適当に作るときは使う
>>929 そりゃそうだろ。C#の言語仕様が追いついてないんだから。
オレに{set;get;}なんて書かせるな。
100歩譲って許せるのは、プロトタイプと機械が生成するコード。
>>943 それがなぁ、.NET のライブラリ見てると struct もほとんどプロパティになってるんだわ。
あと、set/get はJIT 時にインライン展開されるからパフォーマンスへの影響はそんなにない。
XNAでは構造体はpublicフィールドだらけだぞ パフォーマンス的には、配列の要素にアクセスするときにいちいちコピーが発生するのが問題。 a[0].A.B.C = 10;/*A, B, Cは構造体を返す*/ のようなことをプロパティを通してやろうとすると 無駄なコピーがたくさん発生する。アクセサ呼び出しはJITで消えるかもしれないけどコピー自体は消えない。
public フィールドとか初心者かよ
コピペ君ってボケ老人に似てるな、まで読んだ。
なんでいきなりXNAの話になっているんだろうねえ。 詭弁に頼り始めたらおしまいだねえ。
>>948 教科書通り。頭が固いよ。
publicフィールドのメリットすら考えたことないだろ?
速度
構造体の場合でも階層構造が作れる
教科書通りならいいじゃねえかwww 教科書に載ってないことすんなよwww
じゃあ君が作ったものをFxCopとStyleCopに通してみて結果うp
C級だと思ってたのに やったー
publicフィールドが原因で離婚。
privateなクラスとか構造体ならやることあるけどな。 別にフィールドにメリットがあるからじゃなくて、 特にプロパティにする必要がないからってだけだが。
自動プロパティが使える場合はもうそれでいいんだけど、 .NET 2.0とかで書いてる場合とかにね。
プロパティにする必要が無いことが無いということが分からないやつはオブジェクト指向が理解できていない証拠
標準ライブラリ内でだって普通に使ってる。 もちろん必要がないからだが。
>>960 逆に、Publicフィールドにする必要がないならプロパティ使ってみたら?
自動プロパティ使えない環境じゃめんどくさいもん。 メリットないんだから使おうと思わない(と言いつつ、使うこともまああるけど)。 例えばさ、単なるデータを保持するだけの構造体とかでさ、 全部プロパティにしたら、中読まないとただデータを保持してるだけって確認できないじゃん。 自動プロパティならいいんだけどね。 ただのフィールドなら何もしてないことがパッと見ただけで明らかじゃん。
VSだとCtrl+R→Ctrl+Eででるから自動プロパティなんかあんまり使ったことないわ。 俺はわりと<summry>も書くから中身がどうのとかで悩まないな
>>965 オブジェクト指向を理解していない発言だね
オブジェクト指向至上主義かよ
ある
だからなんで自分の思う通りにやらないの? なんで他人に合わせたいの? なんで自分に合わせて欲しいの? お前そんなに価値ある人間なの?
C#は実利のためならオブジェクト指向を逸脱しても構わないって思想だろ
確かに「好きにしろよ」で解決する話なのになんでこんな続くのか。
>>961 いやいや、C#3.0で.NET 2.0対象のアプリを作るだけじゃん
C#はオブジェクト指向のための言語だということを忘れてはいけない。
いやー、最近どう見てもマルチパラダイム言語だけども。 でも、じゃあ、関数型言語ならフィールド使うのかって言われると、違うけど。
オブジェクト指向…ねぇ こだわってるようには見えない
オブジェクト指向という意味では、C#よりもVB6の方が進んでいる。
それはない
ないねw
純粋なオブジェクト指向やりたいんだったらJava行けば?
Javaも純粋じゃないな
純粋なオブジェクト指向なんてものに特別に価値があるとも思えない。 だいたい、java出てきたときなんて、全てをクラス内で定義するようになっているから 純粋なオブジェクト指向言語だなんて言ってたんだぜ。 それにいったいどんな意味があるのかと。
そのくせプリミティブ型なんて、オブジェクトじゃない型が平気で残ってたり。
JavaにせよC#にせよC++にせよみんなあえてエセオブジェクト指向になっている。 VB6は、そうではない。
VB6ってクラス作れたっけ
エセと言うならVB6もオブジェクト指向でしょ。 コーディングが面倒なだけで。
VB6って継承できたっけ
JavaScriptェ…
合法詐欺がまかり通っている世界経済を見てごらん 金さえ儲けられたらスタイルなんてどうでもいいのさ
VB6ってポリモーフィズムできたっけ
インターフェイスも使えるけどダックタイピングだからインターフェイス無くてもポリモーフィズムはできる
おまえら、ほんとスレ違いの話題が好きだな
埋め
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。