ふらっとC♯(Part5) ..
577:デフォルトの名無しさん
04/11/11 18:00:01
>>576
>ちなみにClass2にはためしにstring型1個つっこんでます
それちゃんと public になってますか?
578:デフォルトの名無しさん
04/11/11 18:11:58
>>577
できました
ありがとうございました吊ってきます
・・・・オレのバカバカバカ・・・・
579:デフォルトの名無しさん
04/11/11 19:53:05
URLリンク(homepage3.nifty.com)
上のページの、「実行時間の高精度な計測」というのを使ってみたくていろいろやってたのですが、
どうしてもusingと;のところで「無効なトークン・・・」というビルドエラーが出でしまいます。
どうしたらよいでしょうか。
VSのC#使ってます
580:デフォルトの名無しさん
04/11/11 20:01:25
>>579
usingはコードの先頭、他にも色々usingされてるところに書く。
581:デフォルトの名無しさん
04/11/11 20:04:57
>>579
そのページのコード、間違ってるような気がする。using ステートメントのカッコの中は、
1. 式
2. 型名 変数名 = 式 [, 変数名 = 式 ] ...
のどちらかという形式で、そのページにあるように変数宣言やら式やらを混ぜてカンマで並べたりはできない。
>>578 のいう using はたぶんまた別の using なので無視。
582:581
04/11/11 20:05:50
首吊ります・・・ orz
嘘
583:579
04/11/11 20:07:15
>>780
ごめんなさい、自分の貧弱な脳みそでは理解できないのですが、
こういうことですか?
using System.Runtime.InteropServices ; // for DllImport
・・・
private void button1_Click(object sender, System.EventArgs e)
{
・・・
}
584:デフォルトの名無しさん
04/11/11 21:46:32
>>579
うろ覚えだから難だがコピペして実行しようとしたときオレも
using System.Runtime.InteropServices ;でコケた
んで、なぜかintelliSenseで同じ内容指定したら動いた
585:デフォルトの名無しさん
04/11/11 21:54:37
} がありません
って言うコンパイルエラーがなぜか出て
ファイル内のテキストを丸ごと切り取って貼り付けたら
正常にコンパイルできたことがあったなあ
586:579
04/11/12 07:48:29
解決しました。
using.System.Runtime〜を一番上の
using〜というのがたくさんある所
に置いたら実行出来ました。
ありがとうございました。
587:デフォルトの名無しさん
04/11/12 10:54:21
C#ちょこっと触って、やっぱVB.netにして、「すげえー便利最高」って
思って、やっぱC#の方がいいかなとおもって、迷ってんだけど。
絶対C#がいいってとこある?
588:デフォルトの名無しさん
04/11/12 10:58:40
べつに〜
589:デフォルトの名無しさん
04/11/12 11:03:34
VB系に慣れてたらVB.NET、C/JAVA系に慣れてたらC#。
私はVBの文法が大ッ嫌いなのでC#。
590:デフォルトの名無しさん
04/11/12 12:06:42
>588
別にーってお前なー。なんか言うことないんか?
>589
マイコンはCで、PCはVB6で EXCELとAutocadとVisioと、、、、はVBAなの。
JAVAって20年?も前の言語だろ。
今頃になって真似してマトモニなっても、VBで脳みそ破壊されてるからなー。
591:デフォルトの名無しさん
04/11/12 12:11:47
まず日本語から勉強するべきだな。
592:デフォルトの名無しさん
04/11/12 13:29:41
植民地だし、英語だろ。
593:デフォルトの名無しさん
04/11/12 15:26:54
PictureBoxにAllowDropのプロパティがないのに、Drag&Dropのイベントハンドラがあるのは、ライブラリの設計ミスか?
デフォルトでnoneになって、メッセージ発生しないんだが・・・。
594:デフォルトの名無しさん
04/11/12 15:49:42
>>593
なぜかEditorBrowsableAttributeもBrowsableAttributeも不可視の設定になってるから
インテリセンスにもプロパティグリッドにも表示されないけど、
AllowDrop{get; set;}はあるしtrueにしてやれば普通にD&Dも可能。
//やっぱり中途半端……。
595:デフォルトの名無しさん
04/11/12 15:51:06
>>593
つ[インシデント]
596:デフォルトの名無しさん
04/11/12 17:42:36
>>574
OCNがアク禁になっていたので遅レスです、どもわざわざ有難うごさいます。
XMLに関しては同じです、コントロールのところだけの問題か……むむむ
取りあえず助かります。
597:デフォルトの名無しさん
04/11/12 23:37:17
CreateDIBSectionを使っているのですが、
どうやったら、PictureBOXのhDCを取得できますでしょうか?
C#でCreateDIBSectionを使ったサンプル等ありましたら、
お教えください。よろしくお願いします。
598:デフォルトの名無しさん
04/11/12 23:43:11
\ │ /
/ ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
─( ゚ ∀ ゚ )< くっちゃらはぴはぴ!
\_/ \_________
/ │ \
∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< くっちゃらはぴはぴ!
Py厨〜〜〜〜! >( ゚∀゚ )/ | / \__________
________/ | 〈 | |
/ /\_」 / /\」  ̄ / /
599:デフォルトの名無しさん
04/11/12 23:47:59
PictureBox.CreateGraphics().GetHdc()
ReleaseHdc()とGraphics.Dispose()もセットで。
URLリンク(www.codeproject.com)
DIBSectionのラッパクラスだそうだ。
600:デフォルトの名無しさん
04/11/12 23:59:30
NUnitだけど、exeファイルをテストする事は出来ないよね?
で、以下のような仕組みにしている。
作成中のプロジェクトをWindowsアプリからクラスライブラリに変更
-> MyAppCore.dll
作成中のプロジェクトを走らせるだけのWindowsアプリ・プロジェクトを作成
-> MyAppRunner.exe(MyAppCore.dllを参照に追加)
内部的なコードはMyAppCore.dllの起動関数を呼び出すだけ。
テストプロジェクト
-> Test.dll(MyAppCore.dllを参照に追加)
まぁなんというか、もっとスマートなやり方はないのかなと思った次第。
601:デフォルトの名無しさん
04/11/13 00:17:15
>>600
少なくともVer2.2ならできるよ
602:600
04/11/14 10:00:00
2.2使ってます。
自分はテストコードをアプリ本体に入れたくないんですよね。
テストとアプリのプロジェクトを分けるとテスト側からアプリのコードを呼ぶために
アプリ側をDLLにしなくちゃいけない・・・
って、今、思いついたんだけど、テストコードを全部#if DEBUGで
くくっとけばいいのか!
なわけで、解決っぽい。
603:デフォルトの名無しさん
04/11/18 16:46:30
ShowDialogで表示したダイアログを移動した時
元のフォームも一緒に移動したいのですが
可能でしょうか?
可能な場合どのようにすればいいのでしょうか
604:デフォルトの名無しさん
04/11/18 17:07:01
>>604
お兄さんそりゃFormでダイアログもどき作った方が楽でっせ
605:603
04/11/18 17:26:57
すいません。言葉足らずでした。
メインフォームがあって編集用のフォームを
メインフォームの上にモーダルで表示したとして、
編集用のフォームを移動した時に、
メインフォームも一緒に動かしたいなと思ったのです。
606:デフォルトの名無しさん
04/11/18 17:52:59
>>605
ダイアログフォーム呼出時に、ダイアログフォームのOwnerプロパティに親フォーム自身を設定する。
ダイアログフォームの方で、
位置保存用のメンバ変数を作っておく。
Moveイベントで、Ownerプロパティから親フォームの位置を設定し、その後位置保存用変数を更新する。
基本はこんな感じ。
初めの位置保存はLoadかVisibleChangedでやるのが妥当かな。
Moveイベントへのイベントハンドラ追加もLoadでやるか、Moveイベント内でCreatedをチェックするかとか。
//MoveがMoveEventArgsとか言って移動前の位置のプロパティを持っててくれれば楽なのになー。
607:在日外国人参政権反対
04/11/18 18:02:02
きくまえにMoveWindowとか試してみろよ。
608:デフォルトの名無しさん
04/11/18 22:46:15
そうだな。それっぽい名前のを色々弄ってみるのは大事だと思うよ。
609:603
04/11/19 04:43:21
>>606さん。レスありがとうございます。
とりあえず以下のようにやってみましたが上手くいきませんでした。
MainFormとEditFormがあったとして
MainFormでButton1をクリックしたときに
EditForm editDialog = new EditForm();
editDialog.ShowDialog(this);
としてEditFormで
public static int x,y; //Location用変数(publicはとりあえずで付けました)
private void EditForm_Move(object sender, System.EventArgs e)
{
x = this.Location.X;
y = this.Location.Y;
ここにMainForm.Location = new Point(x,y);
見たいな事が出来れば良いんですよね?
色々弄ってみたのですが分かりませんでした (--
}
>>Moveイベントへのイベントハンドラ追加もLoadでやるか、Moveイベント内でCreatedをチェックするかとか。
すいません。この意味が分かりませんでした。
610:デフォルトの名無しさん
04/11/19 08:01:59
public class Form1 : System.Windows.Forms.Form
{
//中略
private void button1_Click(object sender, System.EventArgs e)
{
Form f;
f = new Form();
//f = new EditForm();
f.Move += new EventHandler(childForm_Move);
f.ShowDialog(this);
}
private void childForm_Move(object sender, EventArgs e)
{
Form f = (Form)sender;
int x = f.Location.X - 100;
int y = f.Location.Y - 100;
this.Location = new Point(x, y);
}
}
611:603
04/11/19 10:04:31
>>610さん
見事に動きました!
それにしてもインテリセンスで「TABキーを押してください」って
こんな指示始めてみましたよ。(^^;;
ありがとうございました。
MainFormがくっついて動いているのが嬉しくて意味もなく動かしニヤってしてみたり。。
612:初心者
04/11/19 21:49:40
C/C++でマウスの座標を表示させるにはどうしたらいいでしょうか。
613:デフォルトの名無しさん
04/11/19 21:53:40
>>612
スレ違い。
URLリンク(www.kumei.ne.jp)
でも読んでください。
614:デフォルトの名無しさん
04/11/19 21:55:53
> 当ホーム・ページの一部または全部を無断で複写、複製、転載
> あるいはコンピュータ等のファイルに保存することを禁じます。
ブラウザのキャッシュ消すのまんどくせ
615:初心者
04/11/19 22:10:41
ありがとうございました。とりあえず何とかなりそうです。
616:デフォルトの名無しさん
04/11/20 16:24:44
Formにいろいろ描きたいので
private void Form3_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
に記述したのですが、
リサイズ時に再描画されるときとされないときがあるみたいです。
されないときは一度最小化してから元に戻すと再描画されるのですが
リサイズ時に確実に再描画されるほうほうってないでしょうか?
617:デフォルトの名無しさん
04/11/20 16:26:47
ResizeRedraw
618:616
04/11/20 23:58:04
>>617さん
ありがとうございました。 ぶじ動くようになりました。
619:デフォルトの名無しさん
04/11/22 10:07:34
620:デフォルトの名無しさん
04/11/22 17:00:39
クラスをいくつかのファイルの分割して記述する方法はあるんでしょうか?
もしあったら教えてください。
621:デフォルトの名無しさん
04/11/22 19:32:31
>>620
partialキーワードがC# 2.0から追加される。
622:デフォルトの名無しさん
04/11/26 13:13:34
C#って、アセンブリで言うgoto命令のような物ってありますか?
あれば教えてください。
623:デフォルトの名無しさん
04/11/26 13:18:20
普通にgotoがある。
ネストループからの脱出以外に使うべきではないが。
624:デフォルトの名無しさん
04/11/26 13:32:27
つうか言語仕様ぐらい大した量でもないんだから全部目を通せと。
625:デフォルトの名無しさん
04/11/26 13:59:29
せめてキーワードくらいはなぁ・・・
626:622
04/11/26 15:42:40
623-625
ありがとうございます
もっかい勉強しなおします…
627:デフォルトの名無しさん
04/11/26 16:04:00
>>626
C#のgotoはswitch 文の case とかを飛び先としても指定できるように拡張されているので、
いろいろみてみると面白いよ。
どうせなら、gcc拡張的なgotoの拡張もついでにやってくれるといいんだけど・・・
628:デフォルトの名無しさん
04/11/27 15:16:17
正直いって .NET って時期尚早って感じがする。
広くに使われるようになるまでに後5年はかかると見た。
629:デフォルトの名無しさん
04/11/27 15:33:56
5年もかからないよ
後2年で半分は消滅する
WindowsFormクラスは消滅けってい
GDI+もいらなくなる
すべてロングホーンが悪い
630:デフォルトの名無しさん
04/11/27 15:35:50
ロングホーンってヘヴィィそうだね。
使いたいと思わないな。
Windows 2000 が最高。
631:デフォルトの名無しさん
04/11/27 15:47:45
C# と Java の違い教えろ。
// Java >>>>> C# なのは自明なんだがな。。。
632:デフォルトの名無しさん
04/11/27 15:50:05
>>631
少しも自明じゃない。
633:デフォルトの名無しさん
04/11/27 15:50:34
火病書き込みに反応すんなよ
634:デフォルトの名無しさん
04/11/27 15:52:20
>>632
ライブラリの充実性からいって自明だろ。
それにJava のソースは公開されてるしな。
格が違いすぎるんだよ。
635:デフォルトの名無しさん
04/11/27 15:52:35
自演に反応すんなよ
636:デフォルトの名無しさん
04/11/27 15:53:47
>>634
そうかな。Java のほうが充実していると一概に言えるか?
ソース公開は確かによいが。
637:デフォルトの名無しさん
04/11/27 15:54:20
お
い
は
や
く
し
ろ
よ
C
#
厨
638:デフォルトの名無しさん
04/11/27 15:55:40
公開されていない部分があったような...なんだったっけ
639:デフォルトの名無しさん
04/11/27 15:56:17
残念ながらC#は仕様が公開されてますので
ソースがほしけりゃmonoのソースでもみてください
Javaはソースコード見た時点で
いろんなプロジェクトに参加できなくなるという恐ろしいライセンスつきですが?
640:デフォルトの名無しさん
04/11/27 15:56:18
>>636
> そうかな。Java のほうが充実していると一概に言えるか?
言える。
641:デフォルトの名無しさん
04/11/27 15:57:15
>>639
> Javaはソースコード見た時点で
> いろんなプロジェクトに参加できなくなるという恐ろしいライセンスつきですが?
見たって言わなきゃいーんだよ。そんぐれー考えろ
642:デフォルトの名無しさん
04/11/27 15:57:18
まぁ速度はJavaのほうが2倍かかるけどな
あとはマ板でやってちょ
●なぜJava厨はそんなに劣っているのか? 8
スレリンク(prog板)
643:デフォルトの名無しさん
04/11/27 15:59:59
>>640
C# のほうが充実している部分もあるのだが。
644:デフォルトの名無しさん
04/11/27 16:00:15
は
や
く
何
か
反
論
し
な
さ
い
、
C
#
厨
君
w
w
w
645:デフォルトの名無しさん
04/11/27 16:12:45
なんか盛り上がってますね
646:デフォルトの名無しさん
04/11/27 16:35:49
いやべつに
647:デフォルトの名無しさん
04/11/27 17:33:33
暴言語は冗談抜きで死滅寸前だからな
648:デフォルトの名無しさん
04/11/27 22:03:04
言語としての機能は、後発のC#のが多少上。
ライブラリの充実度はjakartaやその他もろもろのオプソ集団を要するJavaのが上。
業務では、GUI作らないならJavaを用いるのが普通。
649:デフォルトの名無しさん
04/11/28 01:52:43
シェアで言えばJAVAよりVB.NET2005にヤラレそうな気がする
650:デフォルトの名無しさん
04/11/28 11:51:59
VBは今現在でもC#より上、将来は知らんがね。
651:デフォルトの名無しさん
04/11/28 12:24:08
えぇぇぇぇ
652:デフォルトの名無しさん
04/11/28 12:27:21
お前ら>>1読めと。
ここは言語の優劣を語るスレではないぞと。
653:デフォルトの名無しさん
04/11/28 15:03:14
最高に頭悪そうな発言してください in ム板 (2)
スレリンク(tech板)
かと思ったじゃねぇか
654:デフォルトの名無しさん
04/11/30 00:09:17
C#を学習する練習とおもい、メモ帳もどき+αを作成して
完成したのですが、巨大なファイルの表示に時間が
掛かります。
秀丸エディタさんとまではいかないでも、少しは
早く表示できるようにするには、どうすればよいのでしょうか。
textBoxを1から自分で作成し直すにしても、その考え方の
ヒントだけでも教えてください。
655:デフォルトの名無しさん
04/11/30 00:21:03
VirtualModeみたいなもんか
656:デフォルトの名無しさん
04/11/30 01:04:22
C#の学習のためなら、もっと他にやることあるんじゃないのか…
と思ったら負けですか?
657:654
04/11/30 01:18:21
>>656
元々勝ち負けのない趣味のプログラムなのですが、
他にといわれても。文法から始めろと?
>>655
VirtualMode?を調べてみます。
ありがとうございます。
658:デフォルトの名無しさん
04/12/03 06:51:53
>>654
ReadLineで処理してるんじゃない?
だったら、ReadToEndで読んでみては?
FileStream fs = new FileStream("ファイルのパス",FileMode.Open);
StreamReader sr = new StreamReader(fs);
textBox1.Text = sr.ReadToEnd();
ところでVC#.Net2005っていつ発売なの?
はやく.Net Freamwork2.0を使ってみたい・・・
659:デフォルトの名無しさん
04/12/03 14:21:06
>>658
早くて来夏だろうねぇ。
環境があるなら、β1を試してみたら?
十分に正式版に向けて準備ができると思うけど。
それに、今ならAvalonのPreviewも出てて、楽しいと思うし。
660:デフォルトの名無しさん
04/12/04 10:53:23
Avalon previewは現状MSDN会員のみだよね?
661:デフォルトの名無しさん
04/12/04 19:44:57
フォームの最小化ボタンを押した時みたいに
this.Hide();
this.ShowInTaskbar = true;
と言う状態にしたいのですが何か方法があるのでしょうか?
662:デフォルトの名無しさん
04/12/04 19:48:40
>>661
それで良いんじゃないのか?
663:661
04/12/04 20:09:22
>>662
いや、やってみたら分かるけど
this.Hide();
とすると
this.ShowInTaskbarを弄っても反映されないみたい
Locationをどっか遠くに設定するしかないのかな?
664:デフォルトの名無しさん
04/12/04 20:19:57
this.WindowState = FormWindowState.Minimized;
じゃいかんの?
665:661
04/12/04 20:41:29
>>664
レスありがとうございます。
それでイケました。
666:デフォルトの名無しさん
04/12/05 12:08:19
C#でC++でいうマクロのようなものってあるんでしょうか?
マクロとテンプレート使ってトリッキーなことしてたのでそれをC#で実現する方法がわからなくて困ってます。
667:デフォルトの名無しさん
04/12/05 12:11:48
トリッキーな事はやらない方向にと言うのが言語の潮流。
668:デフォルトの名無しさん
04/12/05 12:27:53
そんな正論言ってもしゃーないやん
669:デフォルトの名無しさん
04/12/05 23:03:06
たぶん、むりぽ。次期バージョンでテンプレートはいるらしいけど。
670:デフォルトの名無しさん
04/12/05 23:25:12
テンプレートはかなり期待。
671:デフォルトの名無しさん
04/12/05 23:31:20
C++みたいなのだったらやだな。
へたに型とかみなくていいから、単にテンプレート変数を
自分の書いた文字で置き換わってコンパイルされるだけでいい。
そっちのがいろいろ使い道ある。
672:デフォルトの名無しさん
04/12/05 23:37:01
>>671
単純置換は止めてくれ。C++ の如くアセンブリが肥大化する。
673:デフォルトの名無しさん
04/12/06 00:02:58
>>671
むしろC++見たいなので、単純置換でないものがいいな、
もし型の置き換えだけであれば、テンプレートよりもメタクラスの実装の方が何倍も綺麗でいいと思うし。
てか、なんでメタクラスは実装されないんだろう……シクシクシク
674:デフォルトの名無しさん
04/12/06 00:04:53
>>673
メタクラスはクラスのクラスだっけか
smalltalk やった事無いから分からん
675:デフォルトの名無しさん
04/12/06 00:08:25
>>674
とどのつまり型を入れることのできる変数。
Metaclass a = int ;
a b ;
は
int b ;
たとえばこんな感じ
void Func( Metaclass T , int hoge , ... )
{
}
template 全くいらない
676:デフォルトの名無しさん
04/12/06 00:08:28
>>673リフレクションじゃだめなのか?
677:デフォルトの名無しさん
04/12/06 00:15:04
>>675
Type
678:デフォルトの名無しさん
04/12/06 00:38:11
>>677
それは何かが違う C++ でいえば typedef と type_info 型ぐらい違うな
679:デフォルトの名無しさん
04/12/06 00:40:21
もう型なんてなくていいよ
680:デフォルトの名無しさん
04/12/06 00:44:47
スクリプト言語で型無しではまったことないの?
681:デフォルトの名無しさん
04/12/06 01:22:42
C#(というか.NET)でLuaを使っているサンプルはどこかにないでしょうか。
当方で探しても見つかりませんでした。
682:デフォルトの名無しさん
04/12/06 01:36:42
>>681
それはこれのこと?
URLリンク(bandodalua.lua.inf.puc-rio.br)
683:デフォルトの名無しさん
04/12/06 02:09:29
URLリンク(www.codeproject.com)
> So what about executing Lua script in .NET applications?
> This should not be a major problem, just the matter of writing a managed C++ wrapper.
684:デフォルトの名無しさん
04/12/07 03:49:48
かなり基本な質問です、C/C++で書かれたライブラリ
(.NETとか関係なけりゃクラスすらないような)を、C#で
使用する方法は無いのでしょうか
なんとなくムリかなとは思うのですが、あまりに基本な
ためかどこのFAQを読んでもハッキリした答えがなくて
モヤモヤしてます。C/C++で作られた資産を移植しようと
すると、やはり手作業が入るものでしょうか
ズバッと斬ってやって下さい orz
685:デフォルトの名無しさん
04/12/07 04:11:39
P/Invokeという手法で使用できる。
例えばWin32API呼出もC用ライブラリの呼出と考えられる。
関数のエントリポイント、値渡し参照渡し、相互の型の対応などを考える必要はあるが、基本はこんな感じ。
[System.Runtime.Interopservices.DllImport("user32.dll")]
public static extern uint SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
詳しくはヘルプを見るべし。
ms-help://MS.VSCC/MS.MSDNVS.1041/cpguide/html/cpconconsumingunmanageddllfunctions.htm
686:デフォルトの名無しさん
04/12/07 06:09:08
>>684
DLLなら>>685の言うようにP/Invokeで利用可能。
そうでないなら、COMやDLLにするかManaged C++でラッパを書いて利用する。
漏れはP/InvokeメンドクサイのでCOMコンポーネント経由でやったりするのが好きなんだけど、
Windows XP以外ではインストーラが必須になるので嫌う向きもあるみたい。
687:デフォルトの名無しさん
04/12/07 16:32:28
>>675
おおーすげー便利そう・・・
C#2.0に欲しいなぁ
メタクラスで指定した型の戻り値が欲しい時はどうするの?
object Fanc( Metaclass T, int hoge, ...)
{
}
ならちとイヤーな感じw
688:デフォルトの名無しさん
04/12/07 17:48:59
>>675
リフレクションのシンタックスシュガーか・・
どんなときに便利なの?
689:デフォルトの名無しさん
04/12/07 18:08:09
>>675
それって実行時にすっ飛ぶんだよね
えらーしょりしにくくね?
690:デフォルトの名無しさん
04/12/07 20:24:52
>>675
C#の設計思想と全然合わないな。異物を混ぜるなって感じ。
691:デフォルトの名無しさん
04/12/07 22:09:54
>>675
悪くはないと思うけど、T 型を返すときはどうすんの?
692:デフォルトの名無しさん
04/12/07 22:27:30
>>685さん >>686さん ありがとうございます。
てっきりC++のコードが使えないと思ってたので
助かりました。安心してC#を勉強できそうです。
さっそくDLL作成のほうに手をつけてみます。
693:デフォルトの名無しさん
04/12/07 22:31:38
>>688
Type で reflection って面倒だから、シンタックスシュガーには意味あるんじゃない?
でもテンプレートの代わりにはならないような気が・・・
template <class T> T Max(T a, T b) なんてのから、型推論で T を導出してくれて
こそのテンプレートだし。若干 C++ マンセー入っちゃってるけど。
694:デフォルトの名無しさん
04/12/07 22:33:24
先に予想してみるテスト。
>>692
ポインタもWindowsのハンドルもIntPtr型だ。
695:デフォルトの名無しさん
04/12/07 22:35:21
漏れも
>>692
コールバックも書けるから安心してください(MSDN参照)。
696:デフォルトの名無しさん
04/12/07 23:25:40
>>693,688
シンタックスシュガーではないと思われ
697:デフォルトの名無しさん
04/12/07 23:42:59
>>691
boostとか見てると良く分かるけれど、戻り値が型推というのはバクダンになりやすいので、使わないというのは有りかと思います。
この形式ではやるとしたら構造体かなにかで型と実体のペアを作って返すしかないですね。
>>690
C#の設計思想など知りませんが、少なくともよりオブジェクト指向的ではあろうかと……
698:デフォルトの名無しさん
04/12/08 12:56:45
>>696
いや、シンタックスシュガーだと思うよ。だって、
・変数宣言ができる
・メソッド等のInvokeが普通の書き方でできる
っていう、純粋に記法の追加でしかないし。
即値を渡せばコンパイル時に型を決定して最適化はできるだろうけど・・
関係ないけど全然Metaclassじゃなくて単にClassだよね。
>>697
型推論はともかく、T Max(T a, T b) 程度が書けないのでは記述能力不足・・・
699:デフォルトの名無しさん
04/12/08 14:48:20
>>698
リフレクションをシンタックスシュガーということにしてしまうと、全てがシンタックスシュガーになってしまわないか?
それは何か違う気がするんだが・・・
700:デフォルトの名無しさん
04/12/08 15:15:09
>>699
リフレクションをシンタックスシュガーだと言っているのではなく、
>>675の「Metaclass」なるものは単なるリフレクションのシンタックスシュガーに過ぎない
と言ってるだけ。
Type T; があったとき、 T a = new T() なんて書けるとリフレクション使うときには便利、
それには同意する。
701:デフォルトの名無しさん
04/12/08 15:23:24
そうなのかな、どうにもこうにも拡大解釈としか捕らえられないのだが・・・
702:デフォルトの名無しさん
04/12/08 15:29:41
だって漏れは「リフレクションをシンタックスシュガーだということに・・・」って主張してないじゃん。
だから一体何をどう捕らえられているのかサッパリわかんない。
ケチらないでもう少し言いたいことを書いてよ。
703:デフォルトの名無しさん
04/12/08 15:37:49
>>702
ちょっと勘違いがあるかも、リフレクション機能を対象にしたシンタックスシュガーってのは変だと思うわけ。
リフレクションは基本的にこれがありとなると、もはや何でもありになってしまう。
何でもありな物をシンタックスシュガーだと主張するなら言語機能の全てがシンタックスシュガーということになってしまうが、
これは常識的なシンタックスシュガーの概念とは違うと思う。
シンタックスシュガーは元々定義があいまいなので、主観で貴方がそう思うというならそういう事としかいいようがないと思います。
704:デフォルトの名無しさん
04/12/08 16:00:03
>>703
よくわかった。漏れが>>715をシンタックスシュガーだと思ったのは、現行のTypeとの違いが
局所的な記法の違いだけだってとこから。
主観だけど構文が違うだけで機能が同じなら、それはやはりシンタックスシュガーだと思う。
C++のテンプレートが型推論機構のおかげで普通のチューリングマシンとしての機能を完備していて、
単なるマクロの便利な記法を脱却しているのと比べてしまうからそう思うのかもしれないけど。
705:デフォルトの名無しさん
04/12/08 21:21:52
ていうかシンタックスシュガーって何ですか。
706:デフォルトの名無しさん
04/12/08 21:24:53
>>705
分からないときにはとりあえずぐぐって下さいな
URLリンク(www.google.com)
707:デフォルトの名無しさん
04/12/08 21:27:26
シンタックスシュガーがあるのなら、シンタックスソルトとか、
シンタックスペッパーもあるのですか?
708:デフォルトの名無しさん
04/12/08 21:35:24
>>706
ぐぐった可能性を微塵も考慮しないあたりがステキ。
>>707
正露丸糖衣があるなら正露丸塩衣もあるのですか?
709:デフォルトの名無しさん
04/12/08 22:04:50
ていうか正露丸糖衣って何ですか。
710:デフォルトの名無しさん
04/12/08 22:32:07
>>709
C#に対するIDEみたいなもの。
711:692
04/12/09 00:02:44
>>692 >>695
ありがとうございます(T−T
間違いなくつっかえると思われます¢(。。;)
なお勉強はぼつぼつ進行しつつあり、予言の的中は
15日以降にスケジュールされております。
712:681
04/12/09 19:00:32
>>682
亀レス失礼。
どうもありがとうございます。
713:デフォルトの名無しさん
04/12/14 10:55:08
教えてください。
C#でボタンをクリックすると指定したpdfファイルを印刷するような
プログラムを作成することはできますか?
どうすればいいでしょうか?なにかヒントをお教えください。
714:デフォルトの名無しさん
04/12/14 12:12:27
君はどのくらいプログラミングが出来るのか、なにかヒントをお教えください。
715:デフォルトの名無しさん
04/12/14 12:13:50
・Process.Start
・"C:\Program Files\Adobe\Acrobat 6.0\Reader\AcroRd32.exe" /p /h "%1"
716:713
04/12/14 12:43:25
>715
ありがとうございました。
おかげで印刷することができました。
複数枚を、印刷したい時や、ページを指定して印刷するときは
どのようにすればいいでしょうか?よろしくおねがいします。
717:デフォルトの名無しさん
04/12/14 12:56:01
・・・少しは自分で考えろ
718:デフォルトの名無しさん
04/12/14 17:45:54
>>716
馬鹿ハケーン
719:デフォルトの名無しさん
04/12/15 17:27:53
ファイルをゴミ箱に送るにはどうすればいいのでしょうか
720:デフォルトの名無しさん
04/12/15 17:33:12
>>719
URLリンク(www.google.com)
721:719
04/12/15 18:27:09
スミマセンデシタ orz
722:デフォルトの名無しさん
04/12/17 18:46:13
そのスレッドの参照を誰も持ってない場合に
実行中のスレッドが勝手にGCされちゃうことってあるの?
void Start()
{
Thread thread = new Thread(new ThreadStart(new MyThread()));
thread.Run(); // 作りっぱなし
}
723:デフォルトの名無しさん
04/12/17 19:48:34
>>722
ないから安心したまい。
実行環境が内部でスレッドを管理するので、参照は実は存在するから。
スレッドが行うメソッドが終了したらGCの対象になる。
細かい話だが、StartされないThreadオブジェクトは参照が無くなればGCの対象だが、
WeakReferenceでのみ参照を持っている状態でもGCの対象にならなくなるようだ。
724:デフォルトの名無しさん
04/12/17 20:04:33
しかしMutexが勝手にGCされてアプリの多重起動防止が効かなくなるということはあるらしいぞ
そのためGC対象から外すよう明示的に指示してやるのが良いそうだ
GC.KeepAlive(mutex);
ってな感じで
725:デフォルトの名無しさん
04/12/17 21:07:34
>>724
それはひょっとしたらSocketがListenした時にMutexが解放されてしまうと言うバグかな。
そうだとしたらGC.KeepAliveも無意味だよ。
そもそもGCの問題じゃないし。
.NET1.0はSP3では解決されてる。.NET2.0(のベータ)は初めから問題なし。
.NET1.1ではSP1でも未解決な、ちょっと頭の痛い問題だ。
TCPチャネルを使ったリモーティングですら解放されてしまうし。
726:デフォルトの名無しさん
04/12/17 21:19:05
そういえばInsider.NETの会議室にもう一つMutex絡みの話が出てた。
スレッドが終了する時に自動的にそのスレッドが所有するMutexを解放するって話。
727:デフォルトの名無しさん
04/12/17 22:03:08
フレームワークのクラスってたくさんあるじゃん。しかも意味不明。
728:デフォルトの名無しさん
04/12/17 22:09:16
誤爆乙
729:デフォルトの名無しさん
04/12/17 22:12:23
>>725
URLリンク(dobon.net)
> ローカル変数として宣言したMutexを使った場合、うまく行かないことがあるようです(これに従い、
> ここで紹介しているサンプルも修正しました)。静的フィールドを使えば解決されますが、それ以外
> では、GC.KeepAliveメソッドを使用すれば解決できるようです。エントリポイントで二重起動を
> チェックする例を次に示します
730:デフォルトの名無しさん
04/12/17 22:23:27
あ、静的変数にしたら問題なくなった。
でもローカル変数のMutexをGC.KeepAliveしてもやっぱりSocketがListenすると解放される……。
731:デフォルトの名無しさん
04/12/23 09:39:14
Htmlをテキストとそのままと表示して、置換を使った簡単なエディタを作りたいなと思うのですが
WindowsアプリでローカルにあるHtmlファイルを表示することって出来るのでしょうか?
732:デフォルトの名無しさん
04/12/23 10:06:14
うぇぶくらいあんとつかえばいいのでは?
733:デフォルトの名無しさん
04/12/23 10:32:27
WebBrowserコンポーネントを使えばいいのでは?
734:731
04/12/23 13:01:13
レス有り難うございます。
キーワードを元に検索して参考になりそうなHPを見つけました。
これから頑張って作ってみます。
735:デフォルトの名無しさん
04/12/29 23:55:43
次期OSでの商用パッケージアプリってC#で開発されるのかな?
736:デフォルトの名無しさん
04/12/30 12:29:00
VisualStudioとか
737:デフォルトの名無しさん
05/01/03 00:26:06
つぎのofficeがC#ってのを聞いたことがある。
office2005の入ってる人は.netも入っていて
C#アプリも配布できるのだと。
738:デフォルトの名無しさん
05/01/03 14:29:40
Office2003も.NETでプラグインを作れたような。
…って、C#とは限らないか。
739:デフォルトの名無しさん
05/01/03 17:56:34
同一アプリケーションドメイン上に、同じキーを持つオブジェクトが1つしかない事を保証したい
singleton を変形し、同じキーで作成しようとしたら、以前作成したオブジェクトを返す
ただし、そのオブジェクトは GC に回収されるようにしたい
WeakReference を Hashtable 内に押し込むのが正解?
WeakReferenceTable オブジェクトとかって無いの?
740:デフォルトの名無しさん
05/01/05 00:59:40
C#でRemotingを使いたいのですが、MSDNやGDN以外で参考になるサイトはありますか?
ぐぐったのですが、ほとんど見あたりません・・・
741:デフォルトの名無しさん
05/01/05 01:09:35
>>740
慣れればそう複雑でも無い事が分かるから(奥は深そうだけど)、取りあえず自分で実際に試す事だね。
URLリンク(d.hatena.ne.jp)
VB.NETだけど、こことか。
742:デフォルトの名無しさん
05/01/05 01:15:19
>>741
ありがとうございます、試してきます〜
743:デフォルトの名無しさん
05/01/05 02:07:36
>>740
本は丸ごと一冊リモーティングの本があったよね
お試しとかでなく実用として遣うなら買うことお勧め。時間の短縮分で元が取れると思う。
744:デフォルトの名無しさん
05/01/06 00:52:02
かなり頭が悪いのですが、よろしくお願いします。
以下のようなメソッドがあると仮定します。
メソッド {
if (略) {
bool a
result1 = true;
}
if (略) {
bool result2;
result2 = true;
}
if (result1 == true || result2 == true) {
(終了);
}
}
result1 とresult2 がtrueになったときに
一番下の(終了)という部分を実行したいのですが、
ビルドをすると「未割り当てのローカル変数が参照されました。」と
表示されエラーになってしまいますが、何が原因なのでしょうか。
よろしくおねがいします。
745:デフォルトの名無しさん
05/01/06 00:52:18
変数のスコープ URLリンク(wisdom.sakura.ne.jp)
746:デフォルトの名無しさん
05/01/10 19:53:24
C♯ソースコードのステップ数とかを評価してくれるソフトってない?
C++とかのは見かけるんだけど
747:デフォルトの名無しさん
05/01/10 21:05:30
>>746
ドットネットのすてっぷカウント♪
URLリンク(www.vector.co.jp)
とかどうだろう。
748:yuuteen
05/01/11 18:04:49
こんにちわ。
初めて書き込ませて頂きます。
C#のSystem.Diagnostics.Process.GetProcessesプロシージャが
Windows2000では失敗すると、下記のサイトにあるのですが、
URLリンク(support.microsoft.com)
何故、なのでしょうか?
それと、どうやったら、失敗しないのでしょうか?
誰か、助けて!!
749:デフォルトの名無しさん
05/01/11 19:58:00
>>748
パフォーマンスカウンタに関する問題が原因だったような。
書いてあるように HotFix を入手するか、違う方法を考えればよし。
特に、二重起動防止をやりたいのなら、これじゃなくて、Mutex を
使うほうがいいよ。
750:746
05/01/12 01:22:28
>>747
ズバリでした
探しそびれていたようで。
痛み入りますorz
751:yuuteen
05/01/12 12:27:20
>>749
ありがとうございます。
確かにおっしゃる通りで、HotFixを入手する手も考えたのですが
そもそも、根本的に二重起動チェックの方法が悪いのではというところで 悩んでいました。
ちなみに、バッチの二重起動チェックなのですが...。
下記がMutexを使用した場合のソースなのですが こんな感じなのでしょうか?
また、"MyName"は他の文字列と置換え可能だと、サンプルを見る限り
書いてあったのですが、バッチの二重起動チェックの場合、何をここに
記述しなくてはいけないのですか?
二重起動チェック処理は共通関数化して行う予定です。 ご教授下さい。
///////////////////////////////////////////////////////////////////////////
bool exit = false;
System.Threading.Mutex m = new System.Threading.Mutex(false, "MyName");
if (m.WaitOne(0, false) == false)
{
//すでに起動していると判断する
m.close();
exit = true;
}
else
{
exit = flse;
}
//アプリケーションが終わるまでmへの参照を維持するようにする
GC.KeepAlive(m);
}
///////////////////////////////////////////////////////////////////////////
752:デフォルトの名無しさん
05/01/12 13:03:14
>//アプリケーションが終わるまでmへの参照を維持するようにする
>GC.KeepAlive(m);
GC.KeepAliveはそういう仕様ではありません。
こんなクラスを使えば良いでしょう。
class Hoge {
System.Threading.Mutex _m;
boole _is_ok;
public Hoge(string id)
{
_m = new System.Threading.Mutex(false, id);
_is_ok = _m.WaitOne(0, false);
}
public ~Hoge()
{
_m.Close();
}
public bool IsOK { get { return _is_ok; } }
}
使い方
class YourApp {
Hoge _hoge = new Hoge("YourAppName"); // メンバ変数等、アプリが終了するまで残る変数に入れること。
public void Main()
{
if ( !_hoge.IsOK ) return;
...
}
}
753:デフォルトの名無しさん
05/01/12 16:11:06
>>751
よく動いてる仕組みもわからず使う気になりますね
全部を詳細に把握しろとは言いませんが。
754:デフォルトの名無しさん
05/01/12 22:20:38
コマンドラインコンパイルの方法教えてください。
javac 〜.javaみたく扱いたいんで。
755:デフォルトの名無しさん
05/01/12 22:22:51
>>754
知ってるけど秘密 c?c だな
756:デフォルトの名無しさん
05/01/12 22:23:22
csc.exeでヘルプを調べる
757:デフォルトの名無しさん
05/01/12 22:25:23
>>755
ば〜かww
758:デフォルトの名無しさん
05/01/12 22:29:12
cscでやれば、ソリューションファイル、プロジェクトファイル、
アセンブリインフォファイルはいらないんだよ。
759:デフォルトの名無しさん
05/01/12 22:31:51
ノリの悪い奴がいるな
ちぃー
760:デフォルトの名無しさん
05/01/12 23:01:31
>>755
こういう奴、正直寒い。同じボケるにしてもボケ方ってものがあると思う。
761:755
05/01/13 20:32:53
↑必死だなwwwwwww
762:デフォルトの名無しさん
05/01/13 22:58:21
オマエモナー
763:デフォルトの名無しさん
05/01/16 16:55:58
Bitmap bmp = new Bitmap(100,100);
Graphics g = Graphics.FromImage(bmp);
bmp.MakeTransparent(Color.Red);
g.FillRectangle(Brushes.Aqua, 0, 0, 100, 100);
g.Dispose();
MakeTransparentを呼び出すと、その後のGraphicsオブジェクトを利用しての描画が出来ないのですが、どうしてでしょうか?
764:デフォルトの名無しさん
05/01/16 17:52:13
Graphicsオブジェクトを作ってからbmpに変更を加えているコードに違和感を感じる。。。
765:デフォルトの名無しさん
05/01/16 23:25:50
質問です。
マイク端子から音声を取り込むのってどうやるんですか?
766:デフォルトの名無しさん
05/01/16 23:34:49
>>765
↓こっちで聞いた方がいいと思われ。
Managed DirectX vol.2
スレリンク(tech板)
767:デフォルトの名無しさん
05/01/16 23:37:50
>>765
この辺。
1)Win32APIでやる(C#である意味がかなり薄れるとは思うが)
URLリンク(wisdom.sakura.ne.jp)
2)Managed DirectXでやる
URLリンク(www.microsoft.com)
768:デフォルトの名無しさん
05/01/17 11:14:41
>>766
>>767
ありがとん。
769:デフォルトの名無しさん
05/01/17 14:41:07
static なArrayListのCountを覗こうとするとエラーがでるんですが
例
class Test
{
static ArrayList momo = new ArrayLIst();
static int Count { get { return Test.momo.Count; } }
}
こんな感じで何かしらAddしたものがあればエラーはでないんですが、
0だと駄目です。
trycatchでつかもうとしても駄目。
メッセージ
'System.ArgumentOutOfRangeException' のハンドルされていない例外が system.windows.forms.dll で発生しました。
追加情報 : 指定された引数は、有効な値の範囲内にありません。
770:デフォルトの名無しさん
05/01/17 16:33:51
>>769
初期値をいれ時計
771:デフォルトの名無しさん
05/01/17 19:27:43
すまんが、C#だと
catch(Exception e)で全部もれなく捕らえられるんでしょうか?
772:デフォルトの名無しさん
05/01/17 19:38:16 ,
>>769
予言するけど、それは多分別の箇所でmomo[0]とかしているせい。
momo を static プロパティにでもして get に breakpoint 置いて見てみるべし。
773:デフォルトの名無しさん
05/01/17 21:10:20
>771
できます。
throwできるのはSystem.Exceptionから派生したクラスのインスタンス、またはnullだから。
用途によってはcatchの後を省略してもオケー
private void Form1_Load(object sender, System.EventArgs e)
{
try
{
Nullpo();
}
catch
{
MessageBox.Show("ガッ");
}
}
private void Nullpo()
{
throw null;
}
774:デフォルトの名無しさん
05/01/18 19:54:35
ArrayL"I"st
775:デフォルトの名無しさん
05/01/18 20:19:07
>>771
捕まえても逃げるものがあるから注意よん
ThreadAbortException とか
776:デフォルトの名無しさん
05/01/18 23:08:21
>>775
確認のために聞きたいのですが、「捕まえても逃げる」っていうのは
> ThreadAbortException は、キャッチできても、 catch ブロックの末尾でもう一度自動的に発生する特殊な例外です。
ってことを言ってます?
URLリンク(www.microsoft.com)
777:デフォルトの名無しさん
05/01/19 12:06:00
>>775
とか?とかなのか?
778:デフォルトの名無しさん
05/01/19 19:56:57
例外だけに例外がありました。
779:デフォルトの名無しさん
05/01/19 20:19:45
( ´д)ヒソ(´д`)ヒソ(д` )ヒソ
780:デフォルトの名無しさん
05/01/20 01:41:24
冷害
781:デフォルトの名無しさん
05/01/20 21:02:08
Regex reg = new Regex(pat , ここのオプション );
というのが沢山在るんですが、オプション部分が全て同じなので、
変数を使いたいのですが、変数って使えますか?
RegexOptions option = RegexOptions..IgnoreCase | RegexOptions.ExplicitCapture;
のようにしてみたけどやっぱりエラーでした
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5311日前に更新/230 KB
担当:undef