C#, C♯, C#相談室 P ..
446:デフォルトの名無しさん
09/05/08 06:10:15
>>445
日本の季節感にはまったくあってないけどな
昔は一番寒い時期が1月1日で新年を迎えると暖かくなる一方だった
戦争に負けたアジアは所詮白人のおまけということだな
447:デフォルトの名無しさん
09/05/08 07:14:01
>>446
おじいちゃん乙
448:デフォルトの名無しさん
09/05/08 07:21:58
>>446
中国行って旧正月でも祝ってればいいんじゃない
449:デフォルトの名無しさん
09/05/08 07:22:24
そのせいで地方によってはいくつかの行事は月遅れでやることが多いけどな。
ひな祭り、七夕、盂蘭盆会などなど。
450:デフォルトの名無しさん
09/05/08 10:56:45
なんか思いっきりスレチ方向へ進んでないか?ww
451:デフォルトの名無しさん
09/05/08 12:22:22
じゃあディルドーの話に戻そう
452:デフォルトの名無しさん
09/05/08 23:07:53
三叉路まで戻って別の違う道に進んだみたいな。
453:デフォルトの名無しさん
09/05/08 23:17:29
ディルドゥーなら喜んで食いついたのに
454:デフォルトの名無しさん
09/05/09 13:32:15
vbでいうところの
for i=0 to 4
label(i)="abc"
next
みたいな
ループの添字で複数の連番的なオブジェクトを指定するにはどうしたらいいのでしょうか
オブジェクトに番号振るっていう状態をどういうのかがわからなくて調べられないです
1日いろいろ探してみましたが思いつく宛が詰まってしまったのでヒントが欲しいです
455:デフォルトの名無しさん
09/05/09 13:35:24
配列に入れておいて、あとは同じように。
456:デフォルトの名無しさん
09/05/09 15:23:13
ありがとうございます
457:デフォルトの名無しさん
09/05/09 21:20:30
質問です
フォームのテキストラベルにH2Oと入れたいんだけど2を下付きにするにはどうすればいいのですか?
Hのラベル、2のラベル、Oのラベルを3個並べてお茶を濁してきたけど、詳しい方どうか教えてください。
458:デフォルトの名無しさん
09/05/09 21:23:57
そうやるしかない
459:デフォルトの名無しさん
09/05/09 21:30:23
自前で描画するしかないな Paintイベント使って
460:デフォルトの名無しさん
09/05/09 21:30:36
>>457
U+2082 ₂ SUBSCRIPT TWO
461:デフォルトの名無しさん
09/05/09 22:04:02
>>457
文字を書いてつくったイメージを貼り付ければいいじゃん
462:デフォルトの名無しさん
09/05/09 23:36:39
H₂0
な なるほど!thx
463:デフォルトの名無しさん
09/05/09 23:44:44
リッチテキスト
464:デフォルトの名無しさん
09/05/09 23:48:55
₀₁₂₃₄₅₆₇₈₉
465:デフォルトの名無しさん
09/05/12 11:40:49
ComboBoxの項目の表示色を項目内容によって変えるとき
DrawItem()でDrawString()すれば良いんだけど。
ComboBoxの数が多いのでユーザコントロールにするとしたら
どこでDrawString()すればいいんだろう?
OnDrawItem()で直接書いちゃっていいのかな?
466:デフォルトの名無しさん
09/05/13 23:19:39
その前にやってみれば?
467:デフォルトの名無しさん
09/05/14 01:11:13
>>465
OnDrawItemでいいよ。
468:デフォルトの名無しさん
09/05/14 09:36:16
ありがとう。
OnDrawItem()でうまくいきました。
ついでに背景色とかも変更してみます。
469:デフォルトの名無しさん
09/05/14 16:20:55
指定したディレクトリ以下のすべてのファイルを効率的に列挙していく場合どのクラス、メソッド使うのがいいですか?
GetFilesみたいにリストを作って返すのではなくWin32APIのFindFirstFile/NextFile相当のものが使いたいんですが。
470:デフォルトの名無しさん
09/05/14 17:01:05
Linq
471:デフォルトの名無しさん
09/05/14 17:08:21
FindFirstFile/NextFile
472:デフォルトの名無しさん
09/05/14 17:18:48
.NETは非コンテナに対するイテレータが弱すぎる
473:デフォルトの名無しさん
09/05/14 17:29:26
yieldがありゃ十分だろ
474:デフォルトの名無しさん
09/05/14 17:30:22
>>469
.NET Framework 4.0 のGetFiles
475:デフォルトの名無しさん
09/05/15 02:24:16
実行時の object 階層を値込みで表示用の tree にまとめ上げたいんだけど、
その手のライブラリなど、ご存知の方いますでしょうか? Reflection で自前
で再帰するしかない?
476:デフォルトの名無しさん
09/05/15 02:42:10
CodeProjectとか探せばありそうな予感。
まぁ実装してもたいした手間じゃな下げだけど。
477:デフォルトの名無しさん
09/05/16 13:13:47
>>475
>実行時の object 階層を値込みで表示用の tree にまとめ上げたいんだけど、
object階層の意味がよく分からないけど、
Visual Studioのウォッチウィンドウみたいな感じで
インスタンスの情報を展開してくれるのが欲しいってこと?
だったらオブジェクト参照が循環している場合もあるので注意かな。
シリアライザ/デシリアライザみたいにグラフとして扱うか、
ウォッチウィンドウみたいにクリックするまで子ノードの評価を行わないといった
工夫が必要になると思う。
478:475
09/05/16 16:25:07
>>476
いや、それが結構面倒くさい。CodeProject はなさそうでした。
>>477
なるほど、シリアライズして XML を使うのもありですね。
どうもありがとう。
479:デフォルトの名無しさん
09/05/16 16:58:37
ソースいじくれるのならExpandObjectConverterでPropertyGridとかがお手軽じゃね
480:90
09/05/16 20:36:16
すいません、教えてください。
ユーザコントロールを作成していますが、
既存の型を使用した場合は問題ないのですが、enum型を定義して
使用すると、このコントロールを使用するプログラムで
デザイン時に初期値を選んだ場合は問題ないのですが他の候補(この場合type2)を
セットすると
「'System.Windows.Forms.Control.ControlCollection' に 'xxxComboBox' の
定義が含まれておらず、型 'System.Windows.Forms.Control.ControlCollection' の
最初の引数を受け付ける拡張メソッドが見つかりませんでした。
using ディレクティブまたはアセンブリ参照が不足しています。」のエラーになります。
481:デフォルトの名無しさん
09/05/16 20:39:20
名前を間違えました。90のかた申し訳ありません。
ソースはこんな感じです。
namespace Controls
{
public partial class xxxComboBox : ComboBox
{
public enum DrawingMode : int
{
type1 = 0,
type2 = 1
}
private DrawingMode _ItemDrawingMode;
[Category("Custom")]
[DefaultValue(typeof(DrawingMode), "type1")]
[Browsable(true)]
public DrawingMode ItemDrawingMode
{
get { return _ItemDrawingMode; }
set { _ItemDrawingMode = value; }
}
482:デフォルトの名無しさん
09/05/16 20:40:31
private Color _FirstBGColor;
[Category("Custom")]
[DefaultValue(typeof(Color), "White")]
[Browsable(true)]
public Color FirstBGColor
{
get { return _FirstBGColor; }
set { _FirstBGColor = value; }
}
public xxxComboBox()
{
InitializeComponent();
_ItemDrawingMode = DrawingMode.type1;
_FirstBGColor = Color.White;
}
...
}
使用する側では参照設定にこのdllを指定しています。
FirstBGColorプロパティは他の色に変更しても正しくビルド・実行できます。
DraingModeのプロパティをtype2に変更してビルドすると上記の
エラーがでます。
エラー箇所を見ると
this.xxxComboBox1.ItemDrawingMode = Controls.xxxComboBox.DrawingMode.type2;
の行が解決できないようです。
using Controls;を加えても同じです。
ControlCollectionに追加するにはどのメソッドを使用すればいいのでしょうか?
483:デフォルトの名無しさん
09/05/16 22:32:52
使う側を
this.xxxComboBox1.ItemDrawingMode = 1;
にしたらエラーでないよね?
484:デフォルトの名無しさん
09/05/16 22:41:13
何もおかしなことはない。エラーメッセージの通り
this.Controls は Control.ControlCollection クラスのインスタンスだろ
485:480
09/05/17 08:30:40
>>483, 484
ありがとうございます。
this.xxxComboBox1.ItemDrawingMode = 1; は型が違うのでエラーになります。
呼び出し側でusing Controls;を定義して、コードで(例えばForm1_Load内で)
xxxComboBox1.ItemDrawingMode = xxxComboBox.DrawingMode.Type2;
のように書けば、正常にビルド・実行可能です。
ただし、先程書いたようにデザイナからプロパティ値を変更すると
エラーになります。ControlCollectionにxxxComboBoxを追加して
導出してやらないといけないのかと思いますが、やり方が分かりません。
486:デフォルトの名無しさん
09/05/17 09:23:29
名前空間にglobal::Controlsなんてのはやめようよ
せめてライブラリ名.Controlsに
487:480
09/05/17 11:08:57
お騒がせしました。解決しました。
そうだよな、namespaceの名前を変えよう・・・
ということでControlsからmalib.Controlsにnamespaceを変更したら
ちゃんと動作しました。
488:デフォルトの名無しさん
09/05/20 21:40:44
この言語笑うしかないわw いい意味で。
今C#の勉強の意味もこめてC#のいろんな機能をフルに利用するつもりで
ちょっとしたプログラムを作っているんだが
本当にC++、Javaから発展してきた言語とは思えん。
まず、DataGrid使って表を作る。
row.SetValues(1,2,3)とやることで、一行のデータを一気に入れられる。
そこで一行全部の背景色をつけたいと思った。
SetValuesと同じように、row.SetStyle(style)とやりたかったが、
残念ながらSetStyleはセルごとしかなかった。
DataGrid(正確にはDataGridViewRow)になんでSetStyleが無いんだよ!って
怒るような事例なのに、拡張メソッドを使うことで継承を利用せずに
いとも簡単にrow.SetStyle()を付け加えることができるとはw
489:デフォルトの名無しさん
09/05/20 23:09:50
>>488
それでC#にケンカ売ってるつもり?
まさかそんなわけないよねwww
490:デフォルトの名無しさん
09/05/20 23:13:11
C#はあれだよあれ
メロンパン言語だ
491:デフォルトの名無しさん
09/05/20 23:25:01
どう見ても誉めてるじゃん
492:デフォルトの名無しさん
09/05/20 23:36:57
コンポーネントと言語をごっちゃにして、的外れだけどな。
493:デフォルトの名無しさん
09/05/21 00:24:35
うん
C# の話じゃなくてフレームワークの話だな
494:デフォルトの名無しさん
09/05/21 00:25:41
C#じゃなくてWinFormsの話だな。
C#はソースが読みやすいとか、一貫した仕様でスッキリしてて覚えやすいとか色々あるけど、
何よりVSっていう最強のIDEが付っきりで開発支援してくれるのが最大のアピールポイントだと思う。
VSが無ければ他の言語でいいけど、一回VS+C#で慣れると他の言語やる時にかなりメンドクサイ。
・・・あれ、ここって相談室だよな?
495:デフォルトの名無しさん
09/05/21 00:34:35
C#ならまずdelegateを褒めたいな。リスナめんどい。
496:デフォルトの名無しさん
09/05/21 00:42:09
Enumerable.DistinctにはなぜFunc<TSource, TSource, bool>を受け取るオーバーロードがないんだ
497:488
09/05/21 00:44:37
>>492
> コンポーネントと言語をごっちゃにして、的外れだけどな。
言っとくけど、言語の話だよ。
mix-inといえばわかるかな?
(標準ライブラリの)クラスに、メソッドを後付できる。
という言語仕様。
498:デフォルトの名無しさん
09/05/21 00:47:05
拡張メソッドは便利だな、で終わる話なのに、つらつら書かれても・・・
ってことを言ってるんだと思うよ。
499:デフォルトの名無しさん
09/05/21 00:48:35
俺「拡張メソッドは便利だな」
他の人「そうだな」
で終わってくれればいいのに、
コンポーネントとかWinFormsの話だなとか
間違ったこと言い出すからレスせざるを得なかったんだよw
500:デフォルトの名無しさん
09/05/21 00:49:48
>>497
あきらかに主題の文章量と副題の文章量の比がおかしいww
おまえは女かwwwwww
501:デフォルトの名無しさん
09/05/21 00:51:06
>>499
先に言っとく。基地外(500など)は無視したほうがいいよw
502:デフォルトの名無しさん
09/05/21 00:52:42
>>501
おけw
間違ったことを何も言っていないのに、
なんで変なやつがまとわりついてくんだか。
こちとら本格的にC#はじめて五日目だ。なめんじゃねーぞw
503:デフォルトの名無しさん
09/05/21 00:54:31
それでは次の型どうぞ〜
504:デフォルトの名無しさん
09/05/21 01:01:24
System.Collections在住 : ArrayList さん
最近みんなジェネリック、ジェネリックって言って僕を呼んでくれないんです。
昔はあんなにちやほやされてたのに・・・。
これから僕はどうしていけばいいんでしょうか。
505:デフォルトの名無しさん
09/05/21 01:02:54
つまらん
それでは次の型どうぞ〜
506:デフォルトの名無しさん
09/05/21 01:42:30
ブラウザの機能が安定しません。
public Form1()
{
InitializeComponent();
webBrowser1.Navigate("URLリンク(www.google.co.jp)");
}
たったこれだけの実装ですが、googleのページがすぐに表示されるときと
ずっとまっ白でまったく表示されない時があります。
環境は、XPProSP2、IE6です。
どなたか解決方法を知りませんか?
507:デフォルトの名無しさん
09/05/21 01:47:34
つける薬は無い
508:デフォルトの名無しさん
09/05/21 01:48:23
ロード後に Navigate しても状況は一緒?
509:デフォルトの名無しさん
09/05/21 01:54:11
ロード後にというのがよくわかりませんが、
ボタンをひとつつけて、その中でNavigateしても状況はかわりません。
非常に安定しないんです。
510:デフォルトの名無しさん
09/05/21 01:56:19
ウェブブラウザーコントロールは一度「about:blank」を表示してから
目的のページを表示するんが一般じゃなかったっけ?
511:デフォルトの名無しさん
09/05/21 02:04:35
>>510
書き忘れましたが、それも試して効果はありませんでした。
public Form1()
{
InitializeComponent();
webBrowser1.Navigate("about:blank");
webBrowser1.Navigate("URLリンク(www.google.co.jp)");
}
512:デフォルトの名無しさん
09/05/21 02:06:14
じゃあ、無理じゃね? 素直にリロードしてもらえよ。
513:デフォルトの名無しさん
09/05/21 02:13:33
わかりました。
自分でもかなり調べてダメだったので、諦めることにします。
ありがとうございました。
514:デフォルトの名無しさん
09/05/21 02:51:04
前にAxWebBrowser使ってた時に俺もそんなことあったな。Navigateするタイミングだと思うんだけど。
起動時にNavigateするようにした時に稀にあった。
とりあえず、起動時にいきなりNavigate使う時はコンストラクタじゃなくてLoadイベントなり登録してそこでやった方がいいと思う。
それでこの症状が直るわけではないと思うけど。
515:デフォルトの名無しさん
09/05/21 12:03:16
>>506
webBrowserだけじゃなくて
IE6のそのものが、ずっと真っ白のままで表示されないことがあるんだが・・・
AVGのリンクスキャナを停止してからは少しマシになったかも?
普段はChromeを使っているから見なかったことにしてるけど。
516:デフォルトの名無しさん
09/05/21 14:18:15
>>506とおんなじコードで試してみたけど、
何度やっても問題なく表示されるな。
環境はXPProSP2、IE6、VS2008Pro
517:デフォルトの名無しさん
09/05/21 14:49:26
webBrowser1.BusyがTrueのときそうなるんじゃないか?
518:デフォルトの名無しさん
09/05/21 15:58:51
>>515
ウィルス対策ソフトは切ってます。
>>516
ほんの2日ほど前まで私もその環境でしたが、なぜか動きません。
XPProSP3、IE8、VS2008Exにしましたが、改善はありません。
>>517
ちょっと見てきます。
519:デフォルトの名無しさん
09/05/21 16:02:12
取り敢えず514な
System.Windows.Forms.WebBrowserはコントロール上に乗って無くても大丈夫なように作られてるけど一応
520:デフォルトの名無しさん
09/05/21 16:23:25
>>517
■PG
public Form1()
{
InitializeComponent();
Console.WriteLine("IsBusy:" + webBrowser1.IsBusy);
webBrowser1.Navigate("about:blank");
webBrowser1.Navigate("URLリンク(www.yahoo.co.jp)");
Console.WriteLine("IsBusy:" + webBrowser1.IsBusy);
}
■出力
IsBusy:False
'Test.vshost.exe' (マネージ型): 'C:\WINDOWS\assembly\GAC\Microsoft.mshtml\7.0.3300.0__b03f5f7f11d50a3a\Microsoft.mshtml.dll' が読み込まれました
IsBusy:False
■結果
画面まっ白
>>514
LoadイベントでやってもThread.sleep(5000)をnavigateの前後に入れてもまっ白になることが多々ありました。
521:デフォルトの名無しさん
09/05/21 18:07:17
Shownを使え
522:デフォルトの名無しさん
09/05/21 22:09:23
IE でダメなら、WebBrowser でもダメだろよ。
523:デフォルトの名無しさん
09/05/21 22:32:09
ReadStateがcompleteになるまで待ったほうがいいんじゃないかな?
524:デフォルトの名無しさん
09/05/21 22:49:46
ContextMenuStripに追加したToolStripMenuItemの
DropDownItemsに追加したToolStripMenuItemのイメージ余白の消し方を教えてください。
1階層目はShowImageMarginをFlaseにすれば消せるのですが
2階層目以降のToolStripMenuItemは余白が出たままになってしまいます…。
525:デフォルトの名無しさん
09/05/22 01:41:24
>>313さんのMecabの返り血をAnisで受けると文字化けするんですけど、
文字化けしない方法をどなたか教えてください orz
526:デフォルトの名無しさん
09/05/22 01:44:57
キャー!
527:デフォルトの名無しさん
09/05/22 01:46:46
PtrToStringAuto だとどうなる?
528:デフォルトの名無しさん
09/05/22 02:00:25
>>527
こんななりました。。
?慣???麩????????????弊(ry
529:デフォルトの名無しさん
09/05/22 02:26:54
Shift_JIS(CP932)をUTF-8と誤認識してるんじゃね。
530:デフォルトの名無しさん
09/05/22 03:09:18
俺はこれでできた
[DllImport("libmecab.dll")]
extern static int mecab_new2(string arg);
[DllImport("libmecab.dll")]
extern static IntPtr mecab_sparse_tostr(int m, byte[] str);
[DllImport("libmecab.dll")]
extern static void mecab_destroy(int m);
int mecab = mecab_new2("");
this.textBox2.Text = Encoding.Default.GetString(Encoding.Convert(Encoding.UTF8, Encoding.Default, Encoding.Unicode.GetBytes(
Marshal.PtrToStringUni(mecab_sparse_tostr(mecab, Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(
this.textBox1.Text))))))).Replace("\n", "\r\n").Replace("\r\r\n", "\r\n");
mecab_destroy(mecab);
531:デフォルトの名無しさん
09/05/22 06:06:52
これはひどいコード・・・
532:デフォルトの名無しさん
09/05/22 06:24:15
なんのためのマーシャリングなのかって感じだな
533:デフォルトの名無しさん
09/05/22 14:52:19
printPreviewDialog1.Bounds = this.Bounds;
printPreviewDialog1.ShowDialog();
こう書いても何故かthisと重なって表示してくれない
大きさは反映されるのに位置が自動的に決定されてしまう
解決方法知ってる方いたら教えてください
534:デフォルトの名無しさん
09/05/22 15:08:59
ウィンドウの初期位置を指定するプロパティがあるからそれをManualだったかなんかにする
535:デフォルトの名無しさん
09/05/22 15:32:25
PrintPreviewDialogにStartPositionプロパティは無いみたいです
536:デフォルトの名無しさん
09/05/22 15:40:11
.NET Framework クラス ライブラリ
PrintPreviewDialog..::.StartPosition プロパティ
537:デフォルトの名無しさん
09/05/22 15:49:14
インテリセンスに出ないので無いと思ってましたが頑張って手打ちしたら出来ました
ありがとうございました
538:デフォルトの名無しさん
09/05/22 15:55:42
>頑張って手打ち
ワロタ
気持はわかる
539:デフォルトの名無しさん
09/05/23 18:31:31
>>424 クソワロタ
540:デフォルトの名無しさん
09/05/24 01:39:48
笑い事じゃねえよ!
541:デフォルトの名無しさん
09/05/24 11:01:56
いや、声出して笑っちゃったよw
ユニークな仕事だなw
542:デフォルトの名無しさん
09/05/24 12:58:03
たぶん日本で唯一だy。食いっぱぐれなくていいな。
543:デフォルトの名無しさん
09/05/24 14:30:22
\拍手を打つ仕事があるときいてやってきました/
544:デフォルトの名無しさん
09/05/24 16:14:58
ListBoxの、選択されたアイテムを囲っている破線を消したいのですが可能でしょうか?
なぜか一瞬だけ、選択していないアイテムに破線が出るので消したいと思っています
545:デフォルトの名無しさん
09/05/24 16:45:38
>>544
独自描画にすれば消せるんじゃないかな。
546:デフォルトの名無しさん
09/05/26 10:30:51
その破線はキーボードフォーカスの存在を見せるためにある。
勝手に消されると状況によってはユーザーが混乱すると思うが
それでもいいなら>>545の言うようにオーナードローしては。
547:デフォルトの名無しさん
09/05/29 20:30:10
label.Text = "Value: ";
このようなValueを表示するラベルを貼りました。
スペースの後に増減する数字を代入していくのですが、どうやるのがいいのですか?
"Value: "が無い場合は単純で、
labal.Text += i.ToString();
でよかったのですが、、
548:デフォルトの名無しさん
09/05/29 20:45:57
>>547
labal.Text += i.ToString(); = labal.Text = labal.Text + i.ToString();
549:デフォルトの名無しさん
09/05/29 20:49:05
>>547
string.Format
550:デフォルトの名無しさん
09/05/29 22:01:44
if(i==0)
label.Text = "Value: 0"
else if
....
551:デフォルトの名無しさん
09/05/30 17:38:53
コンストラクタ名のとこにクラス名書かなきゃならないという無様な仕様は
未来永劫そのままなの?
552:デフォルトの名無しさん
09/05/30 17:59:09
そりゃ、そんな根幹にかかわるところ変更はできないだろ。
嫌なら新しい言語作るしか。
553:デフォルトの名無しさん
09/05/30 18:11:25
不自然かもしれないけどC++やJavaで十分に受け入れられてるからな
はじめの頃のC#ではキーワードを少なくすることが重視されてたみたいだし
554:デフォルトの名無しさん
09/05/30 18:23:57
Javaの、ソースファイル名とpublicクラス名を同じにしとかないとエラーだよーん。
の舐めた仕様よりはマシになってるとは思う。
555:デフォルトの名無しさん
09/05/30 18:34:15
>>551
同感。同じことを2度書くのは無駄だよな
もう.ctorでいいのに
556:デフォルトの名無しさん
09/05/30 18:39:31
まあ、元々がC++プログラマーを逃がさないようにする目的があったから、
あの構文は変えようがないでしょ。
C# 開発者的に、C++ との互換性重視しすぎて失敗したなぁと思う部分もちらほらあるみたいなんで、
今よりさらにもうちょっと .NET が普及したら、その辺りなおした新言語を作るのもありかもしれないけど。
557:デフォルトの名無しさん
09/05/30 18:43:24
Font Font = new Font
558:デフォルトの名無しさん
09/05/30 18:44:46
>>557
var Font = new Font();
559:デフォルトの名無しさん
09/05/30 18:45:32
newはインテリセンスがなきゃ発狂する構文だが、あるから我慢できるレベル。
var使う事自体が冗長
560:デフォルトの名無しさん
09/05/30 18:50:41
>>559
いやー、var は要るよ。
宣言と代入は分けたい。
new なくすとすると、例えばどういう構文?
C++ のスタック割り当て時みたいに、クラス名() だけとか?
561:デフォルトの名無しさん
09/05/30 18:53:18
Python みたいに font = Font() とか書けたら嬉しさのあまり自決する
562:デフォルトの名無しさん
09/05/30 18:55:01
>>561
それはなぁ、型名と同じ名前のプロパティ定義できる C# だと文法的にあいまいになりそう。
563:デフォルトの名無しさん
09/05/30 18:57:39
後からの拡張とか考えると、new とか var とかの構文解析の起点になる部分は削らない方がいい。
font = Font() なんて認めたら、多分、後から機能足せなくて泣く。
564:デフォルトの名無しさん
09/05/30 19:13:55
結局コンストラクタの構文は無駄?必要?
565:デフォルトの名無しさん
09/05/30 19:16:03
>>561
それ出来るとIntelliSenseの暴発を招くから、今の型推論によるvarでの定義がバランス的にちょうどいい。
566:デフォルトの名無しさん
09/05/30 19:16:07
今のC#の方向性考えると必要。
C#の原型とどめないような改変が許されるんなら別にどっちでも。
567:デフォルトの名無しさん
09/05/30 19:19:12
キーワードconsを導入すれば万事解決
568:デフォルトの名無しさん
09/05/30 19:31:22
ぶっちゃけなれればどうでもいい
569:デフォルトの名無しさん
09/05/30 19:50:07
>>565
同感、C#は強く強くインテリセンスを意識した文法であって欲しい。
でないと、今のライブラリでさえ全体を憶えきれないのにこういうサポート外されたら気絶する。
570:デフォルトの名無しさん
09/05/30 21:19:51
何でPythonがはやってるんだ?
前に来た時はDが話題だったような…
571:デフォルトの名無しさん
09/05/30 22:39:22
個人的にはもう少し型を意識したJavaScriptのような言語がはやって欲しいな。
572:デフォルトの名無しさん
09/05/30 22:43:12
>>571
JavaScriptは十分はやってるだろ
573:デフォルトの名無しさん
09/05/30 22:47:18
PowerShellいいぞ。PowerGUIのコード補完との相性もかなり良好。
$a = [xml]"<data>foo</data>"
$a.
で候補にdataが出てくるんだぜ。
ソースコードじゃなくプロンプトで実行しながらじゃないと駄目だけど。
574:デフォルトの名無しさん
09/05/30 23:02:46
「C# .NETアプリケーション開発 徹底攻略 C# 3.0/.NET Framework 3.5対応」
という本で、FormのLoadイベントはコンストラクタ完了よりも先に実行される(ことがある?)
とか書かれてるんだけどほんとにあるの?
どうもこの本思い込みで書いてるような部分も見られてちと怪しんだが…
575:デフォルトの名無しさん
09/05/30 23:31:51
InitializeComponents で子コントロールにプロパティを設定する際に、子から
親フォームが呼ばれてLoadされることが危惧されている。
576:デフォルトの名無しさん
09/05/30 23:38:37
そのフレームワークいいのかな
設計が甘いのでは?
577:デフォルトの名無しさん
09/05/30 23:44:14
甘いねぇ。
578:デフォルトの名無しさん
09/05/30 23:47:51
>子から親フォームが呼ばれてLoadされる
ってどういう状態かわからん…
579:デフォルトの名無しさん
09/05/30 23:49:48
んーマルチスレッドと例外絡みのこと書いてあるとこもでたらめだしなー
580:デフォルトの名無しさん
09/05/30 23:51:20
ちゃんと引用したらいいと思うよ
581:デフォルトの名無しさん
09/05/31 00:11:54
>>574
うろ覚えだけど、
Win32だと、CreateWindow()内で、WM_CREATEを直接呼び出してたような気がする
(CreateWindow()の復帰値はWM_CREATEの復帰値に依存する)
なので、
- C#のFormのコンストラクタ内で内部的にCreateWindowの呼び出しを行う
- FormのLoadはWM_CREATEに相当する
の2つの条件が成り立てば
>FormのLoadイベントはコンストラクタ完了よりも先に実行される
は、成り立つかもしれない
582:デフォルトの名無しさん
09/05/31 00:19:12
子が初期化待たないで親を Visible = true したら起きた。
でも、普通しねえよなぁ、こんなことwww
583:デフォルトの名無しさん
09/05/31 00:19:31
>>581
そんなこと考えるまでもなくマネージドだけで成立するよ、意味があるかどうかは別として
public class Form1 : Form {
public FFFF() {
Ctrl ctrl = new Ctrl();
this.Controls.Add(ctrl);
ctrl.Do();
Debug.WriteLine("Ctor");
}
protected override void OnLoad(EventArgs e) {
Debug.WriteLine("OnLoad");
base.OnLoad(e);
}
}
public class Ctrl : Control {
public void Do() {
Form form = this.FindForm();
if (form != null) form.Show();
}
}
相互参照はやっかいだね
584:デフォルトの名無しさん
09/05/31 00:22:05
namespace WindowsApplication1 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
MessageBox.Show("end of init");
}
private void timer1_Tick(object sender, EventArgs e) {
Visible = true;
}
private void Form1_Load(object sender, EventArgs e) {
MessageBox.Show("Form.Load");
}
}
}
でタイマのintervalは1。
585:デフォルトの名無しさん
09/05/31 00:31:27
その前に
コンストラクタでこんなことしていいんか
586:デフォルトの名無しさん
09/05/31 00:38:47
そもそもそんなこする方がやばいんだから
しないように修正するべきだろう。
587:デフォルトの名無しさん
09/05/31 00:39:33
フォームをNewしたらいきなり表示されるとか、冗談ではないわ。
588:デフォルトの名無しさん
09/05/31 00:46:51
しないように済む方法を指導しないテキストがクズだな。
589:デフォルトの名無しさん
09/05/31 00:46:50
引用した方がいいんだが、何せ立ち読みで読んだだけなんで、すまんね。
しかし、デリゲートの非同期実行でEndInvokeせずに、なんと例外が無視されてしまうのだ!!
みたいなこといって、非同期実行するメソッド内で即座にコントロールにInvokeして、これで例外をとれる
っておまえそれ非同期実行の意味全然ないだろうがよとか、こんなの見るとなんか書いてあることが信用できない。
590:デフォルトの名無しさん
09/05/31 01:04:13
あー、エスパーすると、非同期実行すると例外取れないから同期しましょう、
と書いてあるのか?
591:デフォルトの名無しさん
09/05/31 01:11:44
そういうこと
592:デフォルトの名無しさん
09/05/31 01:17:58
その本でスレッド周りに何書いてあるのか、ちょっと気になってきたww
593:デフォルトの名無しさん
09/05/31 01:39:23
意外と好評な書評も。
URLリンク(mag.autumn.org)
594:デフォルトの名無しさん
09/05/31 02:11:24
んー今はどうかわからんけど、
Formは2回以上ShowDialogすると動作保証されない
だった気がするけどな。
ナレッジに出てなかったっけな…
595:デフォルトの名無しさん
09/05/31 07:20:32
C#で複数接続ができるサーバーを作成しているのですが、多くの接続を受け付けると、
「転送接続からデータを読み取れません: ブロック不可のソケット操作をすぐに完了できませんでした。」
というエラーが出て、例外が発生してしまいます。
誰かこのエラーの解決方法をご存じないでしょうか?
よろしくお願いします。
596:デフォルトの名無しさん
09/05/31 07:30:32
XPのコネクション制限に引っ掛かってるとか。
597:デフォルトの名無しさん
09/05/31 07:48:28
>>596
XPのコネクション制限には引っかからない程度でも発生するんですよね…
# 10本くらいConnectが発生すると5本目くらいからエラーが発生→例外→…という感じで
598:デフォルトの名無しさん
09/05/31 09:22:23
サーバOSやTCP/IP Pacherとかで制限ない状態で試してみれば?
599:デフォルトの名無しさん
09/05/31 09:51:46
その前にプログラムを
600:デフォルトの名無しさん
09/05/31 13:22:18
自分以外のコネクションが5〜6個あるんでしょ?
601:デフォルトの名無しさん
09/05/31 14:13:55
VistaSP2と2008サーバでは撤廃されたっていうからXPでもパッチこないかな・・・
いやがらせとして残されたりして。
602:デフォルトの名無しさん
09/05/31 14:15:20
>>593
これWM_CREATE代わりなんだ、確かにShowDialogするごとに呼び出されるね、名前が悪いよな。
603:デフォルトの名無しさん
09/06/01 12:05:26
C#というか.netで使える
rubyでいうところの,Narray
pythonでいうところのNumPy
のような配列の形で演算してくれるクラスライブラリはありますか?
604:デフォルトの名無しさん
09/06/01 12:21:34
>>603
コンセプトがまるで違うけれども、あえて言えばLINQがそのような処理を担当するライブラリと言えるかと思われます。
だけれども、そういう操作そのものを求めるとちょっと、というかまったく違うものかも
やりかたとしては二つのシーケンスを一つのシーケンスにまとめる、そこに select なりで全体に演算を施す、といった具合。
605:デフォルトの名無しさん
09/06/01 12:46:05
数値演算ライブラリが欲しいと言ってるのに、linq挙げるってのはないだろw
でも、.NET向けってのは商業ものしか知らんわ。
BLAS系の.NETバインディングは探せばありそうだけど。
606:デフォルトの名無しさん
09/06/01 12:53:14
>>603
詳細はまだ調べてないけど、.NET で線形代数を助けてくれるライブラリなら
Math.NET があるみたい。
URLリンク(mathnet.opensourcedotnet.info)
607:デフォルトの名無しさん
09/06/01 13:01:57
>>605
そうですか?むしろ汎用度の高いライブラリだと思うんですけどね。
自分は今は線形代数周りは全部LINQで構築してしまいましたけど
608:デフォルトの名無しさん
09/06/01 13:04:41
そもそもLINQってのはテクノロジー()笑の名前であって、ライブラリの名前ではないと思うんだが。
609:デフォルトの名無しさん
09/06/01 13:04:55
LINQのコンセプト、モナドと抽象線形空間の相性がいいというか……
実数上の線形空間はもちろん、複素数でも有限体でもいけるし、いっそ関数を基底とかも。
まぁなんかそんな感じてす
610:デフォルトの名無しさん
09/06/01 13:15:52
LINQは集合演算
mapもあるしリスト演算(コンベア的な)もつかえるし
そういういみじゃん
611:デフォルトの名無しさん
09/06/01 13:26:56
LINQtoObjectによる各種演算処理からLINQtoSQL or LINQtoXMLと次々と同一コンセプトでつながっていくのも気持ちいいしね。
612:デフォルトの名無しさん
09/06/01 18:04:30
列挙型を含んだクラスをシリアライズしようとすると
例外が発生してしまいます。
↓こんな列挙型です。
public enum ActionType
{
[XmlEnum(Name = "Single")]
One,
[XmlEnum(Name = "Double")]
Two,
[XmlEnum(Name = "Triple")]
Three
}
なにか方法などありますでしょうか?
613:デフォルトの名無しさん
09/06/01 18:10:14
例外の詳細ぐらい書けよ
614:デフォルトの名無しさん
09/06/01 18:15:12
IXmlSerializableを実装しろ
615:デフォルトの名無しさん
09/06/01 22:20:33
アンマネージコードからコールバックされるマネージコードで例外をアンマネージ側に
漏らしたくない場合は以下のMyCallBackのような処理であってる?
public delegate bool CallBack();
[DllImport("hoge.dll")]
private static extern int Hoge(CallBack callback);
static void MyCallBack()
{
// このメソッド内で発生した例外を hoge.dll に漏らしたくない
RuntimeHelpers.PrepareConstrainedRegions();
try {
// hoge
} catch (Exception e)
Console.WriteLine(e);
}
}
static void Main()
{
Hoge(new CallBack(MyCallBack));
}
616:デフォルトの名無しさん
09/06/01 22:25:23
それはいいけど渡し方がダメ
アンマネージコードに渡したデリゲートはstaticフィールドに入れとかないとGCされて死亡
617:デフォルトの名無しさん
09/06/01 22:25:31
エラー時コールバック(イベント)でも登録できるようにするべきじゃないかな。
常にコンソール出力だけでOKなら別にいいかもだけど。
618:デフォルトの名無しさん
09/06/01 22:29:47
>エラー時コールバック(イベント)でも登録できるようにするべきじゃないかな。
>常にコンソール出力だけでOKなら別にいいかもだけど。
おっと、CERじゃこんなのは無理か。
ってその前にコンソール出力も無理なんじゃないか?
619:デフォルトの名無しさん
09/06/01 22:37:08
なんかイマイチやりたいことが伝わってこない
例外握りつぶしてしまっていいのか
620:デフォルトの名無しさん
09/06/01 22:45:50
>public delegate bool CallBack();
>static void MyCallBack()
>Hoge(new CallBack(MyCallBack));
返り値違うぞ
621:デフォルトの名無しさん
09/06/01 23:07:24
>>616
GCHandleいじるのが作法上正しいのでは
622:デフォルトの名無しさん
09/06/01 23:22:17
>アンマネージコードに渡したデリゲートはstaticフィールドに入れとかないとGCされて死亡
このコードだと問題ないけどね。
もちろんこういう構造じゃない場合は問題あるので考慮は必要。
623:デフォルトの名無しさん
09/06/01 23:29:05
問題ないかどうかはHogeの中身による
非同期にコールバックされたり戻ったあとも向こうで関数ポインタ保持されたりしたら死ぬ
624:デフォルトの名無しさん
09/06/01 23:59:45
非同期にコールバックする頃にはプログラム終了してるんじゃないかな、この場合
625:デフォルトの名無しさん
09/06/02 00:11:12
この場合ってhogeの中身が何も書いてないんだから
何も判断できない
626:デフォルトの名無しさん
09/06/02 00:31:25
static void Main()
{
Hoge(new CallBack(MyCallBack));
}
だから後でコールバックされるような使い方じゃないと「想定したら」、だよ。>このコードだと問題ない
627:デフォルトの名無しさん
09/06/02 07:29:09
ホゲが何者かわからん状態で
てめー勝手に都合の良い想定をするのは愚の骨頂じゃないか
628:デフォルトの名無しさん
09/06/02 09:57:11
未来永劫大丈夫。
PCのメモリも640KBで十分だし。
629:デフォルトの名無しさん
09/06/02 11:05:07
別に普通の想定だろ。
まあ別に軽く突っ込んでみただけで、ホントにそれでいいとは思ってないよ。
630:デフォルトの名無しさん
09/06/02 11:28:47
>>628
いつまでそんなネタひっぱってんだよ化石
631:デフォルトの名無しさん
09/06/02 19:10:23
登録しといて後で呼び出してもらう形の方が想定としては一般的だと思うんだが
P/Invokeでは特に
632:デフォルトの名無しさん
09/06/02 19:10:47
未来永劫ひっぱるぜ
633:デフォルトの名無しさん
09/06/02 19:27:06
だから、このコードだと、なんだろ?
634:デフォルトの名無しさん
09/06/02 19:33:36
Hogeが非同期ならこのコードでも死ぬよ
635:デフォルトの名無しさん
09/06/02 19:44:12
CallBackが引数無い、返り値はbool、例外は関数の外に出したくない
工夫のしようがないよね
hogeのインターフェイスを変更可なら色々出来るが
636:デフォルトの名無しさん
09/06/02 22:18:06
>>634
いやまずあり得ないね。
まあ意味ないしどうでもいいけど。
637:デフォルトの名無しさん
09/06/03 17:19:43
ちょっと相談させて下さい。
ネットワーク経由で送られてくるバイトストリームがあるとして、あるバイト位置まで読み進めないと
どんなフォーマットのパケットが来てるか分からないという形態のプロトコルを処理する場合、C#的には
どう書くとするとスマートなんでしょうか?
結果的には、パケットの種類に応じた構造体として後の処理で使えるようになればいいです。
C言語だと共用体を使うとスッキリ書けますが、C#でFieldOffsetを使うのは何となく邪道な気がします。
638:デフォルトの名無しさん
09/06/03 17:46:28
自分なら迷わずFieldOffsetを使うけど、なぜそれが邪道なのかはわからん。
639:デフォルトの名無しさん
09/06/03 18:08:37
>>637
何で邪道なんだろ
どうしても嫌ならビットシフトやらこねくり回せば?
640:デフォルトの名無しさん
09/06/03 18:15:36
指定位置までMemoryStreamに入れといて
データの種類が判明してから適宜変換して使うとか?
641:デフォルトの名無しさん
09/06/03 19:44:55
>>637
バッファと実インスタンスを分けて書くしかないんじゃないかなぁ
642:デフォルトの名無しさん
09/06/03 19:45:46
>>637
ある時点でpush backできるストリームを使うか作る
643:デフォルトの名無しさん
09/06/03 20:48:33
経験者に聞きたいのですが、C#はC++やCに比べて使いやすいでしょうか?
普及度とか今後を見たときに覚えておくと便利ですか?
644:デフォルトの名無しさん
09/06/03 20:51:46
段違いで使いやすい。
今後は、まあ、CやC++は上級者のための代物になりつつあるから
今からC,C++を一からやるよりは良いんじゃないかね。
645:デフォルトの名無しさん
09/06/03 21:12:48
C/C++で書く経験自体はしておいた方がいいと思うけど、実用的にはC#のが楽。
まぁ、C#じゃなくてもJavaでもRubyでもErlangでも好きなものを使えばいいと思うが。
646:デフォルトの名無しさん
09/06/03 21:17:40
レスありがとうございます。
C#は確かに使いやすくなっているようなイメージがあるのですが
CやC++でしかできなくて、C#じゃできない事ってあるんですか?
647:デフォルトの名無しさん
09/06/03 21:22:53
大きく見ればデバイスドライバとかシステムフックとかぐらいか
648:デフォルトの名無しさん
09/06/03 21:39:34
>>646
.NET言語だから移植性に難
649:デフォルトの名無しさん
09/06/03 22:03:33
cしらないとdllimportかけないじゃん
650:デフォルトの名無しさん
09/06/03 22:08:27
全部やっといた方がいい
651:デフォルトの名無しさん
09/06/03 23:02:14
>>646
OS関係の高度な操作とかは、C#では茨の道かも。
特定のCPUに特化したプログラムの作成とかも難しい感じ。
652:デフォルトの名無しさん
09/06/03 23:42:57
そういう、プリミティブなことをするか、組み込みなどで選択肢が少ないこと、よほどの高速性(これもものによっては関数型のほうが速い場合もあるが)でなければ生産性などなど考えたらC++というのは選択肢にはあがらんなぁ・・・
昔C++で今はC#メインだが、コンパイル速度が激速な点が一番うれしい。
653:デフォルトの名無しさん
09/06/03 23:53:16
Windows上で動く普通のアプリを作るだけなら
C#だけで充分だね。
654:デフォルトの名無しさん
09/06/04 06:39:10
C#がここまで評価される言語になると誰が予想しただろう
655:デフォルトの名無しさん
09/06/04 08:06:22
そりゃ、C# でググって出てくる上位サイトは
たいてい1.0とかそれのCTPの頃からC#の記事書いてるし、
その人らは予想してただろ。
656:デフォルトの名無しさん
09/06/04 08:08:06
.NET 1.0の頃は見向きもせずC++使ってた。
.NET 2.0とVS2005が出た時に、熱心に布教してたMS見て試しに使ってみたら意外と良くて、そこから徐々に乗り換えた。
>>654
VistaがまだLonghornと呼ばれていた頃
Win32を置き換える!とか言って浮き足立ってたなぁ
>Longhorn登場時期と予想されている2006年、PCは4〜6GHz/2コアのCPUを搭載し、メモリ2Gバイト超、HDD1Tバイト超
2003年の記事眺めてて噴いたw 今だからこそ言える。ねーよwww
657:デフォルトの名無しさん
09/06/04 11:41:06
>>652
>昔C++で今はC#メインだが、コンパイル速度が激速な点が一番うれしい。
C#が速いというよりもC++が致命的に遅いというのが実態な気がする。
いずれにしても、ある程度の規模を超えたらC++のコンパイル時間・リンク時間は実用的でないです
特にリンクが遅いのが余りに致命的
658:デフォルトの名無しさん
09/06/04 11:47:56
>>656
Core2辺りで一応達成といえるんじゃないかな、Pen4と同クロック比較で2倍程度(当時のCPUの想定はPen4クラスだと思われる)
メモリは一応2Gにはなった、HDD1Tバイト超だけが実現されていないかと
しかし、必要ない人には今の時点でもHDDは余っているだろうね
659:デフォルトの名無しさん
09/06/04 14:18:04
>>657
ヘッダ書き換えた時のコストがあまりにもひどいと思うよ。
660:デフォルトの名無しさん
09/06/04 14:20:34
>>659
それに関しては、分散コンパイルを使えば……、あんまり解決してないけど一応解決する
けれどもリンクはもう完全にお手上げ
661:デフォルトの名無しさん
09/06/04 14:27:54
今や、マネージコードで書かれたFPSなんかが出てきても、驚くほどのことじゃないな。
662:デフォルトの名無しさん
09/06/04 15:06:12
FPSって何?
663:デフォルトの名無しさん
09/06/04 15:08:35
ファーストパーソンシューティング
ゲームの一ジャンル。欧米で今一番はやってる形態
664:デフォルトの名無しさん
09/06/04 15:12:38
ファーストパーソンズシュータアァー!
665:デフォルトの名無しさん
09/06/04 17:06:53
空気よまずに、、、
フレーム・パー・セコンド
666:デフォルトの名無しさん
09/06/04 17:52:15
そういや、Silverlight3で書かれたFPSのデモがあったな
普通に3Dの画面がサクサク動いてて驚いた
667:デフォルトの名無しさん
09/06/04 18:33:59
>>666
これ?
URLリンク(www.innoveware.com)
668:デフォルトの名無しさん
09/06/04 18:55:11
>>659
そういうコストを減らすために
ヘッダの依存を分散させる設計が必要
そのコストが高いってことは設計が悪いってことだ
ヘッダのあるプログラミング言語的には
669:デフォルトの名無しさん
09/06/04 19:14:07
template…
670:デフォルトの名無しさん
09/06/04 21:22:45
>>668
それが最近の統計情報によると、ヘッダの重複コンパイルがコンパイル時間の8割がたを占めていて
ぶっちゃけヘッダ別けファイル別けするよりも、全ヘッダ・ソースを一つに結合してコンパイルしたほうがマシって状況にあるらしい。
さらに、リンクファイルに無闇に外部参照ラベルが出現している上、それがCからの名残でツリー構造ではなく名前空間にヘッダやらフッタやら特殊規則の名前やらが無節操にぶちまけられてまともに検索もできない有様。
古すぎるんだ、技術的に……
昔はこれでよかったんだよ、むしろこうする事により高速なコンパイルが期待できたんだ、だけどこの方法は数が増えるとコンパイル時間が爆発的に増えるんだ。
ちょっともうスレとは関係なさすぎますね、自粛します。
671:デフォルトの名無しさん
09/06/04 21:55:00
倍々ゲームでコンパイル時間が増えていたが、それでもコンピュータのパフォーマンスも倍々ゲームで増えていたので
しばらくは問題にならなかったんだな、しかしDiskIOその他は倍々ゲームパフォーマンスアップはしなかったので次第に問題が表面化してきたと。
672:デフォルトの名無しさん
09/06/04 23:53:55
>>670
ヘッダに全部コードを書いて、ソースはそいつをインクルードしてるだけってソフトがあったんだが、
それが理由なのか。
673:デフォルトの名無しさん
09/06/05 00:56:58
それはアレやないすかね、テンプレートの扱いがややこしいので
割り切って全部ヘッダにしただけやないですかね。
C++ は重複の多さもあるけど、コンパイル時に色々やりすぎって
話もあるんではなかろうか。
674:デフォルトの名無しさん
09/06/05 01:45:06
ひとまとめにしたほうがコンパイラも最適化を聞かせやすい品。
SQLiteがやってる。
675:デフォルトの名無しさん
09/06/05 02:10:54
.NetFrameworkのJITってSIMDを使わないんですか?
使う事があるのはmonoだけですか?
676:デフォルトの名無しさん
09/06/05 02:48:54
せいぜいmovqくらいじゃね
677:デフォルトの名無しさん
09/06/05 02:58:36
>>673
C++のコンパイル速度の遅さは文法の複雑さが主な原因。
678:デフォルトの名無しさん
09/06/05 03:10:57
>>674
VC++はリンク時の最適化というのがあって、
それ使えば全部ひとまとめにしたのと同じような効果が得られる。
まあこれ使うとさらにリンク時間が長くなるんだが。
679:デフォルトの名無しさん
09/06/05 03:47:29
>>675
SIMDが使える環境では使うようにJITコンパイルされる。
Mono.SIMDはSIMDによる"手動の最適化"を"マネージコードだけ"で行えるのが武器。
.NETでやるには部分的にC++/CLIを用いてネイティブで実装する必要がある。
680:デフォルトの名無しさん
09/06/05 03:53:06
むしろC#のコンパイル速度が速すぎる。
入力中にバックグラウンドでコンパイルしてるんじゃないかと疑ってしまったぞ。
681:デフォルトの名無しさん
09/06/05 07:14:37
>>680
VBにしてもJavaにしてもこんなもんじゃね?
デルファイとかさらに早いし
>>677
無意味なコンパイルだと思われる、一度コンパイルし結果が得られるはずであっても、直前のヘッダファイルが変更されると
全部コンパイルし直さない限り、そのままでいいか確定しないからな。
コンパイルの流れがちゃんとすれば、C++よりはるかに複雑な構造は取り扱えるし、C#だって今となってはC++と比較して遜色ないくらい複雑な内容をもっているし。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4322日前に更新/229 KB
担当:undef