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

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

前スレ: ふらっとC♯, C#(初心者用) Part14
http://pc11.2ch.net/test/read.cgi/tech/1172662746/
2デフォルトの名無しさん:2007/04/12(木) 23:15:31
Visual C# Express Edition (無料)ダウンロード
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

.NET Framework SDK (2.0)
http://msdn2.microsoft.com/ja-jp/library/ms310244.aspx

MSDN Visual C# Express Edition フォーラム
http://forums.microsoft.com/msdn-ja/ShowForum.aspx?ForumID=187&SiteID=7
Visual Studio ユーザーグループ
http://vsug.jp/

@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/index.html

宇宙仮面の C# プログラミング / C# Programming
http://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
http://wisdom.sakura.ne.jp/programming/cs/index.html
WisdomSoft Microsoft .NET入門
http://black.sakura.ne.jp/~third/system/msnet/msnet.html
どっとねっとふぁん
http://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
http://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
http://dobon.net/vb/dotnet/
.NET のつぼ
http://park16.wakwak.com/~mimi/dotnet/top.html
3デフォルトの名無しさん:2007/04/12(木) 23:16:10
4デフォルトの名無しさん:2007/04/13(金) 03:14:27
なんだかよくわからないけど、>>1
5デフォルトの名無しさん:2007/04/13(金) 03:17:20
ttp://www.atmarkit.co.jp/fdotnet/easyvs2nd/easyvs2nd01/easyvs2nd01_01.html
第1回 初めてのVisual Studio 2005

ハローワールドなボクですがこれくらいはできました。
6デフォルトの名無しさん:2007/04/13(金) 17:37:16
TabControlのページにWebBrowserを表示させています。
よくあるタブブラウザです。

タブを選択したとき、WebBrowserがマウスウィールで動くようにしたいん
ですが、どうしたらいいでしょうか?

SelectedイベントでWebBrowserにFocus()してもうまくいきません。

お願いします。
7デフォルトの名無しさん:2007/04/13(金) 23:07:21
.NET Framework 1.0/1.1のListViewコントロールでは
MFCのCListCtrl::SetItemCountのように、リストにあらかじめ
アイテム数を設定しておくようなメソッドは無いのですか?
8デフォルトの名無しさん:2007/04/14(土) 02:45:53
>>7
それでどうなるのか知らんが、空文字列の ListViewItem でも突っ込んどけばいいんじゃね
9デフォルトの名無しさん:2007/04/14(土) 11:19:51
>>8
本格的にやるなら仮想リストを使うべきだが
そうしなくても
大量にアイテムを挿入するときに速くなる。
10デフォルトの名無しさん:2007/04/14(土) 11:48:32
意味がわからない。
普通に考えて早くなる理由がないと思うんだが。。

SetItemCountでググってみてもそのように書いてあるところが見つかるし。
11デフォルトの名無しさん:2007/04/14(土) 17:56:18
大量に挿入したい時は AddRange か BeginUpdate 使っとけ。
12デフォルトの名無しさん:2007/04/14(土) 19:34:00
10件まとめて設定するのは遅いけど
1000件まとめて設定するのは速いんだよ






いやまじで
13デフォルトの名無しさん:2007/04/14(土) 21:20:13
ThreadStateがSuspentedのスレッドをAbortメソッドで終了させようとすると例外が発生します
中断中のスレッドを終了させる場合、どんな手段が適切でしょうか
14デフォルトの名無しさん:2007/04/14(土) 21:23:21
なんでサスペンドなんかさせてるわけ?
15デフォルトの名無しさん:2007/04/14(土) 21:25:02
適切な方法はAbortなんか使わずに強調的におだやかに終了すること。
ただまあ、場合によっては強制終了させざるをえないこともあるので、
そういう場合は仕方なくAbort。

それ以外のサスペンドとか、そんなものはそもそも使わない。

16デフォルトの名無しさん:2007/04/14(土) 21:25:34
強調的>協調的
17デフォルトの名無しさん:2007/04/14(土) 22:03:17
while(true)
{
 this._CntA++;
 this.textBox1.AppendText(this._CntA + "回目のThreadA" + "の出力です。\n");
 Thread.Sleep(600);
}

こんな感じのメソッドを回していました
あと、トグルスイッチ風ボタンでスレッドを止めたり動かしたりしたかったのでサスペンドを使いました
18デフォルトの名無しさん:2007/04/14(土) 22:11:54
タイマの方が適してる用途のような気が。。
19デフォルトの名無しさん:2007/04/14(土) 22:21:48
あああ、もしかしてすごい勘違いをしていたかもしれない
メインスレッド(フォーム?)からスレッドAとスレッドBを起動したとして、
スレッドA,Bが動作中にユーザがフォームを閉じたとしても、
Closingイベントにスレッド終了コードのようなものは書かなくてもいいのかな?
20デフォルトの名無しさん:2007/04/14(土) 22:24:56
スレッドがバックグラウンドならね。
っていうか、そんなことも知らずにスレッド使ってるのか。
キチガイに刃(
21デフォルトの名無しさん:2007/04/14(土) 22:34:20
スレッド自体は最終的に自動終了されるが、
そもそも閉じたら動いちゃいけない処理とかもあるでしょ、大抵は。
※そりゃほんとに大丈夫ってこともないこたないが、普通は適切な条件で終了するようにする。

ていうかよ>>17なんて突っ込んだらいいのか…
22デフォルトの名無しさん:2007/04/14(土) 22:36:47
あと、スレッドの操作はなるべく
同期用「オブジェクトなどを使って自立的に行うべき。
どうしようもない場合は仕方ないが。
23デフォルトの名無しさん:2007/04/14(土) 22:37:00
>>21
日本語書けよ
246:2007/04/15(日) 02:33:52
すいません。
どなたかお願いします。
いまだにできません。
25デフォルトの名無しさん:2007/04/15(日) 11:58:15
>>24
プロジェクトUP
26デフォルトの名無しさん:2007/04/15(日) 13:15:26
>>24
なんかできる時とできない時あるな…
ちなみに Selected イベントじゃなく SelectIndexChanged な。
27デフォルトの名無しさん:2007/04/15(日) 13:54:49
それ以前に、言っちゃ悪いけど>>6の日本語には問題あるだろ。
マウスウィールは良いとしても、「WebBrowserが〜動く」っていうのは
どういう状態のことを差してるんだよw

基本的に、人語すら正確に操れない奴が融通利かねえマシン相手の言語を
使えるわけがないと思う。
28デフォルトの名無しさん:2007/04/15(日) 13:58:31
輪路他
29デフォルトの名無しさん:2007/04/15(日) 16:48:42
ある関数を変数配列にいれて、関数を引数にする関数とかで使いたいんですがEventHandler()とか
関数の配列宣言って具体的にどうやるんでしょうか?教えてください。
30デフォルトの名無しさん:2007/04/15(日) 16:51:47
delegate void Func();
Func[] func;
3129:2007/04/15(日) 16:55:26
ありがとうございます
32速報+:2007/04/15(日) 17:23:59
ニュース満載 "速報+" 板

ニュース速報+ 板
http://news22.2ch.net/newsplus/
芸能音楽スポーツ速報+ 板
http://news21.2ch.net/mnewsplus/
東アジアニュース速報+ 板
http://news21.2ch.net/news4plus/
ビジネスニュース+ 板
http://news21.2ch.net/bizplus/
科学ニュース+ 板
http://news21.2ch.net/scienceplus/
33デフォルトの名無しさん:2007/04/15(日) 18:51:00
壁紙の変更の方法教えて下さい
ググッたけど見つからなかったもので
34デフォルトの名無しさん:2007/04/15(日) 18:57:09
>>33
俺がググったらすぐ見つかった。ググり直せ。
35デフォルトの名無しさん:2007/04/15(日) 19:10:44
>>33
「C# 壁紙の変更」でググッたら見つかるが?
36デフォルトの名無しさん:2007/04/15(日) 19:18:24
>>34
>>35
ググったけどよくわからん
C++のSystemParametersInfo(SPI_SETDESKWALLPAPERのC#版教えて
37デフォルトの名無しさん:2007/04/15(日) 19:18:32
見つかったなら、ここに貼れよ。愚図。
38デフォルトの名無しさん:2007/04/15(日) 21:18:06
39デフォルトの名無しさん:2007/04/16(月) 01:53:37
質問です。
DataGridViewの全セルのサイズ(縦、横)を揃えたいのですが、
コード上でどのように設定すればよいのでしょうか?
碁盤目状のものを作りたいのですが、ご存知の方がおりましたら
よろしくお願いします。
40デフォルトの名無しさん:2007/04/16(月) 12:34:52
C#2005 ExpressEditionのフォームデザイナで、メニューを追加し、
メニューの項目を日本語で設定すると、関連するイベントハンドラの
名前などもコード上に日本語で生成されますね。
英語圏なら問題ないでしょうが、これはある意味バグですね。
しかし、メンバ名が日本語でもコンパイルできるんですね。驚いた
41デフォルトの名無しさん:2007/04/16(月) 12:41:58
そこまでして人に構ってもらいたい自分が嫌にならないとしたらおめでたい奴だな。
42デフォルトの名無しさん:2007/04/16(月) 13:16:43
MaskedTextBoxで全選択状態(反転表示)を実現しようと
模索しております。色々なサイトを検索してGot Focusイベント
にてSelectAllを使用すれば実現出来る事は確認しました。

しかし、Got Focusイベントは低水準イベントで使用することを
推奨できない かつ FormがActiveになるとGot Focusイベント
が発生する。この2つの理由でお手上げ状態です。

コントロールをMaskedTextBox -> TextBoxに変更して正規
表現で入力チェックを行えば済ことなのですが…

MaskedTextBoxで全選択状態(反転表示)の実現方法は
あるのでしょうか?
43デフォルトの名無しさん:2007/04/16(月) 13:47:48
>>42
MaskedTextBoxだろうがTextBoxだろうがSelectAll()同じように効くはずだけど?
もしかしてボタンクリックでSelectAllしてない?

SelectAll() の前に Focus()すれば済む話しだったりして?
44デフォルトの名無しさん:2007/04/16(月) 14:03:10
>>43
Tabでフォーカスを移動したときです。
45デフォルトの名無しさん:2007/04/16(月) 14:27:13
勘違いしてるみたいだけど、
MaskedTextBoxとTextBoxとでSelectAllの挙動に違いは見られない。

>FormがActiveになるとGot Focusイベント
ってのは単にMaskedTextBoxがActiveControlなだけのはなしでしょ。
それがいやなら適切なタイミングで
Form.ActiveControlを他のコントロールに設定すればいい。


private void maskedTextBox1_Enter( object sender, EventArgs e )
{
    this.maskedTextBox1.Focus();
    this.maskedTextBox1.SelectAll();
}

ってすればいいだけじゃね
EnterじゃなくてGotFocusでもいい
46デフォルトの名無しさん:2007/04/16(月) 14:49:20
>>45 ご教授に感謝
47デフォルトの名無しさん:2007/04/16(月) 20:12:58
どなたか教えてください

ProcessStartInfo startInfo = new ProcessStartInfo(IEXPLORE.exe);
startInfo.Arguments = "http://localhost/WebApplication1/version.html";

Process.Start(startInfo);

と言うように、Processを使ってIEを起動した場合、targetは指定できないのでしょうか?
何度も新規ウィンドウを表示したくないのですが・・・
48デフォルトの名無しさん:2007/04/16(月) 20:19:06
もう一つ質問です。

C#のコードで、現在開いている特定のブラウザ(IE)を閉じる事はできますか?
連続質問で申し訳ありません・・・
49デフォルトの名無しさん:2007/04/16(月) 20:20:01
50デフォルトの名無しさん:2007/04/16(月) 20:27:58
>>47
出来ない

>>48
FindWindow で IE 捕まえて WM_CLOSE 投げる
5147:2007/04/16(月) 20:31:14
>>49
その記述だと、target指定できるのでしょうか?

>>50
ありがとうございます、FindWindow 関連を調べてみます。
52デフォルトの名無しさん:2007/04/16(月) 20:49:20
targetって何だよ
53デフォルトの名無しさん:2007/04/16(月) 20:51:42
たぶん<a target="hogehoge" 〜>のことかと思われ
5447:2007/04/16(月) 20:56:14
>>52
targetは>>53 のことです。

>>50
申し訳ありません。
FindWindow や WM_CLOSE はC#で使用できるものでしょうか?
55デフォルトの名無しさん:2007/04/16(月) 20:59:29
>>54
できる
56デフォルトの名無しさん:2007/04/16(月) 21:01:20
>>47
DDE使えばいいんじゃね?

なんかものすごい旧時代を感じさせられる名前だがw
57デフォルトの名無しさん:2007/04/16(月) 21:05:02
>>55

すいませんありがとうございます
58デフォルトの名無しさん:2007/04/16(月) 21:37:16
数十K〜数MByte分のbyte配列をsbyte配列に変換、またはその逆にするのに、
byte[] data;   //元のデータ
sbyte[] sdata = new sbyte[data.Length];   //変換後のデータ
for (int i = 0; i < data.Length; i++)
{
    sdata[i] = (sbyte)data[i];
}

といったように素直にキャストしていくのと、

[StructLayout(LayoutKind.Explicit)]
public struct ChangeArray
{
    [FieldOffset(0)]
    public byte[] Data;
    [FieldOffset(0)]
    public sbyte[] SData;
}

    byte[] data;   //元のデータ
    sbyte[] sdata = new sbyte[data.Length];   //変換後のデータ
    ChangeArray ca = new ChangeArray();
    ca.Data = data;
    sdata = ca.SData;

という風に変換するのとでは、どちらが速いでしょうか?
59デフォルトの名無しさん:2007/04/16(月) 21:41:51
前者は間違いなく遅い。
後者は動作が保証されない。

Buffer.BlockCopy しとけ。
60デフォルトの名無しさん:2007/04/16(月) 21:42:27
やればすぐ結論がでることをやらずにわざわざ人に質問する君の神経は理解不能だな
61デフォルトの名無しさん:2007/04/16(月) 21:53:29
>>59
>後者は動作が保証されない。 
そうなんですか…
Buffer.BlockCopyっていうものの存在を知らなかったので
どうしようかずっと悩んでました。
ありがとうございました。

>>60
今コンパイラがないもので、試そうにも試せません(インスコしようにも制限がかかってる) orz
62デフォルトの名無しさん:2007/04/16(月) 22:19:43
スレの流れと全く関係なくてすまんが、
プログラム板って他の板に比べて格段に優しい人が多いね。
正直ちょっと感動した。
63デフォルトの名無しさん:2007/04/16(月) 22:30:00
黙れカス
64デフォルトの名無しさん:2007/04/16(月) 22:45:54
いや、
>後者は動作が保証されない。

これって本当か?
この.NETの構造体を共用体的に使うテクニックって
割と一般的に用いられていると思うんだけど。

まあでも>>58の意図が不明なんでなんともいえないが、変換(?)後のデータを
破壊的に使っても変換前のデータまで壊れないようにしたいのなら
unsafe使ってコピーとか、そういう方法の方が良いのは確かだけど。
65デフォルトの名無しさん:2007/04/16(月) 22:55:16
>>64
よく見れ。
値型を重ねるなら意味分かるが、>>58で重ねているのは値型の配列だ。
66デフォルトの名無しさん:2007/04/16(月) 22:57:58
参照型には使っちゃいかんのよ。
しかしドキュメントにはろくすっぽ記述がないんだよな。
『Unions のサンプル』に「参照型の場合には明示的なレイアウトが許されないからです。」と書かれてるくらい。
67デフォルトの名無しさん:2007/04/16(月) 23:03:24
ここは>>59の言うとおり、Buffer.BlockCopy()一択だろう。
68デフォルトの名無しさん:2007/04/16(月) 23:16:37
>>67
いや「コピーしない」と言う選択肢もある
69デフォルトの名無しさん:2007/04/16(月) 23:16:56
下記のサイトでテキストボックスの入力制限に関して
サンプルコードが載っていますが、最初にイベントハンドラを解除して、
最後に再設定しなおしている理由が分かりません。何故でしょうか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10370&forum=7
70デフォルトの名無しさん:2007/04/16(月) 23:19:37
>>58-
unsafe
fixed
最強
71デフォルトの名無しさん:2007/04/16(月) 23:24:59
>>69
TextChangedイベントハンドラ内でTextを変更しているから。
そうしなければその時点でTextChangedイベントが発生して無限ループ。

だがいいコードではないと思う
72デフォルトの名無しさん:2007/04/16(月) 23:27:39
>>69
TextChanged イベントハンドラの中で Text プロパティの値を変更すると、そこでさらに
TextChanged イベントが発生してしまう。
さらにそのイベントハンドラのの中で Text プロパティの値を変更……と、延々とTextChanged イベントが
発生し続け、しまいにはStackOverflowExceptionでアプリケーションが落ちる。

試しに適当なフォームにTextBoxを配置して、TextChanged イベントハンドラの中で
textBox1.Text += "A";
とでもやってみ。
73デフォルトの名無しさん:2007/04/16(月) 23:30:16
>>65-66
ああなるほど。
ではMarshalAs属性でUnmanagedType.ByValArrayを指定すればCと同じように
構造体の中に参照ではなく配列そのものが確保されるようになるのかな。

それともこの属性の意味は、あくまでアンマネージコードを呼び出す前後の
変換方法を指示しているだけになるのか?
74デフォルトの名無しさん:2007/04/16(月) 23:32:00
unsafe指定すればcなんかと同じように構造体の中に配列を確保できる。
尤も固定長に限られるけど。
75デフォルトの名無しさん:2007/04/16(月) 23:38:20
>>71
>>72
ありがとうございます。理解できました。
日本語とアルファベットを交互に入力して
文字数制限するいい方法が他に思いつきませんが、
このサイトの方法でとりあえず使ってみます。
76デフォルトの名無しさん:2007/04/16(月) 23:39:08
>>73
マーシャリングにのみ関わってくる属性のような気がする。
77デフォルトの名無しさん:2007/04/16(月) 23:49:47
>>73
>それともこの属性の意味は、あくまでアンマネージコードを呼び出す前後の
>変換方法を指示しているだけになるのか?

正解。

CLR管理下で特殊なメモリイメージを作りたいというのなら、
アンセーフだが一応こういう方法はある。あと固定長専用。

[StructLayout(LayoutKind.Explicit)]
public unsafe struct ChangeArray
{
[FieldOffset(0)]
public fixed byte Data[128];
[FieldOffset(0)]
public fixed sbyte SData[128];
}

ttp://msdn2.microsoft.com/ja-jp/library/zycewsya(VS.80).aspx
7877:2007/04/16(月) 23:51:06
すまん、>>74で既出だったな。
79デフォルトの名無しさん:2007/04/17(火) 00:07:40
でも fixed は配列 (System.Array 派生型) じゃなくてポインタなのよね
80デフォルトの名無しさん:2007/04/17(火) 00:08:57
それは勿論だろ。Arrayは参照型だからそんなことろに組み込みようがない。
8139:2007/04/17(火) 00:26:24
質問の仕方が悪かったかな?
C♯, C#相談室 で聞くべき?
82デフォルトの名無しさん:2007/04/17(火) 00:31:29
>>81
プロパティのMaxWidthを変更
83デフォルトの名無しさん:2007/04/17(火) 01:56:48
プログラミング初心者なんですけど、プログラミングを始めるにあたって、どの言語で始めればよいか迷っています。
候補はC#・VB・JAVAです。
ゆくゆくはC言語とC++も学びたいと考えています。
ということはやっぱりC#から始めるのがいいのかなと思って、こちらに投稿してみました。
だけど本屋にはC#の本は少ないですね。
JAVAとVBは多いです。
だからC#がよさそうだとは感じながらも、ちょっと心配もしているのです。
84デフォルトの名無しさん:2007/04/17(火) 02:02:24
C#おすすめですよ。
VisualC# Express EditionはMSから無料で落とせます。
C#を一通りやったら、ポインタの概念を勉強するためC++ or Cをかじりましょう。
書籍は、Amazonで探せば結構あります。
85デフォルトの名無しさん:2007/04/17(火) 02:09:23
>>83
VBはMSも無理やり繋げてる状態
java・C#は似てるからどっちか覚えれば違和感無く書ける
つかrubyも選択肢に入れてあげて
86デフォルトの名無しさん:2007/04/17(火) 07:32:25
Lispやろうぜ
87デフォルトの名無しさん:2007/04/17(火) 14:51:24
??演算子使ってる?
地味に便利そうなんだけど,
ついつい存在を忘れて a != null ? a : "nullですよ";ってやっちゃう
88デフォルトの名無しさん:2007/04/17(火) 15:22:20
>>87
むしろ君が普通ではないと思う 俺は異端児?
89デフォルトの名無しさん:2007/04/17(火) 16:15:43
フーン。便利なら使えばいいんじゃないの?
そんなの
a = a + 1;
a += 1;
a++;
程度の問題だべ。それよりちょっと聞いてくれよ。
俺は何かと何かが混ざったようなC#なんて特に触りたくもないんだが、
言語仕様を見たらtrueとfalseが演算子だって?

こんな構文になるのか?フーン
public class Hoge {
public static bool operator true(Hoge t){
}
,..(もちろんfalseも定義)
};

Hoge hoge = new Hoge();
...
if(true hoge) {
...
}
90デフォルトの名無しさん:2007/04/17(火) 16:26:48
ならんよ。true/false演算子はあたかもBoolean型への暗黙的変換のように振舞う。
91デフォルトの名無しさん:2007/04/17(火) 16:43:25
横レスだけど,implicit operator boolとどう違うの?
試してみても,動作は同じに見えるんだけど
92デフォルトの名無しさん:2007/04/17(火) 16:50:21
true/false演算子に同じ値を返すことで、4つまでの状態を表せる。
trueかつfalseってのは意味的に使い道がなさそうだが、
trueでなくfalseでもない値を導入すればtriboolのようなものになる。
93デフォルトの名無しさん:2007/04/17(火) 17:38:51
>>90
済まないが、ちょっと分からない。
bool型への暗黙的型変換?
暗黙的型変換の例としては
double d = 10.5;
int i;
i = d;
(iは10になる)

明示的なら
a = (bool)false;
だが、これは禁止されている。

仕様書には
A unary true or false operator must take a single parameter of type T and must return type bool.
だから、クラスHogeに演算するときは
true Hoge 又は false Hoge
となって、戻り値はbool型になる(後置演算かもしれないが分からない)。これではちょっと混乱してしまう。
例示してほしいのだが、いかがか?
94デフォルトの名無しさん:2007/04/17(火) 17:43:30
× a = (bool)false;
○ bool b = (bool)i;
95デフォルトの名無しさん:2007/04/17(火) 18:10:21
>>93
true/false演算子が使えるのは条件が必要な場所、つまり、if(), do-while(), while(), for(;ここ;) や ?:演算子の第一オペランド。
operator trueが呼び出されて、bool型に暗黙的に変換されたかのように振舞う。

たとえば、型Tにtrue/false演算子が定義されていれば、
| T t;
| if(t) { }
| int a = t ? 0 : 1;
のようなことが出来るようになる。

尤もC#ではop_Falseを使えないから、これだけでtribool的なものは作れないんだけどね。
9693:2007/04/17(火) 18:23:42
>>95
ありがとうッス。これで疑問が晴れた。
例えば、C++だと!演算子をオーバーライドするんだが、
それじゃ気持ち悪かったのかな?>M$
97デフォルトの名無しさん:2007/04/17(火) 18:30:37
!に否定以上の意味を持たせると混乱の元だし、true演算子の代用にはならんだろ。
98デフォルトの名無しさん:2007/04/17(火) 18:40:40
C#ってそんな機能あるんだw

一見便利に見えて、実はタイピング量を減らすという僅かなメリットと引き換えに
混乱をもたらすだけの機能に思えるけどなあ。

VB6の「デフォルトのプロパティ」と同列の堕落じゃん。
99デフォルトの名無しさん:2007/04/17(火) 18:41:18
>>97
いや、STLにのInputFileStreamクラス(だったかな?)があって、
InputFileStream ifs(...
...
if(!ifs) { // ←ファイルがオープンされてるかどうか
// エラー処理
}

というのは半ば常識なんで、STLerで知らない人はあまり居ないと思う。
確かに初心者には変な構文なので、独学だと混乱するかもね。
100デフォルトの名無しさん:2007/04/17(火) 18:50:00
>>98
boolにように働く型を作るための機能だから問題ないと思うが。
というか、そもそもこれはCLIの機能であってC#は申し訳程度にサポートしてるだけのような気がする。
101デフォルトの名無しさん:2007/04/17(火) 19:11:45
>CLIの機能
ほんまかよっ
102デフォルトの名無しさん:2007/04/17(火) 20:53:37
あいうえお[改行]
かきくけこ[EOF]

上記の文字列をバイナリファイルとして出力して、再度読み込み、
バイナリをテキストに置換して各行を配列に保持したいのですが、
どのようにすればよいでしょうか?
具体的なソースを教えてくださると嬉しいです。
103デフォルトの名無しさん:2007/04/17(火) 21:17:21
>>102
>バイナリファイルとして出力して
どういうフォーマットのバイナリファイルなのか明確にしてくだされ。
というか、テキストファイルもバイナリファイルの一種ですぜ。
104デフォルトの名無しさん:2007/04/17(火) 21:21:17
>あいうえお[改行]
>かきくけこ[EOF]

>上記の文字列をバイナリファイルとして出力して、

この発想はなかったぜ…
105102:2007/04/17(火) 21:34:33
>>103
BinaryWriterクラスを使って文字列をファイルに書き出して、
そのファイルをそのまま読み込みます。
文字列の内容は日本語(2バイト)と英語(1バイト)が含まれており、
間に改行も含みます。

>>104
絶句させるような事を書いてしまいましたか…?
106デフォルトの名無しさん:2007/04/17(火) 21:39:33
テキストファイルはバイナリファイル
107デフォルトの名無しさん:2007/04/17(火) 21:48:46
stringが手に入ってるなら改行文字でスプリットしたら?

普通はStreamReaderでReadLineするんじゃね
108102:2007/04/17(火) 22:05:02
>>106
これ以上どう言っていいか分かりません。

>>107
下記のような感じで読み込むのでしょうか?

using namespace System.IO;

void readBinaryFile(string filename)
{
  FileStream reader = new FileStream(filename, FileMode.Open, FileAccess.Read) ;

  string tmp;

  while(ストリームの終わりまで){
    tmp = reader.ReadLine();
    tmpを文字列に変換;
    配列に格納;
  }

  reader.Close() ;
}
109デフォルトの名無しさん:2007/04/17(火) 22:28:08
File.WriteAllLines()
File.ReadAllLines()
でいいよ。
110デフォルトの名無しさん:2007/04/17(火) 22:32:45
> BinaryWriterクラスを使って文字列をファイルに書き出して、
この理由が分からん
111デフォルトの名無しさん:2007/04/17(火) 22:33:58
質問ですがbitmapを下のように書いて拡大するように表示しようと思ったのだが
全体に0.5pixelズレたよに表示されてしまう、なんでなんだろ?

e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
e.Graphics.DrawImage(bitmap,new Rectangle(0,0,128,128),
new Rectangle(0,0,64,64),System.Drawing.GraphicsUnit.Pixel);
112デフォルトの名無しさん:2007/04/17(火) 22:36:01
>>100
確かにこれは3値論理型を作るためだけの機能ですね。
false演算子のオーバーロードは今のC#からは使用されてないと思う。
C#3.0でunlessが追加になるらしいのでこれで使うことになるのだろうか。
他にVBのDo Untilで使ってそうな気がするが今度試してみる。
113デフォルトの名無しさん:2007/04/17(火) 22:37:33
>>111
最近傍補間がそういう補間アルゴリズムだから。
まあ、双一次補間でも双三次補間でも同じようになるんだが。
114デフォルトの名無しさん:2007/04/17(火) 23:14:02
>>113
さんくす、補間アルゴリズムが原因だったんですか。

他の補間モードを使ってもずれるし、
自前で拡大したビットマップを作って描画するとかしかないのかなぁ
115デフォルトの名無しさん:2007/04/17(火) 23:51:41
>>109
全ての文字列を読み込む関数があったんですね。
ありがとうございます。

>>110
理由は宿題で決まっていたからとしか…。
116デフォルトの名無しさん:2007/04/18(水) 02:33:18
>>114
補間がどうこうもあるけどたぶん大元の理由は、ラスタイメージが基本的に
1pixelの離散座標系なので、実数座標系ではその幅の半値分ずれること。
実数だと(0,0)は大きさを持たない点であるのに対しラスタは幅1の四角
だからね。1pxの線を描こうとか言うときによく問題になるんだけども。

細かく追っていくとサンプリングの座標とかターゲットの座標を追わないと
いけないんでやらんけど、たぶんその辺が原因じゃねーかな。

修正したいなら文字通りどこか0.5ずらしてやればいいだけだとオモ。
感覚的には…うーん、ターゲット座標?
117デフォルトの名無しさん:2007/04/18(水) 09:48:37
質問です。
FormのBoundsプロパティで大きさを変更しようとしたんですが
幅が125ピクセルより小さく設定できないようです。
これより小さくするにはどうすればいいんでしょうか?
118デフォルトの名無しさん:2007/04/18(水) 10:05:36
>>117
FormBorderStyleをSizable以外にする
119117:2007/04/18(水) 10:11:29
>>118
実際はFormBorderStyleがNoneであるようなウインドウをつくりたいんですが、
それでも同じでした。
120デフォルトの名無しさん:2007/04/18(水) 10:58:42
>>119
FixedToolWindowかSizableToolWindowじゃないと
SystemInformation.MinimumWindowSizeより小さくできないらしい。
121117:2007/04/18(水) 11:28:13
>>120
あら、そうなんですか。
ツールチップ的な小さいウインドウをつくろうとしたんですが
無理ってことですか・・・
どうもありがとうございました。
122デフォルトの名無しさん:2007/04/18(水) 12:37:13
D&Dに関してです。

Dropした先のコントロールなり外部アプリケーションから
ソース側にDropしたことを知らせるために
  QueryContinueDrag イベント
が発生して、引数 QueryContinueDragEventArgs に対して
  Action プロパティ
に Drop が帰ってくるのですが、このときに、
アイテムの 「移動」 をした場合はこれを知ってソース側でそのアイテムを
削除(Remove)できると Help に書かれていました。

 -------
 ● DragAction の値が Drop の場合、ドロップ効果の値がソースに返されます。
   ソース アプリケーションでは、ソース データに対して適切な操作を実行できます。
   たとえば、移動操作だった場合は、データの切り取りなどを実行できます。
 -------

これを実装したのですが、その際、この QueryContinueDrag イベント
のハンドラー内で、「移動」 だったのか 「コピー」 だったのかを知るには
どうすればいいでしょう?このイベントでは、DragDropEffects 列挙体型の
値を受け取れるでしょうか?よろしくお願いします。
123デフォルトの名無しさん:2007/04/18(水) 12:38:41
>>122訂正 >これを実装したのですが -> これを実装したいのですが
(失礼しました)
124デフォルトの名無しさん:2007/04/18(水) 12:56:30
>>121
SetWindowPosでやればいくらでも
125117:2007/04/18(水) 13:07:51
>>124
おお、できました。
サンクスです。
126デフォルトの名無しさん:2007/04/18(水) 13:48:51
あるメソッドの中で間違ってnullのオブジェクト変数を使ってそのオブジェクトのメンバに値を入れてたんだけど、
デバッグしてる時に全然例外をスローしないで、そのまま動いてるんだよ。
しかも、メソッド内の処理はその間違った処理のところで終了し、メソッドを出てしまう。
まぁ例外処理だから、処理を中断し、そこから出てしまうんだろうね。そこは分かる。
でもtry{}catch{}はどこにも書いてないのに、なんでそのまま正常に動いてるんだろう。。。
おかげでバグを発見するのに時間がかかった。。
127デフォルトの名無しさん:2007/04/18(水) 14:13:32
コード見せてみ
128デフォルトの名無しさん:2007/04/18(水) 14:15:50

classA instance;
instance = null;
instance.method;

こんな感じなの?
129デフォルトの名無しさん:2007/04/18(水) 14:38:55
if(this.smpObj != null)
 this.smpObj = new SmpObject(20, 550) ;
else{
 this.price = 20 ;   //@
 this.quantity = 550 ;
}

こんな感じですね。つまりif条件文の「==」とすべきところを「!=」と間違えていたわけですが。
@を実行後、メソッドから突然抜けてしまったので、例外がスローされたんだと思いますが、
キャッチしてないはずなのに、デバッグはそのまま動き続けてました。
130129:2007/04/18(水) 14:40:35
if(this.smpObj != null)
 this.smpObj = new SmpObject(20, 550) ;
else{
 this.smpObj.price = 20 ;   //@
 this.smpObj.quantity = 550 ;
}

間違えました。こうです
131デフォルトの名無しさん:2007/04/18(水) 14:47:27
例外だそうとして考え込んじゃったんじゃないの?
しばらく待ってたら止まったかも
132デフォルトの名無しさん:2007/04/18(水) 15:08:44
二つほど質問があります。

 1.GraphicsインスタンスをuseingやClose()で手動で破棄している
  サンプルコードが多いのですが、ガベージコレクションに任せないのは
  なぜでしょうか?
 2.Graphics以外にも手動でインスタンスの破棄を行ったほうが良いクラ
 スはあるのでしょうか?

以上です。よろしくお願いします。
133デフォルトの名無しさん:2007/04/18(水) 15:15:58
ファイルIO
134デフォルトの名無しさん:2007/04/18(水) 15:19:11
>>132
Dispose(と同等のClose)やusingで破棄するのはインスタンスではなく
インスタンスが保持しているアンマネージリソース。
インスタンス自体の破棄はGC任せ。
基本的にDisposeが実装されているオブジェクトは不要になったらDisposeした方がいい。
135デフォルトの名無しさん:2007/04/18(水) 15:20:14
>>122 VBスレで回答戴いていました、どうもありがとうございました。
136デフォルトの名無しさん:2007/04/18(水) 17:17:51
>>112
次のケースでfalse演算子が使われるのを確認。
& 2項演算子 + true演算子 + false演算子を定義すると && 演算子が使用できるようになる。
式 A1 && B1 で
最初にA1がfalse演算子で検査されfalseであればB1は評価されない。

なおVBのDo Untilもtrue演算子を使っていました。
137デフォルトの名無しさん:2007/04/18(水) 19:26:04
>>131
それが、そのまま他の処理を続けてたんですよね、ずっと。
138デフォルトの名無しさん:2007/04/18(水) 20:40:40
C#  には #include "ファイル名"
とか出来ないんでしょうか? 色んなプロジェクトから 初期化共通項目として
1つのファイルから読み出したいんですが struct とか const なんかを
139デフォルトの名無しさん:2007/04/18(水) 20:45:22
つ クラスライブラリ
共通の要素をアセンブリにまとめて、各プロジェクトで参照しる。
140デフォルトの名無しさん:2007/04/18(水) 21:04:58
>>139
ありがとうございます
クラスライブラリーでdll作って、参照の追加すればいいんですね
141デフォルトの名無しさん:2007/04/18(水) 22:10:02
おれっちVisual C#の本を四冊持っているがどれにも
dllの記述がない。うち2冊は糞本であることが
購入2日くらいでわかった。もう少し落ち着いて
買うことにする。
142デフォルトの名無しさん:2007/04/18(水) 22:46:01
>>137
メソッドをその場で抜けてるって言ってんのにそのまま処理を続けてるって…
「どこから」処理を続けてるんだよ

そのプログラムは、どこに書いてる?
ASP.NET?Windowsアプリ?
その中のどういうところに書いてるコード?

ちなみにメニューのデバッグの例外でスローされるとき中断にしとけば、
スロー時に即デバッガで停止されるのでまず確認できると思うぞ。
143デフォルトの名無しさん:2007/04/19(木) 00:19:41
>>138>>140
その用途でconstを使うのはダメだろ
static readonly stringか読み取り専用プロパティにしとけ
144デフォルトの名無しさん:2007/04/19(木) 14:15:21
質問失礼します。
OpenFileDialogを使い、ファイルを選択させているのですが、ドライブのアイコン(マイコンピュータの中のアイコン)が表示されずに困っています。
どうやったら表示できるのでしょうか?
145デフォルトの名無しさん:2007/04/19(木) 21:09:21
>>144
別スレッドだと表示されません
146デフォルトの名無しさん:2007/04/19(木) 21:23:06
ListViewでListBox.SelectedIndexみたいな
インデックス番号を指定してある項目を選択するなんてことできるんでしょうか?
147デフォルトの名無しさん:2007/04/19(木) 21:28:07
ListView.SelectedIndices
148デフォルトの名無しさん:2007/04/19(木) 21:29:15
ListViewItem.Items で目的の ListViewItem 取得して Selected プロパティ
149デフォルトの名無しさん:2007/04/19(木) 21:29:58
……ListView.Items の間違い……
150デフォルトの名無しさん:2007/04/19(木) 21:30:07
>>146
ねえなんでMSDNライブラリ読まないの?
読んでわからないならPGなんかやらない方がいいと思うよ。

>>147
おいおいアホだろw
151デフォルトの名無しさん:2007/04/19(木) 21:33:26
ん?どうアホなのか説明してもらおうか
152デフォルトの名無しさん:2007/04/19(木) 21:43:28
Property
public SelectedIndexCollection SelectedIndices { get; }
153デフォルトの名無しさん:2007/04/19(木) 21:46:53
>>152
まさか、お前、本気でSelectedIndicesの使い方しらんのか?
MSDN読んどけよ。
154デフォルトの名無しさん:2007/04/19(木) 21:47:41
>>152
色々勘違いしているようだ

つか ListView.SelectedIndices ってスナップショットじゃないのな
ちょっと驚き
155デフォルトの名無しさん:2007/04/19(木) 22:02:43
ありがとうございます。ところでここは初心者スレじゃないんですか?

listView1.Focus();
listView1.Items[n].Selected = true;
で,出ますね
items[]なんてあるとわからないで items.で捜してしまって初心者にはわからないのですよ
ヒントもらえるとホント助かります
156デフォルトの名無しさん:2007/04/19(木) 22:03:42
listView1.SelectedIndices.Add(n);
157デフォルトの名無しさん:2007/04/19(木) 22:19:08
.netのexeってなんか個人情報埋め込まれないか
心配なんですが、そこらへんの情報ありませんか?
158デフォルトの名無しさん:2007/04/19(木) 23:22:24
アセンブリのGUIDからMACアドレスが逆算できるってのはあるかもしれん
159デフォルトの名無しさん:2007/04/19(木) 23:30:42
>>157
VS2005からコンパイルするとRelaseモードでも/debug:pdb-onlyになってるから
*.pdbファイルへのフルパスが埋め込まれている。
そのパスにユーザー名が入ってたらそれはわかる。
160デフォルトの名無しさん:2007/04/19(木) 23:35:02
それはexeとはいわない
161デフォルトの名無しさん:2007/04/19(木) 23:37:25
何を言ってんだ?
162デフォルトの名無しさん:2007/04/19(木) 23:38:52
失礼したw
163デフォルトの名無しさん:2007/04/20(金) 00:12:16
.NET1.1のRichTextBoxで、一般的なWindowsアプリにあるようなダブルクリックに
よる単語選択ができません。

トリプルクリックによる行選択は出来るのですが、ダブルクリックでは1文字だけが
選択されてしまいます。

また、ドラッグによるテキスト選択を行おうとすると、カーソルの彼方の方まで選択
してしまったりと、謎の挙動で困っております。

このような挙動を、一般的なアプリ風にするには、どのようにしたらいいのでしょうか?
164デフォルトの名無しさん:2007/04/20(金) 00:29:46
んー、大体普通に動くようだが。
ダブルクリックで単語選択できるし。

新しいフォームに RichTextBox 貼り付けただけのプロジェクトで試してみた?
165デフォルトの名無しさん:2007/04/20(金) 01:03:56
>>164
新規プロジェクトを作ってRichTextBoxを1つだけ貼り付けて、何も設定していない状態で
試してみましたが、英語とひらがな・カタカナは正常に選択されますが、漢字がダメです。

「これは機能テストです。」という文字列を入力して試してみたのですが、
「これは」「テスト」「です」は正常、「機能」の部分だけ選択されないという状況でした。

通常、ダブルクリックで選択するような場合は、漢字の変換ミスの時が多いと思うので、
なんとかしたいのですが、解決方法がまったく思いつきません。。。

もしかしたら、.NET2.0では直っているのでしょうか。。。
166デフォルトの名無しさん:2007/04/20(金) 01:08:51
それRichEditの仕様
ワードパットで試してみ。

自分でクリック位置の前後の単語区切りを探して選択するようなコードを書けばいい。
167デフォルトの名無しさん:2007/04/20(金) 01:14:26
>>165
あーそりゃ RichEdit の仕様だ。ワードパッドでもそうなる。
漢字は一文字で 1 ワード。ひらがなやカタカナは同じ文字種の範囲で 1 ワード。
どうにかするには……思いつかんな。
一般的なエディタは RichEdit なぞ使わんからなぁ。
168デフォルトの名無しさん:2007/04/20(金) 01:25:37
>>166-167
あぁ、確認しました。。。

> 自分でクリック位置の前後の単語区切りを探して選択するようなコードを書けばいい。

(´A`)
169デフォルトの名無しさん:2007/04/20(金) 07:42:07
C♯, C#相談室 Part38
http://pc11.2ch.net/test/read.cgi/tech/1173763436/592

592 名前:デフォルトの名無しさん[] 投稿日:2007/04/18(水) 01:31:56
.NET1.1とC#で勉強を兼ねてワードパットのようなモノを作っているのですが、
RichTextBoxで一般的なWindowsアプリにあるようなダブルクリックによる
単語選択ができません。

トリプルクリックによる行選択は出来るのですが、ダブルクリックでは1文字だけが
選択されてしまいます。

また、ドラッグによるテキスト選択を行おうとすると、カーソルの彼方の方まで選択
してしまったりと、謎の挙動で困っております。

このような場合は、どのようにしたらいいのでしょうか?
170デフォルトの名無しさん:2007/04/20(金) 08:19:00
コピペ君も馬鹿だが、しかしどうしてわざわざ文章考えて質問分を
タイピングする前に当たり前の確認作業をしようと思わないのかね。

少なくとも俺には精神分析の対象程度には人格が壊れてるとしか思えない。
171デフォルトの名無しさん:2007/04/20(金) 08:38:45
マルチ指摘厨
精神分析厨
172デフォルトの名無しさん:2007/04/20(金) 12:24:45
アセンブリリソースに画像ファイルがはいってるとします。
Resources1.designer.csが作られて
Resource1.imgHogeとプロパティでアクセスできるんですが、

この場合返ってきたBitmapオブジェクトは、使い終わったら
Disposeするべきなんですか?

Disposeした場合、
もう一度Resource1.imgHogeってアクセスしても普通に使えるんですが
これは安全ですか?

ResourceManager.GetObjectをMSDNで読むと
「……複数回呼び出した場合、戻り値が同じオブジェクトの参照になるとは限りません。……」
とあるので、同じ参照になる場合もあるってことですかね?
173デフォルトの名無しさん:2007/04/20(金) 16:30:09
自分で作ったオブジェクト以外はGCに任せるのが得策だとは思わんかね
174デフォルトの名無しさん:2007/04/20(金) 19:52:45
>>173
Paintイベントで使ってて >>172 のような疑問を持ったらオレは夜も眠れない

っていうかもう眠れないじゃねーか!w

175デフォルトの名無しさん:2007/04/20(金) 21:02:19
>>174
PaintEventArgs.GraphicsはDisposeしてはならん。
176165:2007/04/20(金) 21:43:15
>>165の続きなのですが、Windowsの仕様との事なので自前で実装してみようと試みているのですが、
public class RichTextBoxCustom : System.Windows.Forms.RichTextBox {
protected override void OnDoubleClick(EventArgs e) {
MessageBox.Show("test");
}
}
という風にしたものをフォームに貼り付けてダブルクリックしてみたのですが、反応がありません。
で、VisualStudioでブレイクポイントを設定してみたのですが、入ってきている形跡がないようなのですが、
なんででしょうか?
177デフォルトの名無しさん:2007/04/20(金) 23:00:18
protected override void OnMouseDoubleClick( MouseEventArgs e )
{
    MessageBox.Show( "test" );
    base.OnMouseDoubleClick( e );
}


だけどテキストが選択されてからMessageBoxがでるようだから
もっとメッセージ的に前のイベントをとるか
WndProcでマウスメッセージ捕まえるかしたほうがいい。

まずはReflectorでRichTextBoxの挙動を調べろ
話はそれからだ
178デフォルトの名無しさん:2007/04/21(土) 00:34:08
>まずはReflectorでRichTextBoxの挙動を調べろ
>話はそれからだ
北方謙三にでもなったつもりかねw
頭オカシイんじゃねえの
179デフォルトの名無しさん:2007/04/21(土) 00:49:33
>>178
Reflector使うのがかっこいい年頃なんだろw
180デフォルトの名無しさん:2007/04/21(土) 01:29:16
便利なのは確か
181デフォルトの名無しさん:2007/04/21(土) 02:35:45
便器なのも確か
182デフォルトの名無しさん:2007/04/21(土) 04:14:38
北方謙三って……
おっさん年いくつだよ
183北方謙三:2007/04/21(土) 07:37:11
質問に対してソープ行ってこいで返すそれが俺のジャスティス
184デフォルトの名無しさん:2007/04/21(土) 08:05:51
Reflector?漢は黙ってildasmだろ
185デフォルトの名無しさん:2007/04/21(土) 10:54:21
Reflectorわろた
いいねぇ趣味でやってる学生プログラムマーは。コストなんて無関係でw


186デフォルトの名無しさん:2007/04/21(土) 10:56:20
いちがいにそういいきれるおまえもおめでたいわ。
手っ取り早く挙動を確認するのに、早い場合「も」あるわな。
187デフォルトの名無しさん:2007/04/21(土) 11:08:23
Reflectorとコストって同関係あるの?
188デフォルトの名無しさん:2007/04/21(土) 12:01:35
C#ってすげー便利なんだけど、いまいち遅いんだよな・・・・
189デフォルトの名無しさん:2007/04/21(土) 13:52:22
C++++の略ってほんとう?
190デフォルトの名無しさん:2007/04/21(土) 14:10:42
CはCナチュラルの・・・あれ?SJISには♯と♭があるのにナチュラルがない?
191デフォルトの名無しさん:2007/04/21(土) 14:11:50
192デフォルトの名無しさん:2007/04/21(土) 14:41:03
>>190
一応コードポイント 81F8 ということになってはいる。
193デフォルトの名無しさん:2007/04/21(土) 14:47:09
補足:
JIS X 0213 には入ってるし、だから当然 Unicode にも入ってるし、メイリオ や Tahoma にはグリフもあるんだけど、
Windows の持ってるコード変換テーブルにはなぜか含まれない。
194デフォルトの名無しさん:2007/04/21(土) 17:58:23
アクティブウインドウを取得するにはどうすればよろしいでしょうか。

アクティブウインドウのX・Y座標とWidthとHeightを知りたいのですが、
WIN32APIのGetActiveWindow使いますか?
195デフォルトの名無しさん:2007/04/21(土) 18:38:46
ちょっとくらいヘルプみろ。

System.Windows.Forms.Form.ActiveForm()
196デフォルトの名無しさん:2007/04/21(土) 18:41:47
>>194
取得するフォームが自分のアプリケーションだけならば >>195 を
そうで無いならば GetActiveWindow を
197デフォルトの名無しさん:2007/04/21(土) 22:30:55
今日からC#始めました。VisualStudio2005使用です。
とりあえず色々コントロールを使ってみようと思ってフォームにステータスバーを置いたら
見た目が普通のものと違う、、、
コレって普通の見た目のステータスバーにはできないでしょうか?
198デフォルトの名無しさん:2007/04/21(土) 22:40:22
いまいちいみがわかりません
199デフォルトの名無しさん:2007/04/21(土) 22:55:41
>>198とは別人ですが、本当に意味が分かりません。
200デフォルトの名無しさん:2007/04/21(土) 23:24:22
toolStripStatusLabelを置いた時に凹んでないってことじゃね
201デフォルトの名無しさん:2007/04/22(日) 00:07:23
今日から始めていきなりこれか。
先が思いやられるな
202デフォルトの名無しさん:2007/04/22(日) 00:21:35
間違えて TrackBar 置いてたりしてな
203デフォルトの名無しさん:2007/04/22(日) 01:33:52
StatusStripを置いたら、StatusBarと見た目が違って戸惑っているんだろう。
204202:2007/04/22(日) 01:36:47
って、ステータスバーか。スクロールバーと読み間違えた。ごめぬ。
205デフォルトの名無しさん:2007/04/22(日) 01:45:36
>>197
Main()の最初にこの一行追加して実行したまへ

ToolStripManager.VisualStylesEnabled = false;
206デフォルトの名無しさん:2007/04/22(日) 10:54:11
メッセージを親ウインドウに送るにはどうすればいいですか?
207デフォルトの名無しさん:2007/04/22(日) 11:00:47
子ウィンドウを作るときに親を引数にして子側で保存しておけばいいんじゃね
208デフォルトの名無しさん:2007/04/22(日) 11:08:31
それだと直で呼び出すから、まだ子ウインドウが実行中でよろしくないかなぁと
思って、メッセージのキューの方法で実現できる方法を探していました。

でも今挫折してデリゲートを関数ポインタとして使って親に通知しようとしてます。。。
だめ?
209デフォルトの名無しさん:2007/04/22(日) 11:22:05
日本語として成立してないと思う、その文章
210デフォルトの名無しさん:2007/04/22(日) 12:12:42
子ウインドウが実行中って?
メッセージキューの方法って? ポストするってこと?
関数ポインタで親に通知って?

よのなか謎でいっぱい
211デフォルトの名無しさん:2007/04/22(日) 12:45:11
普通にeventでじゃだめなのか???
212デフォルトの名無しさん:2007/04/22(日) 12:46:15
自前でメッセージキューでもなんでも実装すりゃよろしいがな
213デフォルトの名無しさん:2007/04/22(日) 14:02:00
C井
214デフォルトの名無しさん:2007/04/22(日) 14:07:11
質問です。

ttp://www.atmarkit.co.jp/fdotnet/easyvs2nd/easyvs2nd01/easyvs2nd01_04.html
にあるように[新規プロジェクト]→[Windowsアプリケーション]で生成されたプログラムを、
素の状態でビルドして実行してもフォームが表示されません。ビルドされたファイルを直接開いても同様です。
見たところタスクマネージャーにも変化が見られないんですが、これって何かの設定ミスとかなのでしょうか?

環境はWin XP SP2、VC#2005 Express Editionです
215デフォルトの名無しさん:2007/04/22(日) 14:44:06
ビルドされたファイルはどこにあったの?
216デフォルトの名無しさん:2007/04/22(日) 15:00:45
ビルドしただけで実行してないとか
217214:2007/04/22(日) 15:39:57
実行は
・VC#で[F5]または[Ctrl+F5]で実行
・ビルドしたファイルはデフォルトの設定のままで設定してるので
「マイドキュメント」→[Visual Studio 2005]→[Projects]→[Windows Aplication1]→[bin]→[Release]
にあった実行ファイルを直接開く

の2種類をトライしました。
他作業をしているときに気付いたのですが、どうやら一応実行だけはされているようです。
ただし開いた瞬間にアプリケーションが終了しているようでした。

ウィンドウサイズやタイトルのパラメータを弄ってビルドすると反映されることから、
一応ビルドはうまくいっているようです
218デフォルトの名無しさん:2007/04/22(日) 16:33:37
クソ言語C#
219デフォルトの名無しさん:2007/04/22(日) 16:43:36
Visual C# 2005 Express Editionで
Eclipseにあるようなtry〜catch()で囲むの機能
(選択範囲のスローされる例外のcatchを自動で生成してくれる)機能ってないでしょうか?
220デフォルトの名無しさん:2007/04/22(日) 16:49:42
ない。
C#にはJavaのthrowsに相当するものがないから
221デフォルトの名無しさん:2007/04/22(日) 16:49:57
catchする気もないのにcatchする輩が糞コードを量産していく
222デフォルトの名無しさん:2007/04/22(日) 17:03:26
>>221
空のcatchブロックが意味内のはわかりますが
catchする気がなくてもどんな例外が出るか一気に調べられて便利だと思うんですが
223デフォルトの名無しさん:2007/04/22(日) 17:07:35
いちいち煽りに付き合うなよ

MSDNのいい加減さをみりゃわかるだろうが、
発生する可能性のある例外を調べる方法はない。
224デフォルトの名無しさん:2007/04/22(日) 17:15:52
>>220、223
ありがとうございます。
225デフォルトの名無しさん:2007/04/22(日) 19:59:45
197です。

203さんの言うとおりStatusStripとStatusBarで見た目が違うので戸惑いました。
205さん解答ありがとうございました。これからちょっと試してみます。
226デフォルトの名無しさん:2007/04/22(日) 20:08:01
General.walker.Add(null);
General.walker[0].printtest();


public class StartWalker
{
public void printtest()
{
General.PRTMSG_LIST += "----------------------------------------\r\n";
}
}
public struct General
{
public static List<StartWalker> walker = new List<StartWalker>();
}
こんばんは、上記のような使い方をしたいのですが設定の方法がわかりません
おしえていただけないでしょうか?
227デフォルトの名無しさん:2007/04/22(日) 20:16:56
俺はエスパーじゃない
228デフォルトの名無しさん:2007/04/22(日) 20:51:30
2行目でいきなりぬるりのようだが
GeneralにPRTMSG_LISTなどというメンバはないようだが
229デフォルトの名無しさん:2007/04/22(日) 21:20:14
Positionの存在の意味がわからないです。
230デフォルトの名無しさん:2007/04/22(日) 21:22:47
日本語でおk
231デフォルトの名無しさん:2007/04/22(日) 21:23:45
Positionって何の為におるんかな。
232デフォルトの名無しさん:2007/04/22(日) 21:24:48
独り言なら公園のトイレで落書きでも眺めながらやってくれ
233デフォルトの名無しさん:2007/04/22(日) 21:29:27
まじで疑問なんですよ。行数をindexにしたらすむ話なんですけど。
234デフォルトの名無しさん:2007/04/22(日) 21:30:41
馬鹿に告ぐ
Positionはいろいろある。

何のPositionか書け。
235デフォルトの名無しさん:2007/04/22(日) 21:32:09
DataSet.Datatable.index+1

DataSet.Datatable.Position
236デフォルトの名無しさん:2007/04/22(日) 21:42:30
General.walker.Add(null);
General.walker[0].printtest();
General.walker.Add(null);
General.walker[1].printtest();
int c = General.walker[1].intB();
General.walker[1].intB() = 5;

public class StartWalker
{
string a = "";
string msgstack = "";
int b =0;
public void printtest()
{
//メインになる動作を入れます
msgstack += "test you"+"\r\n";
}
public int intB {
get { return b;}
set { b = value}
}

}
public struct General
{
public static List<StartWalker> walker = new List<StartWalker>();
}
説明不足で申し訳ありません
マルチスレッドでStartWalkerの部分をGeneral.walker.Add(null);で任意の数ついかしたいのですが
うまく説明できません・・・
237デフォルトの名無しさん:2007/04/22(日) 21:45:31
何がしたいのか他人にもわかるように説明してくれ
238デフォルトの名無しさん:2007/04/22(日) 21:46:36
人に見せるソースなら最低限MSDNに書いてある命名規則に則って欲しいな
239デフォルトの名無しさん:2007/04/22(日) 21:47:08
コード書く前に何をしたいのか日本語で書け。
240デフォルトの名無しさん:2007/04/22(日) 21:49:08
いい加減になんのpositonか書け。
helpトピック25件も出るぞ。
241デフォルトの名無しさん:2007/04/22(日) 21:49:59
さっきからPositionPositionうるせえよ。黙っとれ
242デフォルトの名無しさん:2007/04/22(日) 21:50:07
かまへんで。
かまねんねやけどな。
なんでnullをAddするんかいな。
おっちゃんそこんとこわからへんねん。
うごかへんのとちゃうんかいな。
243デフォルトの名無しさん:2007/04/22(日) 21:54:17
//メインのプログラムループ

ボタンを押す
設定した数のサブプログラムスレッドを起動

ボタン2を押す
n番目のスレッドの変数cを参照して表示する

//サブプログラム

乱数ベースでさまざまな演算を行い変数を格納
int a =1;
int b =2;
int c =3;

上記のようなプログラムが組みたいのですが
244デフォルトの名無しさん:2007/04/22(日) 21:56:54
>>243
いままでなんでそれを書かなかったの?
ゆとり世代?
245デフォルトの名無しさん:2007/04/22(日) 21:57:28
>>243
組めば?
246デフォルトの名無しさん:2007/04/22(日) 21:57:42
すみません。。
何をAddすれば動くのかわからなくって
とりあえずnull入れちゃってます・・・
247デフォルトの名無しさん:2007/04/22(日) 21:59:16
>>246
全くかすってない。
センスないよ。

いきなりスレッドなんかやらずに基礎から地道にやれよ。
248デフォルトの名無しさん:2007/04/22(日) 22:00:38
そもそも自分が何をやろうとしているのか分かってるのか

>>236を見る限りだと勉強不足が否めないな
スレッドなんか触るべきじゃない
249デフォルトの名無しさん:2007/04/22(日) 22:24:11
>n番目のスレッドの変数cを参照して表示する

このあたりも全くスレッドを理解してない証拠。
250デフォルトの名無しさん:2007/04/22(日) 22:55:37
いままでは
int view = a[threadnumber];
int view2 = a2[threadnumber];
のような参照の仕方だったのですが。
int view = Thread[0].getint();
int view2 = Thread[1].getint2();

クラスを作成してそれをマルチスレッドで動かし
後にそれぞれのクラスから計算結果を取り出そうと思ったのですが
public static List<StartWalker> walker = new List<StartWalker>();
でクラスのもとを作成して
walker.Add();
で要素(class)の数を追加
ThreadPool.QueueUserWorkItem(new WaitCallback(walker[0].main), 0);
でスレッドを起動みたいなイメージでした。
独学なのでいまいちわからなくてこまっています。。
251デフォルトの名無しさん:2007/04/22(日) 23:01:07
とりあえず、最初に言っておく。
『独学でそこまでやったことは素直に評価できると思う。セオリーとは乖離しているが』

walker に追加する理由は何だい?
後で参照するん?
252デフォルトの名無しさん:2007/04/22(日) 23:02:26
スレッド使う必要あるのか?
初心者とか関係なくこの言葉は常に頭に入れておいたほうがいいよ

Keep it Simple, Stupid.
253デフォルトの名無しさん:2007/04/23(月) 00:33:33
VS2005でソースがUNICODEになってまうのだけど
プロジェクト作る時にシフトJISにする方法ないですか?
254デフォルトの名無しさん:2007/04/23(月) 00:42:41
sjisにしたらIDEの恩恵を受けられなくなると思うが。
255デフォルトの名無しさん:2007/04/23(月) 00:47:30
おとなしくUNICODEでやった方が良いんですね
ありがとうございました
256デフォルトの名無しさん:2007/04/23(月) 00:54:58
ん?
特に指定しない限りSJISで保存されるのがデフォと思うけど。。
257デフォルトの名無しさん:2007/04/23(月) 00:56:39
嘘はよくないと思うが
258デフォルトの名無しさん:2007/04/23(月) 00:56:56
>>251
int view = Thread[0].getint();
int view2 = Thread[1].getint2();

public static List<StartWalker> Thread = new List<StartWalker>();
Thread.Add();
ThreadPool.QueueUserWorkItem(new WaitCallback(Thread[0].main), 0);
でした。
後で、または実行中に参照しようと思ってました
今回C#初挑戦で作ってる最中にいろいろ思いついてしまって。。

今回は
nt view = a[threadnumber];
int view2 = a2[threadnumber];
のまま使ってまた巧くなったら挑戦してみたいと思います。
ありがとうございました

>>252
スレッドは必須だったので。。
259デフォルトの名無しさん:2007/04/23(月) 01:05:41
なんかエクスプレスの時はSJISで保存されるんだけど
売ってるやつはUNICODEで保存されるみたいでつ
260デフォルトの名無しさん:2007/04/23(月) 01:21:53
うんにゃ、hoge.Designer.csとか日本語のコメントがあるやつは
BOMつきUTF8だよ
261デフォルトの名無しさん:2007/04/23(月) 01:27:14
>>259
そうだったか?
何を見てSJISと言ってるのか気になるところだな
262デフォルトの名無しさん:2007/04/23(月) 01:42:19
確かに日本語のコメントが入ってるコードは明らかにUTF-8になってるな。
今まで何か勘違いしてたよ。。

おかしいな、確か2003までは日本語入っててもデフォでSJISで保存だったような
気がするんだけど。
だから(c)とか(R)みたいなSJISにない文字が入ってると保存時に警告された記憶がある。
263デフォルトの名無しさん:2007/04/23(月) 03:56:56
その辺確かに動作は変わってたと思う。
264デフォルトの名無しさん:2007/04/23(月) 06:24:12
>>261
違うエディターでソースを開いてたからわかった
265デフォルトの名無しさん:2007/04/23(月) 06:43:40
VS2005 Beta 2 のころは Shift_JIS で保存されていた。
製品版VS2005で新規作成すると UTF-8 になるけれども
もともと Shift_JIS のファイルを開いて保存しても Shift_JIS のままだった。
なので Shift_JIS から UTF-8 に全部変換したことがある。
266デフォルトの名無しさん:2007/04/23(月) 11:31:33
VS2003とVSS6.0dを使うと、ファイルをVSSに追加するときに
UTF-8のファイルだけどいいの?って聞いてきますよ。
267デフォルトの名無しさん:2007/04/23(月) 11:35:18
>>266
6系はUTFに対応していないからなぁ・・・
2005と同時期に出たVSS7だとちゃんとUTF-8のソースを管理できる
268デフォルトの名無しさん:2007/04/23(月) 22:43:12
VSS2005
269デフォルトの名無しさん:2007/04/23(月) 23:04:24
>>266-267

そして、末尾日本語の改行コードがVSS6.0に壊される・・・
(かといってバイナリー指定にすると、diffがとれない)

>>268
今期の設備投資で注文してたのに・・まだ、うちの部署に届かない・・・
調達・・なにやってるんだよ〜
270デフォルトの名無しさん:2007/04/24(火) 15:56:50
抽象クラスについて質問があります。

クラス1
属性:A,B,C
操作:D

クラス2
属性:A,C
操作:D

クラス3
属性:A,B
操作:D

クラス1がデータを取得するとき、属性:Bの有無で
クラス2 or クラス3を用いる方式を考えています。
こういう場合、属性Aと操作Dを抽象クラスにしたほうが
よいのでしょうか?
271デフォルトの名無しさん:2007/04/24(火) 15:59:41
イマイチ状況が分からんのでコードを書いて
272デフォルトの名無しさん:2007/04/24(火) 17:37:40
>>270
抽象クラス {属性:A, 操作:D}
インターフェイスB {属性:B}
インターフェイスC {属性:C}
クラス1 : 抽象クラス, インターフェイスB, インターフェイスC
クラス2 : 抽象クラス, インターフェイスC
クラス3 : 抽象クラス, インターフェイスB
273デフォルトの名無しさん:2007/04/24(火) 20:02:22
is IB じゃあかんの?
274デフォルトの名無しさん:2007/04/24(火) 20:05:33
マイクロソフトの掟ではインターフェイスをマーキングに使ってはならん
275デフォルトの名無しさん:2007/04/24(火) 20:25:54
インターフェイスをマーキングに使うってどういうこと?
アホだからわからん。
276デフォルトの名無しさん:2007/04/24(火) 20:29:49
属性って何だよ。Attributeのことなのか
277デフォルトの名無しさん:2007/04/24(火) 20:33:19
操作に対しての属性のことだろ
つまりプロパティ
278デフォルトの名無しさん:2007/04/24(火) 21:42:00
ウチの犬は電柱にマーキングする
279デフォルトの名無しさん:2007/04/24(火) 21:45:48
属性っていえば普通Attributeだろ?
280デフォルトの名無しさん:2007/04/24(火) 22:09:24
Javaなんかで「属性」っていうとC#のプロパティに相当するものを指すぞ
>>270がJava使いだとは思えないが
281デフォルトの名無しさん:2007/04/24(火) 22:59:39
IRequiresSessionState
IReadOnlySessionState
思い切りマーキングインターフェイス使ってるやん。
しかもこれのせいでハンドラがすごいうぜー構造になって実害でてるやん。
282デフォルトの名無しさん:2007/04/24(火) 23:02:31
>>281
自らの失敗から駄目だって言ってるんじゃね?w
283デフォルトの名無しさん:2007/04/24(火) 23:05:53
クラスライブラリの規則を守ってるのはmscorlibだけだからな。
284デフォルトの名無しさん:2007/04/25(水) 11:46:07
>>272 ありがとうございます。
285デフォルトの名無しさん:2007/04/25(水) 13:42:09
細菌C#本が.殖えた奇がする。
286デフォルトの名無しさん:2007/04/25(水) 14:15:33
質問です。
マイクの音量を調整するプログラムを作ろうと思ったのですが、
どのクラスを使えばいいのでしょうか?
MSDNのクラスライブラリでそれっぽいところは見てみたのですが、
音量調整できそうな物はなかったのですが…
287デフォルトの名無しさん:2007/04/25(水) 17:33:56
288デフォルトの名無しさん:2007/04/25(水) 23:02:39
すんません、教えて欲しいんですが

listboxの表示と実際の値を変えることが出来るみたいな記事を
どこかで読んだんですが、見つけられません・・・・・orz

やりたい事はlistboxにファイルをドロップした時
値=フルパス
表示=ファイル名のみ

ってやりたいんですけど・・
お願いします
289デフォルトの名無しさん:2007/04/25(水) 23:04:50
Format
290デフォルトの名無しさん:2007/04/25(水) 23:07:14
DataSource と DisplayMember と ValueMember
string 二つ持たせたクラス作って ToString() をオーバーライド
さてどっちが楽かね。
291デフォルトの名無しさん:2007/04/25(水) 23:11:41
>>289
>>290
うっ・・・ん〜ん。初心者なのでピンときません・・・

キーワードありがとうございました!!
がんばってみますね!!!
292デフォルトの名無しさん:2007/04/25(水) 23:14:35
listBox.Format += delegate(object sender, ListControlConvertEventArgs e) {
    if(e.ListItem is string) e.Value = System.IO.Path.GetFileName(e.ListItem as string);
}
293デフォルトの名無しさん:2007/04/25(水) 23:18:38
>>292
うをぅ!!

ありがとうございます!

delegateって使った事がないので見ただけではなんとなくしか分かりませんが
凄く勉強になりそうな感じですね(笑)

本当に感謝します!
294デフォルトの名無しさん:2007/04/26(木) 00:46:47
>>292
なにこれ2.0からコントロールにもこんなの追加されたの?
他にも今までの苦労全てプギャーってなりそうな予感…

今度の休みは一日中クラスライブラリのヘルプ眺めてみるか。
295デフォルトの名無しさん:2007/04/26(木) 00:47:45
匿名メソッドだっけ?
これどうしても便利だと俺は思えないんだけど。

いや、(コードを書くときには)便利ではあるかもしれないが、
後でコードを読むときのことを考えると有用性が甚だ疑問なんだよな。
296デフォルトの名無しさん:2007/04/26(木) 01:00:09
可読性に難が出る程の長いコードならメソッドだてするだろう。
プロパティ設定するための Invoke とか、ちょっとした MatchEvaluator 使う Match とかお薦め。
297294:2007/04/26(木) 01:27:17
>>295
いや >>292 は匿名メソッドがどうのとかじゃなくて
Formatイベントというものが追加されてるのに感動したと…

もちろんイベントにメソッドを割り当てるのは可能だけど、
>>292のように匿名メソッドでサラっと書けるのって利点だとおもわないか?
298デフォルトの名無しさん:2007/04/26(木) 01:39:29
toolStripContainerのtop,left,right,bottomの全てに含まれるバー(toolstrip, statusstrip, menustip)
のオブジェクトを取得したいのですがどうすればよいですか?
299デフォルトの名無しさん:2007/04/26(木) 01:43:58
ToolStripContainer.Controls
300デフォルトの名無しさん:2007/04/26(木) 01:49:08
↑は駄目なのかな。

ToolStripContainer.LeftToolStripPanel.Controls
ToolStripContainer.RightToolStripPanel.Controls
以下同文
301298:2007/04/26(木) 02:01:19
どうもありがとうございます。
top, left 〜 4回繰り返さないとだめなんですね。
そこで、もうひとつ質問なんですが

foreach (Object obj in toolStripContainer1.TopToolStripPanel.Controls)
こんな感じでforeachでまわして、
TopToolStripPanelに属するツールバーorメニューバーのGripStyleを一括して設定したいのですが、
どうすれば良いでしょう?menuStripとToolStripがTopToolStripPanelに混在している時点で
一括して処理するのは不可能なんでしょうか?
(menuStrip、ToolStripがクラスではない、というのもよくわかってないのですが、、)
302デフォルトの名無しさん:2007/04/26(木) 02:27:25
>menuStrip、ToolStripがクラスではない

??
どちらもControlですよ。
MenuStrip もStatusStrip もToolStripを継承してるから

foreach( ToolStrip ts in toolStripContainer1.TopToolStripPanel.Controls )
{
 ToolStripGripStyle tsgs = ts.GripStyle;
 .....
}

でおk
303デフォルトの名無しさん:2007/04/26(木) 07:53:33
すみません。作成したテスト用dllをNUnit2.4でデバッグ実行したい
(ブレークポイントとかで止めたい)んですが、可能ですか?
304デフォルトの名無しさん:2007/04/26(木) 10:36:02
PDBありゃいけるだろ
305デフォルトの名無しさん:2007/04/26(木) 20:17:38
ども。VS上からdll指定で、NUnit呼んだら普通にいけました。
306デフォルトの名無しさん:2007/04/26(木) 21:08:57
ListViewで複数選択した値をforeachでstring型で取り出したいんですが
selecteditemでもforcuseditemでもキャストなしではダメですよね?

誰か教えてー
307デフォルトの名無しさん:2007/04/26(木) 21:12:09
キャストでうまくいくならそうすりゃいいじゃん。
308デフォルトの名無しさん:2007/04/26(木) 21:16:09
キャストありでもダメだろ
309デフォルトの名無しさん:2007/04/26(木) 21:18:47
あぁ、すみません。キャストしても変な文字になりますよね

ListViewItem:{hoge}
みたいな
310デフォルトの名無しさん:2007/04/26(木) 21:21:56
匿名メソッドで思い出したけど、
匿名メソッドだとクロージャのせいで
メソッドを割り当てるのに比べてパフォーマンスが低下したりしないですか?
311デフォルトの名無しさん:2007/04/26(木) 21:30:35
言うほど変わらん
312デフォルトの名無しさん:2007/04/26(木) 21:31:14
>>306
一体何がわからんのかわからん
313デフォルトの名無しさん:2007/04/26(木) 21:39:36
>>312
あーすみません。
あるディレクトリ内のファイルをloadイベントでlistviewにリストアップします
んでlistviewで複数選択してボタンを押したときに他のあるディレクトリに
選択されたファイルをコピーしたいのです

んでfilecopyをforeachでやりたいんですけどパスがstring型で取れないんですよ・・
314デフォルトの名無しさん:2007/04/26(木) 21:42:59
意味がわからんのだが、Textプロパティをとるのとは違うのか?
315デフォルトの名無しさん:2007/04/26(木) 21:46:19
ええっとですね

foreach(string hoge in ListView.forcuseditem.text)
なんて出来ます?


今家なんでVSないんですよ・・
316デフォルトの名無しさん:2007/04/26(木) 21:46:50
focusでした
317デフォルトの名無しさん:2007/04/26(木) 21:47:45
前途多難だなw
318デフォルトの名無しさん:2007/04/26(木) 21:50:44
>>317
ははは・・・・
319デフォルトの名無しさん:2007/04/26(木) 22:11:02
素直に ListViewItem 列挙してそれから値取れ。
320デフォルトの名無しさん:2007/04/26(木) 22:47:03
テキストボックス内のカーソルの位置から
現在の位置している行数を取得したいのですが、
1行が1024文字を超えた位置にカーソルが位置していると、
下記のrowの値が1だけ繰り上がってしまいます。
どうやら1024区切り(1024,2048,3072,…)で1ずつ繰り上がるようです。

TEXT->WordWrap = false;
int row = GetLineFromCharIndex(TEXT->SelectionStart);
TEXT->WordWrap = true;

これを回避して、1024文字を超えても正しい行数を返すように
修正できないでしょうか?
321デフォルトの名無しさん:2007/04/26(木) 23:09:01
>>320
すれ違いですよ。
322デフォルトの名無しさん:2007/04/26(木) 23:12:57
$getstr = new Win32::API("strmng", "mng", "PNNPN", "N");
学習用ソフトをperlから移植しているのですが
上記のような場合どのようにDllの記述をすればよろしいのでしょうか?
323デフォルトの名無しさん:2007/04/26(木) 23:17:32
>>315
もしそれが出来たとしても

foreach (ListViewItem item in ListView.ForcusedItem)
{
string hoge = item.Text;
}

と何が違うのかわからん。
324320:2007/04/26(木) 23:23:33
>>321
該当スレに誘導して頂けますか?
325デフォルトの名無しさん:2007/04/26(木) 23:23:37
>>315
SelectedItemsな。
itemsになってるだろ?
複数のものを返してくるときはたいていsがついてる。
複数形だな。

まずmsdnみろ。
>ListView.SelectedItems プロパティ
>コントロール内の選択された項目を取得します。

>構文
>C#
>public SelectedListViewItemCollection SelectedItems { get; }

プロパティはSelectedListViewItemCollectionを返すことになってる。
〜Collectionは複数のものを返すように大体なってる。
これを使って foreachしてListViewItemを1個ずつ取り出す。
そしてTextを…
326デフォルトの名無しさん:2007/04/26(木) 23:25:45
>>324
たぶんここ

くだすれVisual C++(超初心者用)その4
http://pc11.2ch.net/test/read.cgi/tech/1164787254/
327デフォルトの名無しさん:2007/04/26(木) 23:28:07
>>326
ありがとうございます。そちらで質問してみます。
328デフォルトの名無しさん:2007/04/26(木) 23:35:32
>>322
そのperlのようなお手軽記述法はC#にはない。

勉強して dllimportで自分で書くか、
http://www.pinvoke.net/
から引っ張ってくるしかない
329デフォルトの名無しさん:2007/04/27(金) 11:30:41
なぁ匿名メソッドの利点がコラムとか読んでも理解できない
馬鹿な俺に誰かわかりやすく教えてくれないか?
330デフォルトの名無しさん:2007/04/27(金) 12:22:26
メソッド名を考えなくていいんだから、この上ない利点じゃん。
331デフォルトの名無しさん:2007/04/27(金) 12:42:38
なるほどそれが利点なんだ。
じゃあ小さなメソッドの名前はみんな"A0001"とかでいいよねw

>>329
なんか構造化の思想に反する、という欠点しか思い浮かばないよね。
332デフォルトの名無しさん:2007/04/27(金) 12:56:01
>>329-331
なんか自演にしか見えんぞ。

ヒント:スコープ
333デフォルトの名無しさん:2007/04/27(金) 13:07:02
スコープというか、名前空間の汚染ね。
334デフォルトの名無しさん:2007/04/27(金) 13:24:06
最初から名前をつけないで済むのと、わけのわからん名前をつけて悩みながら使うのでは雲泥の差だ
335329:2007/04/27(金) 14:02:53
>>332
いや、流石に自演しないわ

なるほど・・・
確かにそういわれれば悩むなぁ
オラなんか使いたくなってきたぞ
336デフォルトの名無しさん:2007/04/27(金) 14:09:59
いくつか使用例見てみるというのはどうかな?
↓"delegate (" でぐぐってみた。
ttp://www.google.com/codesearch?hl=ja&lr=&q=lang%3Ac%23+delegate%5C+%5C%28&btnG=Google+%E6%A4%9C%E7%B4%A2
337336:2007/04/27(金) 14:13:36
338デフォルトの名無しさん:2007/04/27(金) 14:33:18
MethodInvokerって便利だけど、
どうせなら引数ありのもつくっといてほしかった
objectでいいからさ
339デフォルトの名無しさん:2007/04/27(金) 14:47:15
>>338
1引数ならAction<T>でどう?
340デフォルトの名無しさん:2007/04/27(金) 15:50:01
質問です。
Clone()で該当変数のポインタしか帰ってこない参照型の変数をどうにかして完全コピー
したいのですが、どのようにしたらできますか?
341デフォルトの名無しさん:2007/04/27(金) 17:54:42
リフレクション
342デフォルトの名無しさん:2007/04/27(金) 18:06:06
リフレクションを使ってprivateメンバを見るのって具体的にどうやるの?
343デフォルトの名無しさん:2007/04/27(金) 18:11:14
>>329
クロージャでぐぐれ。
344デフォルトの名無しさん:2007/04/27(金) 18:12:06
GetField
345340:2007/04/27(金) 21:19:35
帰ってきたらこんな時間…飯作るの面倒だ orz

>>341
もう少しヒントをいただけませんか?
346デフォルトの名無しさん:2007/04/27(金) 21:31:08
完全コピーって、内部メンバの参照先も完全にクローンするつもりなの?
347340:2007/04/27(金) 21:38:40
>>346
できれば。memcpyみたいなことができればいいなーとか思ってるんですが、
甘過ぎですかね orz
348デフォルトの名無しさん:2007/04/27(金) 22:03:45
static void Copy<T>(T src, T dst){
Type type = src.GetType();
FieldInfo[] fields = type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
foreach (FieldInfo field in fields){field.SetValue(dst, field.GetValue(src));}
}
あくまでネタとしてw
349デフォルトの名無しさん:2007/04/27(金) 22:06:51
Type type = src.GetType();

Type type = typeof(T);
にしないとsrcがdstの子孫じゃなかったときに死んじゃう。
350デフォルトの名無しさん:2007/04/27(金) 22:24:30
それじゃ一段階しかコピーできんな
もっと深く!


やらんで良い
351デフォルトの名無しさん:2007/04/27(金) 22:26:33
>>347
シリアライズ可能な奴は一旦デシリアライズしてシリアライズしてコピーという手がよく使われる。
しかし一般の参照型について汎用に使える方法は無い。そういうの作ろうとしているなら諦めれ。

リフレクションで公開フィールドのみコピーするとかプロパティのみコピーするとかそういうコードなら作れるが。
相手が決まっているならそのクラス専用のコードでもいいんじゃね?
352デフォルトの名無しさん:2007/04/27(金) 22:54:54
memcpyのようなコピーじゃGC出来ないんじゃないかな?
353デフォルトの名無しさん:2007/04/27(金) 22:59:34
自己参照構造体配列みたいな構造になってるクラスだったらmemcpyじゃ意味ないし
354デフォルトの名無しさん:2007/04/27(金) 23:36:55
>>350
参照構造にループがあるときに下手に再帰すると無限ループになるんで注意ね。
355340:2007/04/28(土) 08:36:15
寝てしまった orz

>>348
なんかいけそうですが、1段階のみですね…

>>351
最初はそうしようと思ったんですが、Controlを継承しているためか、
シリアライズできないんです…

あきらめるか orz
356デフォルトの名無しさん:2007/04/28(土) 10:43:01
コードいじれるんならClone()でも実装すれば、って話じゃないの?
357デフォルトの名無しさん:2007/04/28(土) 11:35:32
いやそもそも「完全コピー」(コピーかクローンかどっちだ、という問題には突っ込まないとして)
が仮に可能として、意味ないだろう、って話でしょう。

例えばウィンドウハンドルとかコピーしてなんか意味あるのかよってさ。
358デフォルトの名無しさん:2007/04/28(土) 19:51:53
>>302
恐れ素すぎですが、ありがとうございました!
359775:2007/04/28(土) 21:47:05
C#でnsfファイルの再生をするにはどうすればいいんだろう。
360デフォルトの名無しさん:2007/04/28(土) 22:06:13
独り言なら日記帳でな
361デフォルトの名無しさん:2007/04/28(土) 23:22:05
プログラム初心者です
C#は3ヶ月で習得できますか?
362デフォルトの名無しさん:2007/04/28(土) 23:26:14
他の言語での経験があれば言語は3ヶ月もあれば余裕だが
363デフォルトの名無しさん:2007/04/28(土) 23:27:42
C#の言語自体なら3日〜一ヶ月で習得できるだろ
364デフォルトの名無しさん:2007/04/28(土) 23:55:26
C#の文法の習得には3か月もかからないだろう。
しかしながら、プログラミングに不可欠な.NET Framworkの習得は3か月じゃ厳しいだろう。
365デフォルトの名無しさん:2007/04/29(日) 00:00:34
必要な部分だけなら .NET もそんなに大した量ではないだろう
366デフォルトの名無しさん:2007/04/29(日) 00:16:00
C#で何をしたいんだろう?
367デフォルトの名無しさん:2007/04/29(日) 00:25:51
int あsdf= 1;
あsdf++;

こんなん通った。ちょっと驚き。
2バイトコードの変数なんて必要だろうか。。。
368デフォルトの名無しさん:2007/04/29(日) 00:26:12
2バイトコード
369デフォルトの名無しさん:2007/04/29(日) 00:26:52
なにか?
370デフォルトの名無しさん:2007/04/29(日) 00:27:29
はいはい。

UTF-8やってたからな。
すまんこな。
371デフォルトの名無しさん:2007/04/29(日) 00:28:42
VS2005 じゃメニュー系とかで使われてるぜ

しかし所謂 ASCII 文字だって2バイトコードだぜ、.NET では
372デフォルトの名無しさん:2007/04/29(日) 01:34:29
っていうかいちいち反応するほどの事ではないわな。
>>368 の性格が悪いだけだからきにするな。
373デフォルトの名無しさん:2007/04/29(日) 02:13:27
>>367
その話は長くなるんだよ。
俺は使う→使うやつはウンコ→自分基準で批判するやつはウンコ
→オマエモナー→ぬるぽ→ガッ→俺は使わない→俺の仕事では
使わないとやってられない→ソース晒せ→できない→ウンコ→2番目に戻る
みたいな流れで。
やるなら別スレでおながいします。
374デフォルトの名無しさん:2007/04/29(日) 02:21:56
>>276-280
エクスプローラとかは、英語版のPropertyを翻訳するのをあきらめて
「プロパティ」にしてるもんな。
375デフォルトの名無しさん:2007/04/29(日) 08:50:37
>>367
実行時型情報で 変数名を使って何かするとき便利だろ
376デフォルトの名無しさん:2007/04/29(日) 09:02:54
PropertyGrid使うときとか……
377デフォルトの名無しさん:2007/04/29(日) 09:12:58
DisplayNameAttribute 使えよ
378デフォルトの名無しさん:2007/04/29(日) 12:44:38
日本語の変数を使う"必要"は無いが、日本人同士が同じソースを記述する場合、使った方が若干理解しやすいと言えるかもね。
でも古株が嫌がるの必須だな。(なんとなくだけど)
パラダイムシフトを起こした新人と上司の対決が出てくるだろうね。

問題は多言語に対応した事による、国境を越えたソースの共有化かな。
サンスクリット語で書かれた変数なんて、日本人には理解しづらい事この上無いと思う。
そういう意味では愚策としか思えんな。

と。
既出であろう事を堂々と書いてみる。
379デフォルトの名無しさん:2007/04/29(日) 12:53:46
うーん、でも命名センスの方がより重要だよね。
日本語使うか英語使うかより。

英語でセンスある命名ができない奴は、たぶん日本語つかっても同じことだと思う。
つまり可読性はあまり向上しない可能性が高いんじゃないかな
380デフォルトの名無しさん:2007/04/29(日) 12:58:24
なによりもIMEの切り替えがめんどくさすぐる
381デフォルトの名無しさん:2007/04/29(日) 13:00:22
Excelのオートコンプリートみたいに未確定や読みの段階からインテリセンス働いてくれればいいんだけどな。
382デフォルトの名無しさん:2007/04/29(日) 13:02:30
Shoshinsha初心者
みたいに書く決まりにすればいいんじゃね
383デフォルトの名無しさん:2007/04/29(日) 13:33:06
コンパイル時に警告出すようにするのがいいです
384デフォルトの名無しさん:2007/04/29(日) 13:35:58
おまえらもコメントがハングルで書かれたソースをメンテする羽目になってみろと。
385デフォルトの名無しさん:2007/04/29(日) 13:37:46
それは朝鮮語の勉強にもなって一石二鳥だな
386デフォルトの名無しさん:2007/04/29(日) 13:39:44
Regex regex = new Regex(@"wii", RegexOptions.IgnoreCase);

これだと半角の「wii」や「Wii」にはマッチするんですが、
これを全角の「wii」や「Wii」にもマッチさせるにはどうしたらいいんでしょうか?
387デフォルトの名無しさん:2007/04/29(日) 13:43:53
1) @"[ww][ii][ii]" とする
2) 互換正規化する
388デフォルトの名無しさん:2007/04/29(日) 13:44:41
@"(wii)|([Ww][I@]{2})"
あとはVBライブラリのStrConv…とかいうとVB厨扱いされるかな
389デフォルトの名無しさん:2007/04/29(日) 13:50:11
>>387
実際には@"wii"の部分が変数になりますので1の方法は無理なんですが
2の方法はどういったものなんですか?
390デフォルトの名無しさん:2007/04/29(日) 13:52:39
"wii".Normalize(NormalizationForm.FormKC) == "wii"
391デフォルトの名無しさん:2007/04/29(日) 13:58:11
2.0でそんなの出来てたのかー
勉強になった
392デフォルトの名無しさん:2007/04/29(日) 13:59:45
>>390
その方法を利用してみます。
どうもありがとうございました。
393デフォルトの名無しさん:2007/04/29(日) 14:29:59
海蘊と藻屑って似てるよな?
394デフォルトの名無しさん:2007/04/29(日) 15:03:05
Windows.Forms なんですが、ダイアログボッックスをFormエディタで作成して
普通に、form.ShowDialog()で表示すると、びろ〜んと一個一個のコントロールが
スローモーションで表示されていきます。
これ、一気にパッと表示できないんですか? これでは恥ずかしくて納品できません。
一応、SuspendLayout, ResumeLayout, PerformLayout辺りを弄っているんですが、
改善しません。よろしく。
395デフォルトの名無しさん:2007/04/29(日) 15:05:54
それが気になるって事はフォームにコントロールを大量に貼り付けすぎって事だ
396デフォルトの名無しさん:2007/04/29(日) 15:12:12
>>395
どもです。コントロールが多いフォームでも、コントロールは10個ないです。
あとスローモーションといっても、表示完了まで0.05〜0.1秒くらいなんですが、すごく気になります。
どうしても、『びろ〜ん』はいやなんです。このままだとMFC/C++に逆戻りです(;_;)
397デフォルトの名無しさん:2007/04/29(日) 15:14:27
戻れば良いんじゃない?
398デフォルトの名無しさん:2007/04/29(日) 15:17:43
>>397
そんな〜。
399デフォルトの名無しさん:2007/04/29(日) 15:36:10
>>396
LockWindowUpdateを使ってみたらどうだ?

[DllImport("user32.dll")]
static internal extern int LockWindowUpdate(IntPtr hWnd);

Cursor preCursor = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;
LockWindowUpdate(Handle);
try
{
//フォームを表示
}
finally
{
LockWindowUpdate(IntPtr.Zero);
Cursor.Current = preCursor;
}


400デフォルトの名無しさん:2007/04/29(日) 15:42:08
デバッグモードというオチ。
401デフォルトの名無しさん:2007/04/29(日) 15:59:03
DX4マシンという落ち
402デフォルトの名無しさん:2007/04/29(日) 16:24:07
0.05〜0.1秒って遅いうちに入るのか?
403デフォルトの名無しさん:2007/04/29(日) 16:28:12
いらちなのでおそいのむりやねん
404デフォルトの名無しさん:2007/04/29(日) 16:30:36
↑翻訳お願いします
405デフォルトの名無しさん:2007/04/29(日) 16:44:26
>>399
ども。試してみます。
406デフォルトの名無しさん:2007/04/29(日) 17:14:14
>>394
コントロール10個もないフォームで0.05〜0.1秒の間に
「一つずつ」びろーんと表示されるのか?
ありえないし、びろーんと感じるわけもない。

Form_Loadとかに重い処理はいってないの?
407デフォルトの名無しさん:2007/04/29(日) 17:25:08
>>404
エキサイトで英語にしてみた

Because it is, it is of.
408デフォルトの名無しさん:2007/04/29(日) 18:21:56
>>394
メモリが足りてないとフォームの表示や再表示でそんな感じなることはあるね。
表示自体が遅いというより表示の裏でページングやコードのロードが平行して起きてるからそうなる。
最初はJITのせいかと思ったがページングの影響の方が大きかった。
409デフォルトの名無しさん:2007/04/29(日) 18:27:33
俺が予測するに>>394の動体視力が良すぎるだけ
410デフォルトの名無しさん:2007/04/29(日) 18:45:36
フォームが表示された後に描画してんじゃない?
411デフォルトの名無しさん:2007/04/29(日) 19:33:33
SuspendLayout〜ResumeLayoutしてるっていうし、そこいらは一応大丈夫じゃないかな。
412デフォルトの名無しさん:2007/04/29(日) 20:12:15
まぁWinFormが遅いのは仕方ない。
413デフォルトの名無しさん:2007/04/29(日) 20:18:08
毎度思うが、
・環境を書く
・可能な限りソースを晒す
の二つをやってくれれば、
こっちとしてももうちょっとアドバイスしようがあるんだけどな
414デフォルトの名無しさん:2007/04/29(日) 20:33:35
いや、普通に作ったらそんなもんじゃね?
0.05秒はトータルの時間でだろ。

なんていうか、そのレベルでピッチリした動きを求めるなら
WPFいくか.NETあきらめるかどっちかだな。
415デフォルトの名無しさん:2007/04/29(日) 20:36:48
C#って、インラインアセンブラか、もしくは部分的にCで書くとかってことできないの?
416デフォルトの名無しさん:2007/04/29(日) 20:38:12
unsafe
DllImport
C++/CLI
好きなの使え
417デフォルトの名無しさん:2007/04/29(日) 20:40:23
WPFて描画速いの?
418デフォルトの名無しさん:2007/04/29(日) 20:41:38
VindowsVistaでメモリが潤沢な場合は、WinFormは快適。
Vistaでメモリが潤沢というのはものすっごい環境ではあるのだが(笑
419デフォルトの名無しさん:2007/04/29(日) 20:42:36
>>417
>>418 の環境では速い(爆
420デフォルトの名無しさん:2007/04/29(日) 20:44:21
>>417
ハードウェアアクセラレーションの恩恵を受けられる場合は速くなる可能性がある
421デフォルトの名無しさん:2007/04/29(日) 20:44:43
いや、部分的に何を効率化するかが問題。
422デフォルトの名無しさん:2007/04/29(日) 21:02:35
あのねぇ、アクセラレーションとかそういうレベルの話じゃなくて、
そもそも仕組み、構造が違う。
だから、ここで出てるような問題は起こりにくいの、仕組み上ね。
423デフォルトの名無しさん:2007/04/29(日) 21:07:12
「処理」をカプセル化出来ること。
424デフォルトの名無しさん:2007/04/29(日) 21:09:08
コードブロックをオブジェクトとして扱うのに、
記述を局所化出来ること。
ローカル変数を取り込めること。
425デフォルトの名無しさん:2007/04/29(日) 21:30:31
所謂誤曝
426デフォルトの名無しさん:2007/04/29(日) 22:55:12
匿名デリゲート?
427デフォルトの名無しさん:2007/04/30(月) 11:34:49
質問です

C#から標準webブラウザを開きたいのですが、
Process.Start以外に方法はあるでしょうか?
428デフォルトの名無しさん:2007/04/30(月) 11:37:02
その前になんでProcess.Startではだめなのか
429デフォルトの名無しさん:2007/04/30(月) 11:42:20
tergetを指定して開く方法が無いものかと思案しておりまして・・・

<a target="hogehoge" ←

Process.Startだと指定できないので・・
430デフォルトの名無しさん:2007/04/30(月) 11:51:13
ブラウザを開く時には target は関係ないんじゃないか?
開いているブラウザならともかく
431デフォルトの名無しさん:2007/04/30(月) 11:54:23
と思ったけど要は既に開いているブラウザに表示したいって事ね
取りあえず Shell32.dll を参照して Shell オブジェクトの Windows プロパティで
IE と Explorer を列挙することはできる
432デフォルトの名無しさん:2007/04/30(月) 12:01:24
ファイル名だけ指定してProcess#Start()は?
433432:2007/04/30(月) 12:02:13
開きたい対象ファイルのファイル名のことね
434デフォルトの名無しさん:2007/04/30(月) 12:08:03
みなさんありがとうございます。その線で調べながらやってみます。
435デフォルトの名無しさん:2007/04/30(月) 12:31:15
回答する奴もわからないなら黙ってればいいのに。
まあ俺もなんだけどさ。

「標準ブラウザで開きたい」って言ってるじゃん。
標準ブラウザって言葉の意味がわからないのかな?
436デフォルトの名無しさん:2007/04/30(月) 12:39:18
標準
英語で言うとスタンダード
IE,Firefox,Operaあたりだったらいいんじゃないか?
437デフォルトの名無しさん:2007/04/30(月) 12:41:04
「標準」ってそういう意味じゃないよ。
standard じゃなくてdefaultの方の意味合いだね。
438427:2007/04/30(月) 12:42:18
>>435
もしかして>>431の方法ではネスケとかが無理ですか?
>>432の方法もやっぱり新規windowが開いちゃいますね・・・

さてどうしよう
439デフォルトの名無しさん:2007/04/30(月) 12:44:00
"target" なんてブラウザ依存なんだから汎用的にやろうとするほうが無理だろ。

同じウィンドウに表示したいならDDEでも使え。
440デフォルトの名無しさん:2007/04/30(月) 12:51:06
>>439

標準webブラウザといっても、全てのブラウザ対応でなく
当面はIE6〜とネスケ7.1〜に対応できればいいのですが・・・



あとできればDDEとは何か、何の略かだけでも教えてくだされば幸いです
441デフォルトの名無しさん:2007/04/30(月) 13:00:39
D 黄金週間中に
D まともなレスを
E 期待するな
442デフォルトの名無しさん:2007/04/30(月) 13:01:41
動的データ交換 (Dynamic Data Exchange, DDE)の事かな・・

>>441
藁にも縋りたいほどなのれす。でなきゃ連休中にこんな事orz

443427:2007/04/30(月) 13:30:42
C#はDDEをサポートしていない という記述を見かけた。さてはて
444デフォルトの名無しさん:2007/04/30(月) 13:50:21
そんなわけがないだろ
445デフォルトの名無しさん:2007/04/30(月) 14:08:25
DDEは標準のクラスライブラリではしてない。
P/Invokeならできるというのをサポートしているというならしてる。
446デフォルトの名無しさん:2007/04/30(月) 15:32:16
>>437
デフォルトを標準と呼ぶのか?
「既定の〜」とか
「よく使う〜」とかならんか?
「標準」は「スタンダード」だろう。
447デフォルトの名無しさん:2007/04/30(月) 15:34:48
質問者はおそらく標準を既定の意味で使ってるんだろうからそれで問題ない。
448デフォルトの名無しさん:2007/04/30(月) 15:37:34
>>447
俺今、お前が同じプロジェクトチームの奴じゃないことを祈ってる。
449デフォルトの名無しさん:2007/04/30(月) 15:42:36
>>440が釣りと判明したので、ここまで。
450デフォルトの名無しさん:2007/04/30(月) 15:42:38
顧客の用語にいちいち指摘を入れるのか?いや、そんなことはしないだろう。
標準だろうが既定だろうが字面以上の意味を読み取らねばならん。
451デフォルトの名無しさん:2007/04/30(月) 16:01:35
そりゃ入れなけりゃいかんだろう
勝手に解釈して間違ってたらどうするってんだ
452427:2007/04/30(月) 17:03:46
>>449

?
453デフォルトの名無しさん:2007/04/30(月) 18:34:32
それ以上はマ板でやれ
454デフォルトの名無しさん:2007/04/30(月) 18:36:22
終わった話題に何を言ってんだか
455デフォルトの名無しさん:2007/04/30(月) 18:53:54
プログラミングの最初の一歩としてCを勉強しようと思うんですが
将来的にはC♯も学びたいと思っています。

そこで最初からC♯を勉強したほうがよいのでしょうか?
それとも参考書などが充実していて理解しやすいらしいCから
入ったほうがいいのでしょうか?
CとC♯の互換性も気になります。
456デフォルトの名無しさん:2007/04/30(月) 18:59:55
互換性なんてまったく無いぞ
457デフォルトの名無しさん:2007/04/30(月) 19:05:34
わざわざ昔の言語からやる必要はあるまい
今なら、JavaかC#でいいんじゃない?

業務で必要になってからCやっても遅くないし
458デフォルトの名無しさん:2007/04/30(月) 19:06:35
最初にCやると古臭い変な癖がつくよ
459デフォルトの名無しさん:2007/04/30(月) 19:24:05
レスありがとうございます。

ではC♯からはじめようと思うんですが
C♯は参考書が図書館で借りれないんですよね・・・・
実費か・・・

できればメジャーで、今でも普通に使われている言語があれば
教えていただきたいです。
460デフォルトの名無しさん:2007/04/30(月) 19:27:57
それならJavaだろ
本も図書館にあるはず
JavaやったあとでC#へ移行するのも楽勝
461デフォルトの名無しさん:2007/04/30(月) 19:33:57
>>460
ありがとうございます。

やさしいjavaが図書館にあるようなので、借りてきて勉強してみます。
462デフォルトの名無しさん:2007/04/30(月) 20:03:23
本を買うより「C# 初心者」「Java 初心者」でぐぐってみると、とりあえず幸せになれる。
図書館は明日行くとして、まずぐぐるという習慣が大事かなと思うんだがどうか?

あと、C#スレでもJavaスレでもテンプレにあるリンクは一通り行ってみること。
463デフォルトの名無しさん:2007/04/30(月) 21:17:52
ありがとうございます。

いろいろ参考になるサイトが出てきたので本と合わせて
勉強したいと思います。
464デフォルトの名無しさん:2007/05/01(火) 03:26:48
C#はC/C++とは違い関数のプロトタイプ宣言なしで、前方参照により関数を利用できるようですが、
プロトタイプ宣言のようなもの(クラスの宣言含む)はC#には存在するんでしょうか。くだらない質問ですみません。
465デフォルトの名無しさん:2007/05/01(火) 07:20:27
>>464
というか出来たとしてお前はなにがしたいんだ?
前方参照という概念自体C#には存在せんぞ?
プロトタイプ宣言のようなもの(形式だけ定義)は必要な
領域ではある。P/InvokeとかCOM Interopとか。

厳密に言えば関数も存在しないし。
466デフォルトの名無しさん:2007/05/01(火) 08:09:42
ファイル操作をただいま勉強中のものです。
StreamWriter等を使えば”書き加える”ことができるようなのですが、”書き換える”にはどうしたらよいのでしょうか
たとえばファイルの中身をHello worldからHell worldにしたいということです。
独学なので何か変なことを言っていたらすいません
467デフォルトの名無しさん:2007/05/01(火) 08:14:18
バイト数が変わらないなら手はあるが、そうでないのなら大凡上書き保存
468デフォルトの名無しさん:2007/05/01(火) 08:16:36
安全性を考えると、直接書き換えるよりは、
新しくファイルを作って、
それに成功したら名前を変更して、
それに成功したら前のファイルを削除、
という手順にするのが最良。

デカいファイルだと無理な事もあるけど。
469デフォルトの名無しさん:2007/05/01(火) 12:36:10
>>464
あまり詳しくないんで真に受けないで欲しいんだけど、
「プロトタイプ宣言のようなもの」っていうのは.NETではおそらくアセンブリ自身
っていうことになるんじゃないのかな。

たぶん「リフレクション」ってキーワードでいろいろ調べるといいと思うんだけど、
つまり.NETのアセンブリはバイナリの中に自分自身の情報(どんなプロパティがあるかとか、
どんなメソッドを持っているかとか)を自己記述的に持っているというわけだ。
470デフォルトの名無しさん:2007/05/01(火) 12:39:11
>>469
おいおい…
471デフォルトの名無しさん:2007/05/01(火) 12:44:36
>>470
絶対来ると思ったけど、「プロトタイプ宣言のようなもの」の部分は
当然「意訳」して解釈してるよ。
472デフォルトの名無しさん:2007/05/01(火) 13:01:32
コンパイル時の話であって、リフレクションなんて関係無いのでは?
473デフォルトの名無しさん:2007/05/01(火) 13:14:10
アセンブリが自身の情報を持ってることの副産物として
リフレクションが可能になってるってことが言いたいんだろ
474デフォルトの名無しさん:2007/05/01(火) 13:38:32
リフレクションが可能だからこそコンパイルできるんでしょ
475デフォルトの名無しさん:2007/05/01(火) 14:17:24
なんでそんな飛躍して解釈するのかと…
ソースに宣言が必要か不必要かで考えるだけだろ。

ここでリフレクションなんて言葉は混乱の元。
476デフォルトの名無しさん:2007/05/01(火) 14:34:10
これはサーバの協力もいるかと思いますがお知恵いただけたら幸いです。
C#で差分ダウンロードを実装しようと考えています。
初心者なりに次のプロセスを考えました

既得ファイルの容量(か更新日付)把握
   ↓
サーバにファイルの容量(か更新日付)問い合わせ
   ↓
更新を確認できた
   ↓
既得ファイルの容量から、
サーバのファイル容量−既得ファイルの容量
分のリクエストをする

プロセス4の方法がわかりません。

知っているかた、もしくは差分はこういう手順だというものがあればご教授ください
477デフォルトの名無しさん:2007/05/01(火) 14:37:32
まあ、キーワードとしてはメタデータで十分だしそっちのがいいだろな。
バイナリ自体にメタデータとして必要十分な情報が入ってるから
直接バイナリを参照すればすむわけだ。
478デフォルトの名無しさん:2007/05/01(火) 14:56:22
>>476
使うプロトコルは?
479デフォルトの名無しさん:2007/05/01(火) 15:26:37
HTTPです。
ごめんなさい、自己解決しそうです。
HttpWebRequestクラスのAddRange
というのがあるんですね、今実装できる環境じゃないのですがやってみようと思います
480>>394:2007/05/01(火) 16:32:53
formがびろーんとなる件ですが、LockWindowUpdateも試してみたし、
Suspend/ResumeLayoutもコメントアウトしてみたり、フラグを変えたりして
試してみたんですが、全く効果がありませんでした。効果がないということは、
逆にSuspend/ResumeLayoutがまともに機能していないってことかもしれません。
いくら.NETとはいえ、たかがコントロールを数個描くのに1/30秒くらいかか
るってあり得ないと思うんですが。
ちなみにテストマシンはC2D E6600 + 3GBDDR2 + GeForce7600GT です。
481デフォルトの名無しさん:2007/05/01(火) 16:34:08
そうだね、プロテインだね
482デフォルトの名無しさん:2007/05/01(火) 16:49:38
>>480
体感の部分は伝わりにくいから、
アップローダにプロジェクトごとアップしてみたら?
483デフォルトの名無しさん:2007/05/01(火) 16:59:08
http://headlines.yahoo.co.jp/hl?a=20070501-00000505-yom-soci
赤ちゃんポスト完成、熊本の病院で来週にも運用開始
C#
484デフォルトの名無しさん:2007/05/01(火) 17:00:23
>>482
俺もコード見てみたい
485>>394:2007/05/01(火) 17:01:22
>>482
それはできないです。
しかし、よーくみたらなんかおかしいんです。どうもコントロールのプロパティの値が、ShowDialog()
がコールされた後に変更されているように見えます。これが「びろーん」となる原因のようです。
InitializeComponent() でコントロールをインスタンス化してプロパティ等を書き換えても、
この段階ではフォームは表示されていないはずなんですが、表示されてしまっているんですかね?
MyFormClass myForm = new MyFormClass(); ←この段階でコンストラクタからInitializeCompornent()が呼ばれているはず。
myForm.ShowDialog(); ←ここでは、InitializeCompornent()内で設定されたプロパティ値でコントロールを表示するはず。
まるで非同期でInitializeComportnent()が呼ばれているような感じです。


486>>394:2007/05/01(火) 17:02:34
>>484
てか、ふつーにフォームデザイナで適当にコントロール配置して、
コンパイル&実行すれば、びろーんを再現できますよ。
487デフォルトの名無しさん:2007/05/01(火) 17:07:26
>>486
よく分からんがその「適当」が誤解の元だったりしても知らんぞ
488デフォルトの名無しさん:2007/05/01(火) 17:07:52
>>486
それじゃ、それをアップしてみてよ。
489デフォルトの名無しさん:2007/05/01(火) 17:08:34
>>486
お前頭悪いとかよく言われない?

490>>394:2007/05/01(火) 17:13:05
あ、ごめん違うわ。
コントロールの文字列部分だけが一瞬抜けて(クリップアウト)フォーム全体が
表示されて、約0.05秒後に抜けた部分が描画されているようです。
また明日にします。ではお疲れ様。
491デフォルトの名無しさん:2007/05/01(火) 17:14:58
お疲れ
明日もまた来いよ
492>>394:2007/05/01(火) 17:27:44
あともうひとつ。Formの"Double Buffer" propertyをオンにすると、>>490に書いた「抜け」は
なくなるんですが、今のところ、リストボックスコントロールのBGパートだけ
先に描画されるという間抜けな現象が起きてます。これ絶対、.NETのパフォーマンスの問題じゃないと思う。
これ、おれが原因でなかったら、.NETの担当プログラマぬっころす。
こんなの放置しておくなんてありえないし。
493デフォルトの名無しさん:2007/05/01(火) 17:28:44
どうぞMSFTまで乗り込んできてください
494>>394:2007/05/01(火) 17:41:02
もうひとつ。
Double Bufferedにすると、少なくとも、フォームのボーダーも先に描かれます。
Double Buffered フラグを無視して、フロントバッファに直接描くやつと、ちゃんとフラグをみて
バックバッファに描くやつがいるってことかなぁ。だとしたらかなりお粗末だぞ。
495デフォルトの名無しさん:2007/05/01(火) 17:43:36
で、うpは?
496デフォルトの名無しさん:2007/05/01(火) 17:43:56
>>494
もはやここでやる話ではないと思うんだが。
497デフォルトの名無しさん:2007/05/01(火) 17:47:54
>>492
>>494
リストボックスは「コントロール」ってなってるけど実際には子ウィンドウだよ。
Double Bufferをオンにしたからって子ウィンドウの内容が親ウィンドウに取り込まれるわけじゃない。
原則子ウィンドウのクライアント領域は子ウィンドウのハンドラで行われる。

フロントバッファとか、ゲーム系の変な知識で色々勘違いしてないかね?
498>>394:2007/05/01(火) 17:48:58
アップはしませんて。NDAあるし。

>>496
うーん、もしこれが俺の初心者並の間抜けなミスあれば、ここでやる話だろうし、
MSの.NETチームの間抜けなバグであれば、ここじゃないっすね。
ということで、おつかれ。解決したら解決法を書き込みます。
499デフォルトの名無しさん:2007/05/01(火) 17:50:27
チラシの裏マジオススメ
500デフォルトの名無しさん:2007/05/01(火) 17:53:23
よくわからんけど。
JITコンパイルで時間がかかってるとか?
ngenで事前コンパイルしてみるとか。
501デフォルトの名無しさん:2007/05/01(火) 17:53:42
>>498
デザイナで適当にコントロール貼っただけのフォームでもなるんじゃなかったのか?
502デフォルトの名無しさん:2007/05/01(火) 17:58:42
>>394
のような人間を部下に持つ奴はかわいそうだな
503デフォルトの名無しさん:2007/05/01(火) 18:00:51
>>394
のような人間と同じ掲示板にいる俺可哀想
504デフォルトの名無しさん:2007/05/01(火) 18:01:51
>>498
Double Bufferをオンにしたら、ゲームみたいにウィンドウと同じサイズのバッファができて、
リストボックスやボタンもそこに描画されるものと思ってない?
だとしたらそこからして違うよ。

トップレベルウィンドウの単位でバッファを持ちたければ、
レイヤードウィンドウを使うのがお手軽。Windows 2000以降限定になるけど。
とりあえずOpacityを99%にして改善するかどうか見てみたら?
505デフォルトの名無しさん:2007/05/01(火) 18:02:17
なんというか・・・・意図を汲むことをしらなそうな奴だと思った俺が通りますよ
506デフォルトの名無しさん:2007/05/01(火) 18:07:43
NDAて

状況を再現できる最低限のコードも書けないのか?
507>>394:2007/05/01(火) 18:10:03
>>497
なるほど。リストボックスはそれで仮に納得したとして、
でも当該フォームのボーダーも先に描かれちゃう件は?

>>497
>>504
Double Bufferedというからには、Front/Back Buffer構成だと思ったけど違うんだ。
普通だったら、子フォームや子コントロールなどの子objectは親が取得したDCを
何らかの方法で参照しそうなものですよね。
そうすれば、子オブジェクトは描画先がバックだろうがフロントだろうが
テクスチャーメモリーだろうが知る必要がないし。と思うんですが。
ま、.NETのやり方は違うということで、その辺もうちょと勉強してみますわ。
どもでした。
508デフォルトの名無しさん:2007/05/01(火) 18:10:26
真性のアホなんだろ
509デフォルトの名無しさん:2007/05/01(火) 18:14:01
>>507
>Double Bufferedというからには、Front/Back Buffer構成だと思ったけど違うんだ。

.NET WinFormsのコントロールははMFCと同じでコモンコントロールの薄いラッパだよ。
WM_PAINTの中で得られるDCに対して描画しているだけなのはどっちも同じ。

というか>>397で「MFC/C++に逆戻りです」とか言っておきながら本当にMFC使ってたの?
510デフォルトの名無しさん:2007/05/01(火) 18:15:01
しかも、都合の悪い事スルーしてるしな
なんというか・・・某有名掲示板(ここではない)に来てる連中のようだな
アホス
511デフォルトの名無しさん:2007/05/01(火) 18:28:36
だからそれを改善したけりゃWPF
512デフォルトの名無しさん:2007/05/01(火) 18:30:49
自分の話は聞かせたいが、人の話は絶対聞かないタイプだな。
リアルで相手されないと掲示板にやってくる。それも初心者用のとこ。
513509:2007/05/01(火) 18:31:02
すまん>>394だった。

ついでに追記。

>当該フォームのボーダーも先に描かれちゃう件は

それを見るためにも再現コードのうpを待ってるんだけどな
というかボーダーって何のこと言ってる?
ウィンドウマネージャが描く枠線のこと?

とにかく>>394が「Double Buffered」に変な期待をしすぎているというのは確定ぽいね。
WinFormsのダブルバッファってのは、
自分のクライアント領域をメモリビットマップにキャッシュしておくというものであって、
子ウィンドウの中身までキャッシュするような代物ではない。
あほらしい動作に見えても、それがレガシーという奴だ。

コントロールの中身をビットマップに取り込みたければ、
自分でControl.DrawToBitmapメソッドを呼ぶ必要がある。
514デフォルトの名無しさん:2007/05/01(火) 19:28:29
構うと一生独り言続けちゃいますよ
515デフォルトの名無しさん:2007/05/01(火) 21:40:28
>>486で言ってるようにVSが自動生成したコードで現象でるんだろ?
で、他の誰も同意してないんだから>>394だけの問題じゃねーの?

たとえば、配置してるコントロールは標準のものじゃなくてサードパーティー製とか
アセンブリキャッシュ関係をイジってるとか。

そもそもデバッグ環境じゃなくて、リリースビルドしたもので試してるんだよな?
516デフォルトの名無しさん:2007/05/01(火) 21:42:42
と言うか他の人は気にならない一瞬を問題にしてるだけじゃないかな
ま、恐らくこれ以上お互い得るものはないね
517デフォルトの名無しさん:2007/05/01(火) 21:43:27
いまどき(というかWin98の時代だってそうだが)リリースとデバッグで
そんなところに違いが出るような貧弱な環境ありえねえよ
518デフォルトの名無しさん:2007/05/01(火) 23:20:45
そうでもないよ
519デフォルトの名無しさん:2007/05/01(火) 23:58:15
最近C#始めてみたのですが、いきなりつまずいたので質問させて頂きます。
VS2005のsp1でWindowsフォームアプリケーションを作成しようとして、
とりあえずメニューをフォームデザイナで作ったのですが、色が青色になっています。
なんか気持ち悪いのでVS2005のメニューのような色に変更したいのですが
変更方法が分かりませんでした。どなたかご存知でしたら教えて頂けないでしょうか
520デフォルトの名無しさん:2007/05/02(水) 00:36:48
>>519
RenderMode を System にする
521デフォルトの名無しさん:2007/05/02(水) 01:15:56
MenuStripを使わないでMainMenuを使う
522デフォルトの名無しさん:2007/05/02(水) 01:33:24
>>520-521
残念ながらRenderModeでは希望のメニューを作成することはできませんでした。
ツールボックスにMainMenuというのが無かったので調べてやってみたのですが
MainMenuを使った場合も同様でした。
VS2005のメニューそのままを作りたいのですが、無理なのでしょうか。


MainMenuを試したソース
static void Main()
{
Form form1 = new Form();

MainMenu mm = new MainMenu();
MenuItem mi = mm.MenuItems.Add("ファイル(&F)");
mi.MenuItems.Add(new MenuItem("開く(&O)..."));

form1.Menu = mm;

Application.EnableVisualStyles();
Application.Run(form1);
}
523デフォルトの名無しさん:2007/05/02(水) 01:44:27
MenuStripを使うならToolStripManager.VisualStylesEnabledを偽値に
524デフォルトの名無しさん:2007/05/02(水) 01:44:52
>>519
このスレの >>205 をミロ
525デフォルトの名無しさん:2007/05/02(水) 01:57:43
>>523-524
できました。ありがとうございます。これで気持ちよく先に進めます
526デフォルトの名無しさん:2007/05/04(金) 23:30:31
全くのプログラム初心者なのですが
visual stadio.NETを使ってC#のプログラムを作成するのは難しいですか?
また習得するのにどれくらいの期間がかるものなのでしょうか。
527デフォルトの名無しさん:2007/05/04(金) 23:34:46
何を作るかによって全く異なるので答えられない
528デフォルトの名無しさん:2007/05/04(金) 23:43:54
ゲームなんかだと,ちゃんとした数学の知識があるかどうかで全然違う
529デフォルトの名無しさん:2007/05/05(土) 01:57:25
賢いか馬鹿かによって全く異なるので答えられない
530デフォルトの名無しさん:2007/05/05(土) 02:02:10
ゲームにそんな高度な数学の知識って必要なの?
行列と、多少の微分不定式程度じゃないかと…
531デフォルトの名無しさん:2007/05/05(土) 02:11:33
>>526
以前は、非常に難しかったことが
初心者あるいは中級者でもそれなりに出来てしまうのがC#
ただ、プログラミングは奥が深いので10年やっても、
勉強すべきことはいくらでもある

どんなことがしたいかを書いてみたら?
532デフォルトの名無しさん:2007/05/05(土) 02:15:53
>>530
ってか、ゲーム以外で数学なんて使う分野あるか?
533デフォルトの名無しさん:2007/05/05(土) 02:19:30
数学はすべての基礎
534デフォルトの名無しさん:2007/05/05(土) 02:22:08
シミュレーション
パターン認識
機械学習
制御
画像処理
        etc

いっくらでもあるんじゃなかろか
最近では現代数学が必要になってきてるかと
535デフォルトの名無しさん:2007/05/05(土) 02:25:49
pussy

good! once more

ぷっしぃ

once more

ぷ・っ・し・ぃ

GOOOOD!
536デフォルトの名無しさん:2007/05/05(土) 05:30:01
数学じゃなくて算数だよその程度の事は。
537デフォルトの名無しさん:2007/05/05(土) 06:26:01
set theory, topology, category theory ・・・
この時点で算数はないですよ
538デフォルトの名無しさん:2007/05/05(土) 07:13:29
プログラミングに必要なのは国語
なにをどうしたいかということが明確に表現できることが重要
539デフォルトの名無しさん:2007/05/05(土) 08:27:20
>>538
言いたい事は分かるが、明確に表現出来ても実装出来なきゃ意味が無い。

机上の空論
絵に描いた餅
540デフォルトの名無しさん:2007/05/05(土) 08:50:03
現代のプログラミング言語は、
「なにをどうしたいかということが明確に表現でき」ていれば
それをそのまま、書けばいい

というか、ソレが高級言語だろう。
541デフォルトの名無しさん:2007/05/05(土) 09:02:32
やりたい事がライブラリでカバー出来てない場合をどうするかだね
542デフォルトの名無しさん:2007/05/05(土) 09:03:28
なにか変なの沸いてるな。

>526
ぶっちゃけ、プログラムを作るのに数学は必要ではない。大概は算数レベルで事足りる。
上で微分不等式なんて書いてる奴は多分自分で知ってる言葉を並べただけなので安心しろ。
「C# 初心者」でぐぐって、適当なサイトを選んでサンプルとして書かれているプログラムを動かしているうちに
なんとかなるもんだ。
アルゴリズムとかデータ構造とかオブジェクト指向とかいう言葉は、慣れてから気にしていい。


ただ、本格的に作り始めるとなるとゲームでもなんでも数学とか他の知識が必要になる。
物理シミュレーションでは当然に、ほとんど数学に縁の無いRPGでもダメージ計算式の設計など確率が絡んでくる。
(確率を考えなくても作れるけど、ゲームバランスは試行錯誤になる)
543デフォルトの名無しさん:2007/05/05(土) 11:17:29
MDI子フォームを最大化させたときに表示されるメニューバーのアイコンや最小化ボタンを消したいです。
(以下、Form1はMDI子フォームです)

子フォーム側のイベントハンドラで以下のように設定すれば最大化したときに消えますが、
private void Form1_SizeChanged(object sender, EventArgs e)
{
this.MaximizeBox = !(this.WindowState == FormWindowState.Maximized);
this.MinimizeBox = !(this.WindowState == FormWindowState.Maximized);
this.ControlBox = !(this.WindowState == FormWindowState.Maximized);
}

あらかじめ最大化させた状態だと表示されてしまいます。
private void Form1_Load(object sender, EventArgs e)
{
// 最大化された状態で表示させる
this.WindowState = FormWindowState.Maximized;
}

デザイン時やForm1_LoadでControlBoxをfalseにしても表示されてしまいます。
タイミング間違ってるんでしょうか?

WindowsXPsp2、VC#2005expressつかってます。
544デフォルトの名無しさん:2007/05/05(土) 13:15:09
>532
金融のプログラムでニュートン法使ったなぁ。
電気科卒業してきた新人に式を微分させてみたら微分を理解してなかったよorz
545デフォルトの名無しさん:2007/05/05(土) 13:30:25
金だな・・・なんでC#なんだか・・・
546デフォルトの名無しさん:2007/05/05(土) 13:38:30
>>543
試してみたけど、Form1のプロパティのWindowStateが初めからMaximizedになってるんじゃない?

ただ、SizeChangedに置くべきなのかどうか???

StyleChangedに置くと異常動作するしなぁ・・・無限ループをイベント中フラグで弾いても。
547543:2007/05/05(土) 15:23:04
>>546
むむむ・・・
どのイベントハンドラで処理するのが適切なんでしょうね。
WindowStateChangedがあるかと期待したのにorz

ちなみに Form1_SizeChanged の中をコメントアウトしたら、子フォーム追加時に最大化させておいてもアイコン等表示されませんでした。
(MDI親ウィンドウ側で)
Form f = new Form1();
f.WindowState = FormWindowState.Maximized;
f.ControlBox = false;
f.MinimizeBox = false;
f.MaximizeBox = false;
f.Text = @"";
f.MdiParent = this;
f.Show(); // MDI子ウィンドウを最初から最大化させてもアイコンや最小化ボタンは表示されない(・∀・)
548543:2007/05/05(土) 15:33:56
よく考えたらあんまり人に優しくないUIだなあ
ヤメヤメ
549デフォルトの名無しさん:2007/05/05(土) 15:34:39
>>543
ひょっとしてやりたいこと勘違いしてるかも知れないけど、こうやったら出来たよ。
理由はよくわからない。

protected override void OnHandleCreated(EventArgs e)
{
base.OnHandleCreated(e);
this.MinimizeBox = false;
this.ControlBox = false;
}

protected override void OnLoad(EventArgs e)
{
Form pf = this.MdiParent;
pf.ClientSize = pf.ClientSize;
}
550デフォルトの名無しさん:2007/05/05(土) 16:30:13
>pf.ClientSize = pf.ClientSize;
???
551デフォルトの名無しさん:2007/05/05(土) 16:32:28
>>550
メタファ処理だよ。Cやってる人なら知ってるだろう。
552デフォルトの名無しさん:2007/05/05(土) 16:56:22
メタファ処理ってなんじゃらほい
553デフォルトの名無しさん:2007/05/05(土) 17:09:20
変数使われてないとかいう警告を避ける為に
無意味な代入するやつのことか?
554デフォルトの名無しさん:2007/05/05(土) 17:18:54
"メタファ処理" の検索結果 1 件中 日本語 のページ 1 - 1 件目
"メタファー処理" の検索結果 5 件中 日本語 のページ 1 - 5 件目
555デフォルトの名無しさん:2007/05/05(土) 18:08:52
>>551の人気に嫉妬
556デフォルトの名無しさん:2007/05/05(土) 18:44:04
>>547
フォームの表示が完了するまでのWindowStateの値が変だ。
なぜかイベントの中ではNormalを返してる。とりあえずフラグで制御してみた。

bool shown_ = false;

public formMdiC1() {
    InitializeComponent();
    this.WindowState = FormWindowState.Maximized;
    this.MaximizeBox = this.MinimizeBox = this.ControlBox = false;
}

private void formMdiC1_SizeChanged(object sender, EventArgs e) {
  if (shown_)
            this.MaximizeBox = this.MinimizeBox = this.ControlBox 
                    = !(this.WindowState == FormWindowState.Maximized);
}
private void formMdiC1_Shown(object sender, EventArgs e) {
  shown_ = true;
}
557デフォルトの名無しさん:2007/05/05(土) 20:04:27
>>551
詳しく解説頼む
Google先生教えてくれなかった
558デフォルトの名無しさん:2007/05/05(土) 20:58:32
メタファ処理について知りたいのでage
559デフォルトの名無しさん:2007/05/06(日) 21:38:14
549だけど、
メタファ処理については知らないけど、なんで

pf.ClientSize = pf.ClientSize;

こんな無駄なことをしてるかはコメントアウトして同じコードを実行してみればみればわかるよ。
560デフォルトの名無しさん:2007/05/06(日) 23:37:33
プロパティだから無駄なことに見えてちゃんと処理が走っているということかと。
561デフォルトの名無しさん:2007/05/07(月) 02:49:14
メタファだろうがなんだろうが、ソース(文法上)から意味が読み取れないコードなんて糞だけどな。
562デフォルトの名無しさん:2007/05/07(月) 08:14:47
>>561
頭悪いでしょ君
563デフォルトの名無しさん:2007/05/07(月) 15:51:13
PerformLayout()じゃダメなの?
564デフォルトの名無しさん:2007/05/07(月) 18:28:02
で、どんな意味あるの?
565デフォルトの名無しさん:2007/05/07(月) 18:50:53
「〜知ってるだろ?」「〜知ってると思うけど」
「〜わかるよな?」「〜わかるよ」

説明できない人はよくこれを使う
566デフォルトの名無しさん:2007/05/07(月) 18:54:10
コメントアウトして実行してみましたが違いが分かりませんでした
どんな意味があるのか教えてください
567デフォルトの名無しさん:2007/05/07(月) 19:23:16
>>565
まあひょっとするとそういう傾向はあるのかもしれんが、
しかしもし>>559について言っているのなら、
それは単に君の「幸せ回路」が発動してるだけだと思うよ。
568デフォルトの名無しさん:2007/05/07(月) 19:23:45
で、どんな意味あるの?
569デフォルトの名無しさん:2007/05/07(月) 22:54:19
コンパイル時に最適化されちゃわないの?
570デフォルトの名無しさん:2007/05/07(月) 23:01:55
get_MdiParentは中で結構いろんなことしてるぞ
ClientSizeはほとんど意味無さそうに見えるが
571デフォルトの名無しさん:2007/05/07(月) 23:04:43
だから何を(ry
572デフォルトの名無しさん:2007/05/07(月) 23:12:37
プロパティを使用するメリットが分かりません。簡単に教えていただけますか?
Test2クラスではプロパティを使ってますが、Test1クラスでも同じ結果が得られますが、
この場合にTest2クラスを使うメリットがよく分かりません。

private void button1_Click() {
Test1 c = new Test1();
c.a = 4;
c.b = 3;
this.textBox1.Text = c.Sum().ToString();
}
private void button2_Click() {
Test2 c = new Test2();
c.A = 4;
c.B = 3;
this.textBox2.Text = c.Sum.ToString();
}
class Test1 {
public int a;
public int b;
public int Sum() { return (a + b); }
}

class Test2 {
private int a;
private int b;
public int A { set { this.a = value; } get { return this.a; } }
public int B { set { this.b = value; } get { return this.b; } }
public int Sum { get { return (a + b); } }
}
573デフォルトの名無しさん:2007/05/07(月) 23:16:56
class Test2 {
private int sum;
private int b;
public int A { set { sum = b + value; } get { return sum - b; } }
public int B { set { b = value; } get { return b; } }
public int Sum { get { return sum; } }
}
例えばこんなふうにTest2の実装を変更しても呼び出し側のコードに影響が及ばない。
574572:2007/05/07(月) 23:23:10
>>573
呼び出し側に影響の有無だけであって、変更の必要がなければTest1でもOKなのでしょうか?
575デフォルトの名無しさん:2007/05/07(月) 23:28:32
>>573は明らかにおかしいけどお好きにどうぞ
576デフォルトの名無しさん:2007/05/07(月) 23:42:26
572が何を知りたいと思っているのかがよくわからない。

プロパティなんてイラネ、と思っていてそれを誰かに追認して欲しいのか。

それとも、フィールドをpublicで公開した場合と等価の動作でいい場合も
あえてプロパティを使う必要があるのかどうか聞きたいのか。

あるいは、プロパティの有難みが感じられるようなケースを挙げてくれというのか。
577デフォルトの名無しさん:2007/05/08(火) 00:40:44
Processクラスを使って或るCUIプログラムのGUIラッパープログラムを作ってます。
そのCUIプログラムでは処理を中断させたいときはEscを押すのですが、
GUIラッパーからはWin32APIも使ってこのようなコードで行うことができました。
SetForegroundWindow(process.MainWindowHandle);
SendKeys.Send("{Esc}");
でも標準入出力はリダイレクトしていて何も表示されないウィンドウがあると邪魔なので
CUIプログラムのプロセスを起動する前にこう↓してウィンドウを作らないようにしたいのですが
process.StartInfo.CreateNoWindow = true;
当然これだとMainWindowHandleが取得できなくなって先の方法が使えません。
何か別のいい方法はありませんか?
578デフォルトの名無しさん:2007/05/08(火) 01:11:31
ウィンドウ作って見えないようにでもしといたら
579デフォルトの名無しさん:2007/05/08(火) 01:38:43
>>567
で、どんな意味あるの?
580デフォルトの名無しさん:2007/05/08(火) 01:39:15
>>579
学校に行けって意味
581デフォルトの名無しさん:2007/05/08(火) 07:19:25
で、どんな意味あるの?
582デフォルトの名無しさん:2007/05/08(火) 08:15:06
保守
583デフォルトの名無しさん:2007/05/08(火) 08:19:32
わざわざ保守とカキコする意味があんのか?
584デフォルトの名無しさん:2007/05/08(火) 09:15:12
とりあえずcが関係あると思いここに来てしまったです
Microsoftで再配布されてるc++のsp1ランタイムをインストールしようと思ったのですが、
コマンドの文法選択が間違ってる的なerrorが表示されます。
これを看破するにはどうしたらいいんでしょうかorz

スレ違いでしたらほんとすいません
585デフォルトの名無しさん:2007/05/08(火) 09:24:42
スレ違い
586デフォルトの名無しさん:2007/05/08(火) 09:42:41
>>585
了解しやした申し訳ないっす!
587577:2007/05/08(火) 10:08:44
とりあえずWin32APIを使ってメインウィンドウを隠すようにしました。
ShowWindow(process.MainWindowHandle, SW_HIDE);
CUIプログラムの起動直後には一瞬表示されますけど。
588デフォルトの名無しさん:2007/05/08(火) 10:19:37
見える前に消せる
589デフォルトの名無しさん:2007/05/08(火) 10:53:14
どうやって?
590デフォルトの名無しさん:2007/05/08(火) 17:05:03
>>2の無料ダウンロード のISOファイルのサイズが何度DLしてみても
書かれてるサイズと合わないんだけど良いの?
591デフォルトの名無しさん:2007/05/08(火) 18:17:45
>>559
で、どんな意味あるの?
592デフォルトの名無しさん:2007/05/08(火) 20:09:52
しつこいと嫌われますよ。
レイアウトが実行されるみたいですね。
それだったらPerformLayoutしろって話ですが
593デフォルトの名無しさん:2007/05/08(火) 20:18:14
保守
594デフォルトの名無しさん:2007/05/08(火) 20:51:56
>>577
試してないので知らんがESC(U+001Bだっけ?)を標準入力に流せば
ええんでないの?
595577:2007/05/08(火) 20:55:29
>>594
それは初めに試してだめでした。
596577:2007/05/08(火) 21:06:17
>SetForegroundWindow(process.MainWindowHandle);
>SendKeys.Send("{Esc}");
ちなみに↑の部分は↓でも動作しました。
SendMessage(process.MainWindowHandle, WM_CHAR, VK_ESCAPE, 0);
597デフォルトの名無しさん:2007/05/08(火) 21:13:25
>>595
ならもうCtrl+Cで強制終(ry
598577:2007/05/08(火) 21:18:33
処理を中断すると言ってもCUIプログラムを終了させるわけじゃないので。
後でさらにコマンドを入力して処理を再開させたり別の処理をさせたりします。
599デフォルトの名無しさん:2007/05/08(火) 21:46:25

       FOX★公認!!!

俺たちのクリックで日本を一位にしようぜ!!
“30年は日本に手は出せないな”という勝ち方をしたい
http://wwwww.2ch.net/test/read.cgi/news4vip/1178602852/

1. ポーランド  139,797,680
2. チリ     137,040,439
3. ★日本    86,475,213★
4. イスラエル  80,930,530
5. スロベニア  57,137,042
6. フィンランド  40,857,499

石を投げる戦争から人は進化・進歩を遂げ、剣や槍などの武器をもって戦うようになった
人間はさらに発展し兵器を使う戦争を始めた
そして今、指先一つを武器とした電脳戦争が勃発したのであった・・・
皇国を勝利へと導くには貴様らの参戦が不可欠である

・戦場
http://www.clickclickclick.com/default.asp
・まとめサイト
http://www33.atwiki.jp/clickvip/
600デフォルトの名無しさん:2007/05/08(火) 21:51:19
コピペ君って馬鹿だな、まで読んだ。
601デフォルトの名無しさん:2007/05/08(火) 22:26:02
gooの英語辞書を開くとflashを使って発音してくれるんですが、
WebBrowserコントロールでこのページを開くとこのflashが
正しく動いてくれないみたい(2回目のクリックができなくなる)
なんですが、なぜでしょうか?

http://dictionary.goo.ne.jp/search.php?MT=sharp&kind=ej&mode=0&base=1&row=0

お願いします。
602デフォルトの名無しさん:2007/05/09(水) 06:37:03
C#ってすげーー便利な反面、遅いんだよなぁ
すげー良いんだけと、ちょっとかゆい所に手が届かないっていうか
C++とC#の中間でネイティブな実行ファイルもはき出せる言語が欲しい
603デフォルトの名無しさん:2007/05/09(水) 07:27:44
Dをどうぞ
604デフォルトの名無しさん:2007/05/09(水) 07:32:25
D が完成しさえすれば飛んでいくんだけどなあ。
605デフォルトの名無しさん:2007/05/09(水) 10:40:01
D は既に 1.0 リリースされてるよ
606デフォルトの名無しさん:2007/05/09(水) 15:57:22
バカでもプーでもわかるような参考書教えてくれ
いままでまったくプログラム経験が無い人向けで
3千円以内くらいのヤツで
初心者はとりあえず手元に置いておけみたいな感じのん頼む
607デフォルトの名無しさん:2007/05/09(水) 16:01:04
そんなやつはやらない方がいい
他に出来そうなことでもやっとけ
608デフォルトの名無しさん:2007/05/09(水) 16:06:47
>>602
C++とC#の中間は難しいが CとC#の中間ならDelphiなんてどうだ?
609デフォルトの名無しさん:2007/05/09(水) 16:16:35
>>605
もう既に最新版1.014は1.0と互換性ないけどなw
610デフォルトの名無しさん:2007/05/09(水) 16:21:18
普及する可能性が見当たらない言語覚えても業務では使えないぞ。
趣味で行うなら問題ないけどね。
611デフォルトの名無しさん:2007/05/09(水) 16:25:28
>>609
mjd?
メジャーバージョンアプでもナイのに互換性なさすぎワロタ
612デフォルトの名無しさん:2007/05/09(水) 16:27:23
>>610 プログラミング言語なんて覚えるものじゃない。 道具であって使うもの。
業務にどうとか言ってると自分が道具として使い捨てられるだけ。

作ってなんぼ
613デフォルトの名無しさん:2007/05/09(水) 17:41:13
ここ初心者用じゃなかったのか?
将来の可能性とか語る話題は玄人スレでやればいいじゃん
おいだされたの?
614デフォルトの名無しさん:2007/05/09(水) 17:58:43
.NETやC#の将来ネタは向こうでもやめろ
615デフォルトの名無しさん:2007/05/09(水) 19:50:47
C#のサイトを回ってコンソールでC#の文法は分かるようになったのですが
Windowsアプリケーションはどうやって作ればいいのか分かりません
どこか解説サイトなどないでしょうか?
616デフォルトの名無しさん:2007/05/09(水) 19:52:07
本買ったら大抵書いてあるよ
617デフォルトの名無しさん:2007/05/09(水) 19:54:56
やっぱり本買うべきですか
何かお勧めの本があったら教えて頂けませんか?
618デフォルトの名無しさん:2007/05/09(水) 20:17:44
>>617
俺的には
Wroxシリーズがいいかな?
外国の書籍の翻訳なんだけど基礎からシッカリ書かれてるから
殆どが腐った内容の国内本とはわけが違う
ただそのぶん高いんだけどな・・・・
619デフォルトの名無しさん:2007/05/09(水) 20:40:10
本なんて買わない人もいる。
VC#EE落としてデザイナで遊んでれば分かるようにならないか?
620デフォルトの名無しさん:2007/05/09(水) 20:44:46
俺もデザイナで遊んでてわかるようになった
てかC#はGUIから始めたから後でCUIプログラム作るために独習C#買ったくらいだ
621デフォルトの名無しさん:2007/05/09(水) 22:02:52
ListView(Detai)をFormに置いて、データ表示させることができたんですけど、
カラムの幅をマウスで動かすと、ウィンドウ全体を描写しているみたいで、
ちらちらします。

例えば、エクスプローラの表示形式を詳細にして、
同じようにカラム幅を変えても、そんなにちらちらとしないんですけど、
どこか設定やプログラムをしないといけないのでしょうか?

622デフォルトの名無しさん:2007/05/09(水) 22:13:22
ダブルバッファリングしてる?
623617:2007/05/09(水) 22:23:58
>>618-620
ありがとうございます
とりあえず色々いじってみてわからなかったらWroxというのを見てみたいと思います
624デフォルトの名無しさん:2007/05/09(水) 23:32:10
Javaを使ったオブジェクト指向設計開発歴7年の自分がC#を勉強しようと思います。
オススメの書籍を教えてください。
625デフォルトの名無しさん:2007/05/09(水) 23:34:16
独習C#
626デフォルトの名無しさん:2007/05/09(水) 23:43:57
開発暦7年もあるなら人に聞かなくてもお勧めの書籍位、自分で探せるだろ
627デフォルトの名無しさん:2007/05/09(水) 23:47:29
Javaしかやったことないの?
628デフォルトの名無しさん:2007/05/09(水) 23:51:00
>>623
インテリセンス
ツールチップ
デザイナ
629デフォルトの名無しさん:2007/05/09(水) 23:51:23
自信持ってエキスパートと言えるのはJavaのみ。
WEBを中心にやってたから関連するHTML,JavaScriptも人並み以上はいける

C,PHP,Perl,VB6は少しやっただけ。機会があまりなかった。
しかし勉強してすぐに身につける自信はある
630デフォルトの名無しさん:2007/05/09(水) 23:52:33
そうですか。
631デフォルトの名無しさん:2007/05/09(水) 23:58:21
それだけやってたら、書店でいくつか本をめくれば、
どれがいいとかすぐ分かるんじゃないの?
632デフォルトの名無しさん:2007/05/10(木) 00:10:16
VC#いじっとけばすぐできるようになるでしょ。
ネットで入門サイト見たりソースコード拾ってきたりしてさ。
クラスライブラリの把握は時間がかかるだろうけど、基礎の習得には1週間もかからないと思うよ。
自分はC#からJavaに進んだけど、違いがあんまり無いから一方ができれば本は買わなくてもいいと思ってる。
633デフォルトの名無しさん:2007/05/10(木) 01:11:05
はじめまして。ど素人です。
インターフェースって何のためにあるのでしょうか?
メソッドの宣言をするだけなのでしょうか?
いろんなフォームに同じような機能を持たせたいときに、
インターフェースに宣言しておいて、各フォーム毎にそれを実現するための
似たようなコードを書かなくてはならないのでしょうか?

いろんな機能をまとめたフォームをいくつか作ってそれを継承させようと思ったのですが、
いろいろ調べても多重継承を避けるためにインターフェースを使えと書いてあります。
しかしながらいま一つ宣言だけをするクラスを作る利点がピンときません。

どなたか「こういうふうに便利だよ」って説明してください。
よろしくお願いします。
634デフォルトの名無しさん:2007/05/10(木) 01:17:59
文字コード変換で詰まってしまいました

string s = "ABCDE";
s.Replace("CDE","345");
textBox1.Text = s;

int i = s2.IndexOf("CDE");
MessageBox.Show(i.ToString());

これを実行すると本当は"AB345"と表示して欲しいのに"ABCDE"と置換されないまま表示されてしまいます
メッセージボックスには"2"と表示されます
なぜなんでしょうか?
635デフォルトの名無しさん:2007/05/10(木) 01:20:18
s = s.Replace("CDE","345");
636デフォルトの名無しさん:2007/05/10(木) 01:22:27
どこが文字コード変換なのかと
637デフォルトの名無しさん:2007/05/10(木) 01:32:44
>>635様様様様

うがぁぁぁあ
うまくいきました

>>636さん
ネット上のurlファイル?を読み込んで、改行コードを変換することろで悩んでたんです
文字コードは変換できてたんですが、改行がぐちゃぐちゃになってたので。


解決できました。ありがとうございましたm(_ _)mフカブカ
638デフォルトの名無しさん:2007/05/10(木) 01:38:08
>>633
例えば、何らかの文字列を扱う処理が必要になったとする。
そこで必要になるのは、簡単のため、先頭から順に 1 バイトずつ取得していく処理のみとする。
その文字列は、普通の string の場合もあれば、ファイルだったり、Web 上のファイルだったりするとする。

そういう場合、文字列がどこからどういう風に来るかは一旦考えず、
public interface IStream { public char getc(); } というインタフェースを作っておいて、
この IStream を使って目的の動作を記述しておく。
例えば、送られてくる文字をそのまま出力する処理を書いたとする。

void display(IStream stream) {
 char ch;
 while((ch = getc()) != 0) {
  Console.Write(ch);
 }
}

すると、あとは IStream を実装したクラス StringStream, FileStream, HTTPStream などを作って、
それぞれで文字列、ファイル、Web から 1 バイトずつ取得するような getc を実装してやれば、
文字列がどこから来るかに関わらず、文字列を表示する処理 display を利用する事ができる。

display(new StringStream("hoge"));
display(new FileStream("test.txt"));
display(new HTTPStream("http://www.google.com/"));

IStream を通して処理を書けば、文字列のやってくる場所ごとに文字列を表示する処理を書く必要がなくなり、
汎用的に処理を記述する事が出来る。

多重継承を避けるために、クラスにしたいけどやむなくインタフェースを使うって事はあるけど、
それは仕方なしに使ってる部分が大きい。
639デフォルトの名無しさん:2007/05/10(木) 01:39:48
そりゃ面白い質問の仕方だなw
640デフォルトの名無しさん:2007/05/10(木) 01:49:41
>>633
基本的には、継承の置き換えだから
利点もほぼ同じと思っていいんじゃない?

・ポリモーフィズムとしての役割があり、その利点も同様
・インスタンスではなく、インターフェースの授受により、余分なものを見えなくすることが出来る
 (カプセル化)
・インターフェースで実装される内容が美味く統一されていれば、読み手は一律
 同様な機能として理解が早い(可読性)
641デフォルトの名無しさん:2007/05/10(木) 02:04:11
C#でDirectXゲーム作成してみようと思っているんですけど、
参考になるようなプログラムありませんか?
642デフォルトの名無しさん:2007/05/10(木) 02:09:10
何のライブラリを使うんだ?
643デフォルトの名無しさん:2007/05/10(木) 02:09:56
>>638
さっそくありがとうございます。私がものすごくたくさん勘違いをしているようで整理がつかないのですが・・・
インターフェースには処理はかけないと理解しているのですが、

>例えば、送られてくる文字をそのまま出力する処理を書いたとする。

この文章以下のコードはインターフェースの中に書くのでしょうか?
そしてそれをクラス StringStream, FileStream, HTTPStreamで呼び出せるということでしょうか?

それぞれのクラスがdisplay()というメソッドを持つというのは理解できるのですが、
やはりその処理はそれぞれのクラスに記述しているのでしょうか?

> 汎用的に処理を記述する事が出来る。
とはインターフェースの中にも処理が記述できてそれを引き継いだクラスには
書かなくてもよいということなのでしょうか?

>>639
そもそも用途が間違ってるのでしょうか・・・

>>640
継承は基底クラスのメソッドをサブクラスに記述しなくても呼び出すことができ、
さらにサブクラス独自のメソッドを追加できることだとおもっちます。
よく使う処理を基底クラスにまとめておいて、特別なメソッドだけをサブクラスに書けばよいのかと・・・

> ポリモーフィズム
638さんの説明されていることと同じでしょうか?
>みえなくすることができる
そもそもインターフェースとは宣言だけでなにもないものだと理解しています。
何をみえなくすることができるのでしょうか?
>可読性
同じインターフェースを持つクラスはかならず同じメソッドをもっているということですね?
これは理解できます・・・ありがとうございます。
644641:2007/05/10(木) 02:20:20
3Dゲームの作成を考えていますけど、XNAだとマウス操作を受け付けないので
MDXを使用するつもりです。
645デフォルトの名無しさん:2007/05/10(木) 02:24:29
>>643
IStream に処理は書いてないでしょ。
>public interface IStream { public char getc(); }
ほら。

getc は StringStream, FileStream, HTTPStream の方で実装する。

>それぞれのクラスがdisplay()というメソッドを持つというのは理解できるのですが、
いや、display というメソッドは持たない。
display というメソッドは全く別のクラスが持つことになる。
646デフォルトの名無しさん:2007/05/10(木) 02:41:16
>>643
おお!私が何を勘違いしているのかがわかってきました。
StringStreamクラスはStringStream専用のgetcのコードが書いてあるのですね?

さらに質問で申し訳ないのですが、この例で
void display(IStream stream) {
 char ch;
 while((ch = getc()) != 0) {
  Console.Write(ch);
 }
}

void display(IStream stream) {
 char ch;
 while((ch = stream.getc()) != 0) {
         ^^^^^^
  Console.Write(ch);
 }
}
ということでしょうか?streamには StringStream, FileStream, HTTPStreamの
どれでも指定できるということですね?
重ね重ね申し訳ないですが、よろしくお願いします。
647デフォルトの名無しさん:2007/05/10(木) 02:44:14
>>643
まあ、最初から全て理解は不可能ですので、頭の片隅にでもおいておくのがいいかも
今後、いろいろなサンプルを見ていれば自然と分かることだと思います。

>638さんの説明されていることと同じでしょうか?
一部同じといった方がいいかも
自分もどこまでポリモーフィズムについて理解してるのか自信ないので、
『ポリモーフィズム 利点』とかでぐぐって見てください。
結構奥が深い物です 多分 ^^;)

>何をみえなくすることができるのでしょうか?
派生クラスは基底クラスにキャスト出来るのは知ってますよね
基底クラスで受け取った場合は派生クラスの全てが見える訳ではなく基底クラスの部分のみが見える。
同様にインターフェースで受け取ることも出来(例えばメソッドの引数)、その場合インターフェースで
定義された物以外は使えなくなる。

>可読性
638さんの書かれている内容もそうなんだけど。
違う物(異なるクラス)を同じような扱い(機能)が可能となる(つまりポリモーフィズム)

違う例でいえば、図形で□とか○とかあって、そのクラスは個々違うんだけど
拡大とか縮小とかいうインターフェースを使った場合。
インターフェースを見れば、違うクラスでも同じような役割を果たしているはずだから
中身を知らなくても大枠その役割は理解出来ますよねー
名前から分かるといわれるとそれまでですが…
まあ、インターフェースの場合メソッド群ですので、その部分をちょっと強調してみたと理解してもらえば
648デフォルトの名無しさん:2007/05/10(木) 03:19:10
>>643
ごめん一部答えてなかった。

>継承は基底クラスのメソッドをサブクラスに記述しなくても呼び出すことができ…
うん、これは継承の重要な役割だけど、その一部です。
たぶんだけど、デザインパターンの本で継承とかの具体的サンプルに当たって見るのがいいかもね
既にオブジェクト指向の本を読んでいるのであればだけど

人によってデザパタは役に立たないという人もいるけど、
自分的にはオブジェクト指向を理解する早道だと思うし、役に立つと思う
649デフォルトの名無しさん:2007/05/10(木) 04:49:54
>>646
おお、そうそう。ミスってた。スマン。
650646:2007/05/10(木) 06:40:48
>>647,648
細かなご説明ありがとうございます。
そこらの本よりも詳しくわかりやすく教えていただいて感謝です。
継承=コードの省略というように短絡的に考えず、
もっといろいろ調べてみます。

>>649
済まないどころか、わかりやすいサンプルで説明してもらった上に、
よい問題にもなりました!

まだまだ私は勉強が足りないようですが、
皆様を目標として頑張りたいです。
ありがとうございました。
651デフォルトの名無しさん:2007/05/10(木) 10:46:45
インターフェースの利点:
上に書かれてることに含まれるちゃあ含まれるんだけど
粗結合や部品化の観点も強調した方がいいかな
まあ、使い方によって様々な利点があるってことね

粗結合:インターフェースの実装側のソースが変わっても、利用側は変える必要がない
     ソースがぐちゃぐちゃにならないのでわかりやすくなる
     変更に強くなる
部品化:内部の詳細(インターフェースの実装)に立ち入らなくてもいいため
     わかりやすく、使いやすい。

ただ、こういった利点を享受しようとするには、インターフェースの切り方が非常に重要
652デフォルトの名無しさん:2007/05/10(木) 11:50:08
ハナからインターフェイスつかうか 継承使ってShadowsするか
結構悩む時がある俺
653デフォルトの名無しさん:2007/05/10(木) 12:35:43
ライブラリーの作者の視点が抜けてるな。
インターフェイスのコンセプトは一言で言えば契約じゃないの?
これのおかげで、ライブラリを作った時点では存在してもいないクラスを
操作するライブラリが作れるわけだ。

っていうか、インターフェイスについて最初に質問した人に言いたいけど、
机上でゴチャゴチャ考えるよりライブラリのインターフェイスを実際に使ってみて
その有難みを体感するのが一番てっとり早いと思うよ。
654デフォルトの名無しさん:2007/05/10(木) 12:39:51
IEnumerable なんかは、知らず知らずのうちに多大な恩恵にあずかってるな。
655デフォルトの名無しさん:2007/05/10(木) 12:51:18
IDisposable
なんかもなwww
656601:2007/05/10(木) 13:28:45
すいません。おまえらのつまらない話どうでもいいので、
私の質問お願いします。
657デフォルトの名無しさん:2007/05/10(木) 13:46:45
我々には難しくて回答不能なので、よそで聞いてください
658デフォルトの名無しさん:2007/05/10(木) 14:36:34
>>656
貴方様にはかないませんのでさっさと出て行ってください

こぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉんのカスがぁ!!!!!!!!!!!!!!!
659デフォルトの名無しさん:2007/05/10(木) 15:33:38
>>644
なにを勘違いしたか知らんがXNAはマウスもキーボードも普通に使えるぞ
試してみてXNAが動くならXNAにしとけ
660659:2007/05/10(木) 15:38:13
XNAスレを見てみたら

97 名前:名前は開発中のものです。[sage] 投稿日:2007/05/10(木) 14:08:03 ID:8Ube6/hf
XNAはマウス入力を受け付けないという記述を見つけたんですけど本当ですか?

100 名前:名前は開発中のものです。[sage] 投稿日:2007/05/10(木) 14:13:05 ID:CC1a0ZQh
>>97
Xbox360 では使えない。 Windows だったら Microsoft.Xna.Framework.Input.Mouse.GetState() でステートを取得可能。

これを勘違いしたのか
661デフォルトの名無しさん:2007/05/10(木) 20:48:20
>>572
いないだろうけど、その内容だとほとんど利点はない。

大事なのはプロパティにアクセスしたときの処理が書けることだ。
人には勧めないけどプロパティ内でデータ接続のチェックをして未接続なら接続してから
データの更新といった処理もかける。

俺はc#がjavaより優れていると実感しているのはこの点。
アレ?もう導入されたんだっけ?
662デフォルトの名無しさん:2007/05/11(金) 04:21:32
初心者ってゲーム作りたがるよな
しかしその殆どはプログラミングテクニックより、自分のゲームのアイディアに才能ない事に気づく
枯れた業種だから所詮、プロ集団のアイディアには敵わない

大風呂敷広げるより、まず初めはちょこっとした便利なもの作ればいいのに・・・
663デフォルトの名無しさん:2007/05/11(金) 04:47:46
作りたくないもの作るよりは
作りたいもの作った方がいいと思うぜ。
664デフォルトの名無しさん:2007/05/11(金) 09:39:47
処理速度がどうのとか言うやつに限って、妄想ゲームプログラマー。
実際できもしないのに。
665デフォルトの名無しさん:2007/05/11(金) 09:52:47
ゲームいいと思うよ。
テーブルゲームみたいなのでもいいし、アクションゲームでも。
革新的な奴は商業プログラマがやっとけばいい。
666デフォルトの名無しさん:2007/05/11(金) 10:35:07
グラフ描画モジュール作りたいんだけど、
現実世界のグラフでは基点が左下なんだが、
C#だと基点が左上からなんで、難しいんですが
ポイント算出を楽にする何か方法ありませんか?
667デフォルトの名無しさん:2007/05/11(金) 10:45:50
>>666
何を悩んでるのか解らん。
グラフ描画モジュールを作ろうなんて奴が、単に座標の変換が難しいなんて言うわきゃないしな。
668デフォルトの名無しさん:2007/05/11(金) 10:54:12
>>666
逆転させる関数一個作ればよくないか?
669デフォルトの名無しさん:2007/05/11(金) 11:30:34
scale変えたらいいんじゃなかったっけ?
670デフォルトの名無しさん:2007/05/11(金) 11:32:24
>C#だと基点が左上

N88-BASICから出直して来い
671デフォルトの名無しさん:2007/05/11(金) 11:36:42
>>666
キミニハムリダ
672デフォルトの名無しさん:2007/05/11(金) 11:38:15
Graphics.Transform だった。
673デフォルトの名無しさん:2007/05/11(金) 17:35:51
Graphicsの座標を直接いじるより
座標変換クラスでも作って間に挟んだ方がいいと思う
674デフォルトの名無しさん:2007/05/11(金) 18:50:43
>>673
なんで?
675デフォルトの名無しさん:2007/05/11(金) 18:57:37
曲線座標系とか対数座標とかじゃね?知らんが
676デフォルトの名無しさん:2007/05/11(金) 20:16:17
>>666
藻前は数学でなく、算数をやり直してこい
677デフォルトの名無しさん:2007/05/11(金) 20:18:51
Mac だと基本的に左下が基点なんだよなあ。
678デフォルトの名無しさん:2007/05/11(金) 20:23:56
コントロールのXYの始点高さ幅がわかりゃ
好きに変換できるだろ・・・つうか釣りじゃねーの?
679デフォルトの名無しさん:2007/05/11(金) 20:25:33
>>674
何でだと思う?
680デフォルトの名無しさん:2007/05/11(金) 20:29:55
>>674
673じゃないけど、組み込みの座標変換使うと変換前の座標系も
強制的にfloatの精度になるのが気になるね。

実用には耐えないと思った方がいいな。
10000.000と10000.001が同じ位置にプロットされることを回避できないわけだ。
681デフォルトの名無しさん:2007/05/11(金) 20:31:08
クラスを間に挟まなくても、引数に数値を設定したら座標ポイントを
戻すメソッドを定義すればいいだろう。
何を難しく考えている?
682デフォルトの名無しさん:2007/05/11(金) 20:32:08
そういう時、普通は差し替えられるようにクラスにするだろ。
683デフォルトの名無しさん:2007/05/11(金) 21:29:20
>>680
素人考えだと画面の解像度考えると十分なような気がするんだけど
もっと精度が必要な場面てどんなとき?
684デフォルトの名無しさん:2007/05/11(金) 21:31:26
グラフだから拡大すればそういうことも
685デフォルトの名無しさん:2007/05/11(金) 21:31:37
別に座標軸の始点が0である必要はないんじゃね?
686デフォルトの名無しさん:2007/05/11(金) 21:36:18
>>683
グラフの原点は必ずしも画面中にあるとは限らない。

例えばx軸の左隅が10,000で右隅が10,000.01のようば場合を想定したら
起こりうる問題を想定しやすいんじゃないかな。
687デフォルトの名無しさん:2007/05/11(金) 22:02:51
折れ線だけなら関数でよさそうだけど
688デフォルトの名無しさん:2007/05/11(金) 23:41:53
>>671
チョソ語かと思った。
689デフォルトの名無しさん:2007/05/12(土) 00:33:31
サブフォルダを取得しようとすると
'System.UnauthorizedAccessException' の初回例外が mscorlib.dll で発生しました。
のエラーをcatchしてしまうんですが、アクセス不可のフォルダとかスルーできないんでしょうか??


string[] subFolders2;
Try
{
subFolders2 = System.IO.Directory.GetDirectories("C:\WINDOWS", "*", System.IO.SearchOption.TopDirectoryOnly);
}
690デフォルトの名無しさん:2007/05/12(土) 00:41:19
ワロタおれもだよw
691デフォルトの名無しさん:2007/05/12(土) 00:41:51
おれもなのは>>688だた

692デフォルトの名無しさん:2007/05/12(土) 01:08:43
>>689
第一引数のディレクトリにアクセスできる権限さえあればその直下のディレクトリ名の取得は問題ないはず。
AllDirectories は諦めて自前で再帰するしかないだろうけど。
693デフォルトの名無しさん:2007/05/12(土) 02:06:30
string[] a={0,1,2}
string[] b={3,4,5}
string[] c
でcの中を{0,1,2,3,4,5}と複数の配列を結合させた配列にするにはどうしたらいいの?
一つ一つループで回して代入するしか無い?

配列の配列数を取得するにはどうやるの?
a.lengthでは取得出来ない
694デフォルトの名無しさん:2007/05/12(土) 02:12:05
c = new string[a.Length + b.Length];
a.CopyTo(c, 0);
b.CopyTo(c, a.Length);

ちょっとはMSDN嫁
695デフォルトの名無しさん:2007/05/12(土) 02:45:37
ありがとう


javascript程度のレベルの俺にお勧めの解説書ってどんなのがありますか?
http://www.amazon.co.jp/dp/4891005009/
が安いしランキングも高いしで買おうかなと思ってるんですが、これはやめとけ とかありますか?
696デフォルトの名無しさん:2007/05/12(土) 02:49:29
教えてくんよ。javascript程度ならjavascriptやってろ。
697デフォルトの名無しさん:2007/05/12(土) 02:53:12
>>695
それはやめとけ。
698デフォルトの名無しさん:2007/05/12(土) 03:07:22
>>696
javascriptで出来ないことがあるだろが
699デフォルトの名無しさん:2007/05/12(土) 08:41:59
>>680
こいつは単なる馬鹿
言語以前グラフの目的を分かってない
700デフォルトの名無しさん:2007/05/12(土) 08:46:39
質問です。
以下のようなコードを書いたのですが、

//test.exeが実行中で、それが終了したらファイルを消す
Process[] p = Process.GetProcessesByName("test");
if (p.Length > 0)
{
    for (int i = 0; i < p.Length; i++)
    {
        if (p[i].StartInfo.FileName.Equals(Application.StartupPath + "\\test.exe"))
        {
            p[i].WaitForExit();
            break;
        }
     }
}
File.Delete(Application.StartupPath + "\\test.exe");

このように終了するまで待ってからファイルを消しても数秒後にtest.exeが復活してしまいます。
これを回避するにはどうしたらいいでしょうか?
701デフォルトの名無しさん:2007/05/12(土) 10:05:52
Vista か。それとも XP か。
702デフォルトの名無しさん:2007/05/12(土) 10:21:44
システムファイルを消そうとしても復元されるよ。
703デフォルトの名無しさん:2007/05/12(土) 10:34:31
あと、test.exeを多重起動してたら、一個終わっだけでbreakするのはどうかな?

ともかく、exeを操作(コンパイル・消去・内容変更)するのは怖いからヤメレ
ド素人が罠プログラム作ろうとしているようにしか見えん・・・
704デフォルトの名無しさん:2007/05/12(土) 12:27:23
>>699
詳しく。
まあ無理だと思うけどw
705デフォルトの名無しさん:2007/05/12(土) 12:44:57
アセンブリ全体で使える変数を宣言する場所はどこですか?
706デフォルトの名無しさん:2007/05/12(土) 12:51:14
クラスの中
707デフォルトの名無しさん:2007/05/12(土) 12:55:14
オブジェクト指向はカプセル化が前提だから、グローバル変数は必要ない。
708デフォルトの名無しさん:2007/05/12(土) 12:55:40
[マイコンピュータ]-[プロパティ]-[詳細設定]-[環境変数]かな?
709705:2007/05/12(土) 12:57:40
クラスの中でinternalとかすればいいんですか?
710デフォルトの名無しさん:2007/05/12(土) 13:06:08
>>704
グラフはあくまで人が見て分かりやすくするツールじゃないの?
実用もなにも、それ以前にそんな精度でプロットできる機器なんかあるの?
711デフォルトの名無しさん:2007/05/12(土) 13:44:50
>>710
だから、例えばx軸の原点が必ずしもグラフの左隅にあるとは限らないといってるでしょ。

グラフがわかりにくいなら地図で考えたら?
Google Earthを考えてみ?
ズームインしていったら実際には1Km離れている二つの建物が同じ位置に
プロットされていたらおかしいと思うでしょ普通。
floatの精度ではそういうことが起こりうるわけ。
712700:2007/05/12(土) 13:59:35
>>702,703
システムファイルではなく、ソフトのファイルアップデート用exeなのですが、
DOSにkillコマンドがないため、exeを生成して、それを使用するようにしています。
そしてこのexeを使用後に消そうと思って>>700のコードを書いたのですが…


ということなので、悪戯ソフトでもないです。
713デフォルトの名無しさん:2007/05/12(土) 13:59:47
>>711
プロット用に座標変換したデータを再利用するなよw
GoogleEarthみたいに簡略化や抽象化するときは特に困るだろ?
元となるマスタデータは常に保持しとけw
714700:2007/05/12(土) 14:01:14
>>712
killするのはアップデートするソフトです
715デフォルトの名無しさん:2007/05/12(土) 14:04:53
>>711
藻前は老人の様な頭だな・・・
1つしか考えられないのか
716デフォルトの名無しさん:2007/05/12(土) 14:07:53
つうか、>>713の言うとおり
元のデータの精度がちゃんとしてれば
変換がfloatでも大丈夫だろ・・・・
717デフォルトの名無しさん:2007/05/12(土) 14:16:07
>>710
俺は711じゃないけど

graphicsの機能の座標変換だけじゃ誰かか書いたとおりで、
>実用には耐えないと思った方がいいな。
>10000.000と10000.001が同じ位置にプロットされることを回避できないわけだ。

たとえば10000.000から10000.010までがx軸いっぱいに拡大して表示されると困ったことになるよ。
718デフォルトの名無しさん:2007/05/12(土) 14:24:27
>>711
藻前の言ってる事は思いつきだろ
地図なんて個人ではどうにもできんから地図ソフトのSDKを買ってきて組み込む事になる
座標入れればちゃんと出てくる、それより2点以上の地点のアイコンを張った場合詳細図はOKだが
広域表示に場合アイコンが重なってしまうので、それを見やすい様に離す座標変換が問題になってくる
719デフォルトの名無しさん:2007/05/12(土) 14:24:52
>>717
だから、それは座標変換後の再利用じゃん
元データから、10000.000から10000.010までがx軸で表示される表示座標系に一発変換しろよ。
元データから、計算誤差、桁落ちする座標系に一度変換する理由はなに?
720デフォルトの名無しさん:2007/05/12(土) 14:31:25
>>713,>>716,>>718
全然話が読めてないね。

>>717が書いてくれてるけど、元々の話はグラフをプロットする際の
座標変換にGraphics.Transformを使った場合に起こりうる問題について、なんだよ。
その辺理解してるのかな?
721デフォルトの名無しさん:2007/05/12(土) 14:31:59
計算精度ができるだけ正確に行うプログラムを書くことは常識だな。
丸め誤差、桁落ちは最大限抑えるべき。
基本情報技術者で勉強しただろう?
722デフォルトの名無しさん:2007/05/12(土) 14:32:25
ああ>>719も追加。
しかし頭悪いな本当w
723717:2007/05/12(土) 14:37:53
頭悪いかどうかじゃなく、文脈が読めてないだけだと思うが。
少数民族同士仲良くしようぜw



語尾にじゃんってつける奴って間違ってること多いな。
同一人物か?
724デフォルトの名無しさん:2007/05/12(土) 14:44:44
>>717
同一人物だよ。
元データから、計算誤差、桁落ちする座標系に一度変換する理由はなに?
教えて。
725デフォルトの名無しさん:2007/05/12(土) 14:46:15
おまえには関係ないじゃん
726デフォルトの名無しさん:2007/05/12(土) 14:47:47
>>724
そう、桁落ちする座標に一度変換するなんてばかげてるでしょ?
だからGraphicsに組み込まれた座標変換機能は使えない、ってことよ。
君は噛み付く相手を間違えてないか?
727デフォルトの名無しさん:2007/05/12(土) 14:49:32
一番の拡大図で誤差が出るなんて言ってる香具師は頭の中だけで考えてる香具師
問題になるのは広域表示時の誤差、逆なんだよ実際にプログラム組む時に分かるよ
まぁこの話はここでする事自体間違ってる気がするが
728デフォルトの名無しさん:2007/05/12(土) 14:51:04
>>726
ごめん。誰が誰だか分かんない。
元データから、10000.000から10000.010までがx軸で表示される表示座標系に一発変換するときに、
Graphicsに組み込まれた座標変換機能を使ったら何も問題ないよ。
というか、そのためのものでしょ。
729デフォルトの名無しさん:2007/05/12(土) 14:54:37
>>728
問題あるよ。
730デフォルトの名無しさん:2007/05/12(土) 14:56:15
>>728
問題あるってw

10000.000から10000.010の間に仮に1000pixelあるとして、
floatの精度で10000.000 + (0.01 / 1000)の値を表現できるかい?
731デフォルトの名無しさん:2007/05/12(土) 14:57:31
結局誰もコード書いてないんだな。

最初の人へヒント
ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1293764&SiteID=7
732デフォルトの名無しさん:2007/05/12(土) 14:57:40
つうか座標変換した後のプロット位置のデータを使って何かしようとする香具師は馬鹿だろ
融通がきかんぞ
733デフォルトの名無しさん:2007/05/12(土) 15:00:50
>>732
プロット位置のデータを使って云々なんて誰も言ってない。
そのプロット位置のほうが問題になっているんだよ
734デフォルトの名無しさん:2007/05/12(土) 15:05:00
日本語読めないやつ多すぎてワロタw
735デフォルトの名無しさん:2007/05/12(土) 15:08:52
>>733
なら全然問題ないだろ、何を問題にしてるのか全然はわからん
座標変換前に拡大縮小計算して、プロット用座標変換すりゃ良い話だろ
736デフォルトの名無しさん:2007/05/12(土) 15:09:07
>>731
>元データから、計算誤差、桁落ちする座標系に一度変換する理由はなに?
この理由としての回答なら分かった。
そういう理由で2度座標変換する場合、きちんと見積もって、データ要件、システム要件を厳しくしないと、
たとえ、精度をdoubleにしたって、いつかは破綻するよ。なのでそのへんはトレードオフで。
なので、精度がいる場合は、多少複雑でも元データからの一発変換しかない。
737デフォルトの名無しさん:2007/05/12(土) 15:10:58
>>735
だから最初から読めよ・・・
738デフォルトの名無しさん:2007/05/12(土) 15:15:06
座標変換が単精度って言うことはプロットする側が単精度以上の精度はないって前提の元に作られているはずなんだが
なに問題にしてるか全然わからない、元データ倍精度で持って、変換前倍精度で計算すりゃいいだろ
739デフォルトの名無しさん:2007/05/12(土) 15:16:49
うん。
多分みんな分かってるんだろうけど日本語が下手なだけだと思うよ。
740デフォルトの名無しさん:2007/05/12(土) 15:17:04
>>738
日本語力なさ杉だろ。

Graphics.Transformがfloatの精度でしか計算しないから、
Graphics.Transformをつかうと桁落ちする場合がある、という話をしているんだ。
741デフォルトの名無しさん:2007/05/12(土) 15:20:35
デザイナ変数って何ですか?
742デフォルトの名無しさん:2007/05/12(土) 15:23:56
ID欲しくなるね
743デフォルトの名無しさん:2007/05/12(土) 15:25:08
2度の座標変換をGraphics.Transform一回で変換するスキルのない奴が
Graphics.Transformが使えないとわめいていただけ。
スキルのある人にはそれが理解できなかったのさ。
744デフォルトの名無しさん:2007/05/12(土) 15:28:23
1度でも精度落ちるがな
745デフォルトの名無しさん:2007/05/12(土) 15:28:54
>>741
デザイナが生成する変数
746デフォルトの名無しさん:2007/05/12(土) 15:29:57
ここで私がC1Chartを猛プッシュですよ
747デフォルトの名無しさん:2007/05/12(土) 15:30:21
はっきりいって、藻前ら元がdouble精度必要とするグラフなんて描かないだろw
必要があれば、それだけの事するんだから自分で座標変換作るだろ
はいはい、この話題はおしまい
748デフォルトの名無しさん:2007/05/12(土) 15:31:29
その一度は最終出力でしょ。ディスプレイなりプリンタなり、小さな液晶だったり。floatで十分。
749デフォルトの名無しさん:2007/05/12(土) 15:35:25
昔CAD作ったときにその辺は勉強した。
正直言うと元座標もプロットも初めintでやってた。
当然回転とかさせると図形がどんどん壊れていった。
750デフォルトの名無しさん:2007/05/12(土) 15:39:52
この流れグレープシティ社員の自演じゃね?
751デフォルトの名無しさん:2007/05/12(土) 15:42:51
昔シュミレーションゲーム作ったときその辺は勉強した。
正直言うと元座標もプロットも初めAレジスタでやってた。
当然サインコサインはおろか乗算命令すらないので、回転すらできなかった。
自分が壊れていった。
752デフォルトの名無しさん:2007/05/12(土) 15:44:18
座標なんて
・マイナス値のオフセット計算
・位置変換
・画面サイズに合わせる比率計算
だけだろ、そんなもん算数レベル自分で計算汁
753デフォルトの名無しさん:2007/05/12(土) 15:46:55
最近は分数ができない大学生がいるとか。
754デフォルトの名無しさん:2007/05/12(土) 15:47:57
いや>>748がまだ理解してない…
755デフォルトの名無しさん:2007/05/12(土) 15:48:18
>>753
分数できないと比率計算できんな・・・
756デフォルトの名無しさん:2007/05/12(土) 15:56:13
>>753
去年ソフトウェア開発者の試験会場の大学行ったら、
壁にテストの模範解答が貼ってあった。
そのテスト内容は初歩の分数の問題だった。
間違いが多いところにコメントが書いてあったが、約分や割り算ができてないみたいだった。

ちなみに経済学部…
大丈夫か日本?
757デフォルトの名無しさん:2007/05/12(土) 15:58:50
テストの模範解答って校内テストのだよ。ソフ開の模範解答じゃないよ。
758デフォルトの名無しさん:2007/05/12(土) 15:59:23
経済学なんて数学できなかったら卒業きつくないか?
759デフォルトの名無しさん:2007/05/12(土) 16:01:59
その大学の経済学部の人間は日本を担わないから大丈夫だろう。
760デフォルトの名無しさん:2007/05/12(土) 20:46:16
問題ないって言ってるやつ頭悪すぎ。
突っ込みどころが最初からずれとるわ。

変換する機能がfloatしか受け付けないのが問題なわけ
float以上の制度のデータを「渡せない」の
だから渡す情報がfloat以上の精度が必要な場合は使えないわけ

変換を自分でやるなら問題ないの。
だから変換機能をそのまま利用したくても、
場合によってはそれだけではできないっていってんでしょ。

だれだ、自分でやったらいいだろとかいってるやつは。
自分でやらざるをえないって話をしてるのに。

ってなんで通じないんだよ。
一回冷静に頭リセットしてみろよ。
761デフォルトの名無しさん:2007/05/12(土) 20:48:59
Aを使えばいいじゃん。

これこれこういうときにはAは使えない。

使えるだろ何言ってんだ(勘違い、ほんとは使えない)。

いやだから使えないって(以下ループ)




Aを使えばいいじゃん。

これこれこういうときにはAは使えない。

自分でやったら問題ないのにA使おうとするのが馬鹿だろw


762デフォルトの名無しさん:2007/05/12(土) 21:11:02
>>712
ということは、自分で起動したプロセスなのかな?
File.Copy("Test6.exe", "Test6Sub.exe");
Process proc = Process.Start("Test6Sub.exe");
proc.WaitForExit();
File.Delete("Test6Sub.exe");
じゃダメなのか?
763デフォルトの名無しさん:2007/05/12(土) 21:18:38
>>761ワロタ
764デフォルトの名無しさん:2007/05/12(土) 21:21:01
>>762ワロタ
765デフォルトの名無しさん:2007/05/12(土) 21:34:06
>>760
頭の悪いのはおまえ。
第一Graphicsクラスのメソッドで、なんでdoubleの精度が必要なんだ?
仮にdoubleにしたところで、何度も座標変換や拡大縮小したら、簡単に破綻するじゃねーか。
というか、そんな実装したのみたことねーよ。
今まで書いたコードの100倍コード書けば自分の間違いが分かるよ。
自分でastronomyクラスでも書いて使え。
766デフォルトの名無しさん:2007/05/12(土) 21:36:44
もう放っといていいよ。
悔し紛れとかでネタでいってるのかとも思ったが、
どうやら>>765みたいなのって本気で問題が理解できないのな。
767デフォルトの名無しさん:2007/05/12(土) 21:40:05
いや、>>765が正論。
768デフォルトの名無しさん:2007/05/12(土) 21:45:57
いやいや俺が絶対正しいよ
769デフォルトの名無しさん:2007/05/12(土) 21:51:32
唯一ただしいのは俺とジョンだな
770デフォルトの名無しさん:2007/05/12(土) 21:52:18
>>765
なに言ってんだこいつは…
わざとか?それとも本物か?
771デフォルトの名無しさん:2007/05/12(土) 21:59:48
>>765
だから最初からAPIだけじゃだめって話だろうに。
だれもそれ自体否定してないだろうに。
流れ読めよ。
772デフォルトの名無しさん:2007/05/12(土) 22:02:19
もう相手するなよ・・・
773デフォルトの名無しさん:2007/05/12(土) 22:02:34
774デフォルトの名無しさん:2007/05/12(土) 22:03:21
じゃなくて>>761
775デフォルトの名無しさん:2007/05/12(土) 22:07:20
つまり、コメに般若心経をプリントしたい時はfloatではダメだって事なんですね
776デフォルトの名無しさん:2007/05/12(土) 22:14:13
みんな明日までに、代数幾何を復習しとくように。
777デフォルトの名無しさん:2007/05/12(土) 22:18:04
いやいや日本語の勉強だよ。
まあ一部本当に分かってないやつもいるようだが。
778デフォルトの名無しさん:2007/05/12(土) 22:19:02
まだ座標変換の事でもめているのか・・・
殆どの香具師はdouble精度なんか求めないから標準なんてfloatで十分過ぎる
逆にdouble精度を求める大規模プログラムを書く香具師は高速化、誤差が重畳しないように
自分で座標変換を自分で作る、もめても意味ないんだよ
779デフォルトの名無しさん:2007/05/12(土) 22:19:26
>>765
ここ初心者用スレだよ。
780デフォルトの名無しさん:2007/05/12(土) 22:20:59
>>778
そんなことで揉めてるわけじゃないんだけどな
781デフォルトの名無しさん:2007/05/12(土) 22:21:42
>>778
お前ホントに分かってないの?
782デフォルトの名無しさん:2007/05/12(土) 22:23:36
だから俺以外の全てが誤りなんだって
783デフォルトの名無しさん:2007/05/12(土) 22:24:26
来年のセンター試験の国語の問題でこのスレ出るから。
どれとどれが同一人物の書き込みでしょう?

ヒント)このスレには二人しか書き込みしてません。
784デフォルトの名無しさん:2007/05/12(土) 22:26:18
二人なら自分で書いたのとそれ以外なんだから、簡単だろw
785デフォルトの名無しさん:2007/05/12(土) 22:27:21
俺がお前でお前が俺で
786デフォルトの名無しさん:2007/05/12(土) 22:27:24
問題解くのはゆとり学生どもだ。
787デフォルトの名無しさん:2007/05/12(土) 22:28:27
>>781
つうか何もめてるんだか意味わからない
初心者がdouble精度の座標変換が必要なプログラム組むか?
788デフォルトの名無しさん:2007/05/12(土) 22:28:43
俺だよおれ!
振込よろしく
789デフォルトの名無しさん:2007/05/12(土) 22:29:14
ゆとり世代がfloatでなくdoubleを要求してたら笑う。
円周率が3なのにw
790デフォルトの名無しさん:2007/05/12(土) 22:30:39
>>787
わからんのはお前が日本語力不足なだけだろ。
double精度が必要だなんていう話はしてない。
791デフォルトの名無しさん:2007/05/12(土) 22:31:15
>>789
不動小数点でなく別にintのピクセル値での変換で十分な気がする
792デフォルトの名無しさん:2007/05/12(土) 22:31:45
>>790
じゃなにを問題にしてる?
793デフォルトの名無しさん:2007/05/12(土) 22:31:51
ここが初心者スレということを忘れすぎ。
初心者は計算に使うデータと表示するデータは同じだと思ってるもんだ。

>680
コンピュータに留まらず、計算精度と表示精度は違う。

計算に使うデータは例えば多倍長整数とか使ってでも必要な桁数を確保しているものだ。
それを、表示する時には、表示して意味のある精度(この場合はGraphicsだからfloat)に「丸めて」使う。
どうしても違いを表示させたい場合は縮尺と原点を調節して表示しなければならない。
>10000.000と10000.001が同じ位置にプロットされることを回避できないわけだ。
この場合、その差を表したかったら、例えば縮尺1000倍で原点を10000に取って表示させる。
GoogleEarthとかでズームインしていくように。


この辺を分かっている人間が「座標変換でいいんじゃね?」と言っているグループ。
794デフォルトの名無しさん:2007/05/12(土) 22:32:26
>>787
初心者に難しいこと言っても無駄。
ここはひとつ、ぎゃーてーぎゃーてーはーらーぎゃーてーと唱えよう。
795デフォルトの名無しさん:2007/05/12(土) 22:34:41
そもそも、地球規模から隣の山田さん家の犬小屋までズームインする
プログラムなんて初心者はつくらん
796デフォルトの名無しさん:2007/05/12(土) 22:35:38
日本語でもめてるんだよ。
座標変換自体でもめてんのは、一人本当に分かってないやつがいただけだよ。
797デフォルトの名無しさん:2007/05/12(土) 22:35:53
1
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
798デフォルトの名無しさん:2007/05/12(土) 22:35:58
むしろ、それを作ろうと考えるのが初心者くおりてぃ。
799デフォルトの名無しさん:2007/05/12(土) 22:37:05
>>792
今は、>>787のように何度でも論点のずれた話題を持ち出してくるやつがいることを問題にしてる。
800デフォルトの名無しさん:2007/05/12(土) 22:37:39
誰かが【優しく】レスをしてくれるスレッド」です。
や・さ・し・く!
801デフォルトの名無しさん:2007/05/12(土) 22:37:52
エロ動画でHDD満タンなのに、地球規模の情報を犬小屋レベルの詳細さで持てるわけがない!!
802デフォルトの名無しさん:2007/05/12(土) 22:40:29
藻前ら寂しいんだろ・・・・
803デフォルトの名無しさん:2007/05/12(土) 22:41:49
>>793
おいおいまだわからないのか痛い奴だなあ。。
だからGraphicsの座標変換機能じゃそんなことは原理的にできない、
といっているのに。。。
804デフォルトの名無しさん:2007/05/12(土) 22:43:23
俺だよおれ、おれおれー
805デフォルトの名無しさん:2007/05/12(土) 22:50:13
グラフってそんなに精度を必要とされるようなもんなのかね。
806デフォルトの名無しさん:2007/05/12(土) 22:53:39
>>803
Graphicsのそのメソッドは元データの計算精度を表示精度に変換するメソッドだよ〜。
大学出てる〜? 原理的ってなんの原理〜? 学術用語で説明してよ〜。
学術用語で説明してくれたら論理ミスすぐわかるから〜。
807デフォルトの名無しさん:2007/05/12(土) 22:58:40
>>806
馬鹿なくせに学術用語とか言わない方がいいよ。背伸びでもね。
>>760が必要十分な説明をしてくれてる。
これ読んでわからないならもう何もいうことはないよ。
最初から理解するだけの頭がないのだ。それなら。
808デフォルトの名無しさん:2007/05/12(土) 23:00:28
今から、ここは中卒オンリーな。
↓中卒一人目。
809デフォルトの名無しさん:2007/05/12(土) 23:01:00
↓中卒二人目。
810デフォルトの名無しさん:2007/05/12(土) 23:13:06
↓一応中卒?三人目
811デフォルトの名無しさん:2007/05/12(土) 23:26:39
--------------------------
統計終了しました。
結果
中卒     2人
修士or博士 残りの人
812デフォルトの名無しさん:2007/05/12(土) 23:28:18
オレオレ4人目
813デフォルトの名無しさん:2007/05/12(土) 23:38:07
おれ大学中退……
814デフォルトの名無しさん:2007/05/12(土) 23:46:31
おれ中学中退…
815700:2007/05/12(土) 23:49:36
なんか流れをぶったぎって申し訳ないきもしますが…

>>762
>ということは、自分で起動したプロセスなのかな?
そうなのですが、先程>>762のコードのようなことをするのではなく、

リソースからexeをコピー

実行

起動元をリソースからのexeがkill

ファイルのアップデート

元を起動

リソースコピーexeが終了するまで待つ

リソースコピーexeを消す


と言う流れなのですが、一番下で躓いています。
816デフォルトの名無しさん:2007/05/12(土) 23:54:30
ぶったぎっておk
というかこの流れにはうんざりしてるからむしろ歓迎
817デフォルトの名無しさん:2007/05/13(日) 00:01:44
>>815
日本語で主語が省略できるときは、前の文脈と主語が同じとき。
主語が代わっているのに省略するから、わかりにくい。
でも、見る限り問題なさそうだけど。releaseのexeでもやってみた?
818デフォルトの名無しさん:2007/05/13(日) 00:06:17
>>700
関係ないが、文字列の比較は==でいいだろ。Javaじゃないんだ。
819デフォルトの名無しさん:2007/05/13(日) 00:17:03
グラフは計算精度は重要だぞ?
プロットされるのはピクセル単位だからint型で十分だが、
その前の演算処理では、演算途中で計算誤差(丸め誤差や桁落ち等)
が起ると演算結果が大幅に変わる場合がありうるから
できるだけ計算誤差が発生しない計算順序や型が要求される。
820デフォルトの名無しさん:2007/05/13(日) 00:20:11
初心者ですが少数はなんの型をつかえばいいんですか?
821デフォルトの名無しさん:2007/05/13(日) 00:20:35
いい加減グラフと計算精度ってスレでも立てろ
822デフォルトの名無しさん:2007/05/13(日) 00:22:58
Form1の上でマウスのホイールを回したときのイベントを使用したいのですが、
Formイベントにはそれらしいのが見当たりません
どうすればいいのでしょうか?
また、参考になりそうなサンプルとかのあるサイトを知ってる方がいたら教えてもらえるとありがたいです
よろしくお願いします
823デフォルトの名無しさん:2007/05/13(日) 00:33:29
824700:2007/05/13(日) 00:52:42
>>817
exeファイルはreleaseでビルドしたものです。

>>818
java上がりではないのですが、手持ちのC#のコーディング規則の本にはEquals使えと
書いてあったのでそれに従ってみたのですが、やっぱり見づらいですかね?
825デフォルトの名無しさん:2007/05/13(日) 01:11:32
>>824
そのコーディング規則に従わなきゃらなんのなら仕方ないが、
C#ではStringの等価性比較には==を使うのが一般的だと思う。

今回は問題ないが、Equals使うならnullかどうかの確認が必要だし、
Object.Equals(Object) のオーバーロードが存在するから、
コンパイラの型チェックの恩恵を受けることができない。

このあたり読んでおくといいかもね:

文字列の使用 (C# プログラミング ガイド)
 http://msdn2.microsoft.com/ja-jp/library/ms228362.aspx
Equals() と演算子 == のオーバーロードに関するガイドライン (C# プログラミング ガイド)
 http://msdn2.microsoft.com/ja-jp/library/ms173147.aspx
826デフォルトの名無しさん:2007/05/13(日) 01:11:32
どの本?
827デフォルトの名無しさん:2007/05/13(日) 01:12:53
>コンパイラの型チェックの恩恵を受けることができない。

むしろ==の方が…
828デフォルトの名無しさん:2007/05/13(日) 01:16:45
String.Equals()のオーバーロードのことも思いだしてあげてください
829デフォルトの名無しさん:2007/05/13(日) 01:36:17
>>824
あなた単体テストしてませんよね。
p[i].StartInfo.FileNameに値入ってないですよ。。

デバッガ使って、自分で単体テストぐらいしてくださいね。
p[i].MainModule.FileName
830ホイールマウス:2007/05/13(日) 01:38:55
>>823
ありがとうございます
早速ちょこっとやってみました
動きませんでした orz

this.MouseWheel ってイベントは見つけたけど Form1 のイベントに MouseWheel が無いのが原因なんでしょうかねぇ・・
単純に
public partial class Form1 : Form{}の中に↓を貼り付けてみたんですがピクリともしませんでした

private void Form1_MouseWheel(object sender, MouseEventArgs e)
{
MessageBox.Show("マウスホイール");
}
private void Form1_MouseEnter(object sender, EventArgs e) { this.Focus(); }

ヘルプを調べても
AxHost.MouseWheel イベント
このイベントは、.NET Framework インフラストラクチャをサポートします。・・・(略
MouseWheel イベントは、AxHost クラスではサポートされません。
public event MouseEventHandler MouseWheel

この程度のことしか載っておらず自分でも色々調べてやってますが、どこが悪いのか理解不能です
出来れば助けてください。
831デフォルトの名無しさん:2007/05/13(日) 01:40:16
>>830
WndProcをオーバーライドするんだよ。書いてあるだろ。
832デフォルトの名無しさん:2007/05/13(日) 01:47:59
>>830
Form1()コンストラクタの中に追加しろ。
this.MouseWheel += new MouseEventHandler(this.Form1_MouseWheel);
833デフォルトの名無しさん:2007/05/13(日) 01:55:30
ていうか、baseのイベントに登録して受信する必要はないでしょ。
Form継承してるんだから。

protected override void OnMouseWheel(MouseEventArgs e)
{
base.OnMouseWheel(e);

if (e.Delta < 0)
{
Console.WriteLine("Wheel roll down");
}
else
{
Console.WriteLine("Wheel roll up");
}
}
834ホイールマウス:2007/05/13(日) 01:56:56
>>832
入れて試してみましたがダメでした

>>831
簡単にサクッといかないかと思ってまだ試してません
明日あたり調べてやってみようかと思います

835デフォルトの名無しさん:2007/05/13(日) 01:58:26
自分でメッセージを見て、イベントを発行しないとだめなんだって・・・
836デフォルトの名無しさん:2007/05/13(日) 01:58:47
おれは2分でサクッといったんだけど。
なんかおれの知らないことがいっぱいあるみたいだな。
837ホイールマウス:2007/05/13(日) 02:03:53
>自分でメッセージを見て、イベントを発行しないとだめなんだって・・・

もしかして、そゆことですか・・・・・
氷解した気がします
あと>>833も今のところ動きませんでした

教えてくださった方々ありがとうございます。
また明日がんばってみます
838デフォルトの名無しさん:2007/05/13(日) 02:10:17
>>837
動かないって?

ひょっとしてフォームがインアクティブの時にもホイールの動きを
検出したい、ということかな。

それなら確かにFormの、というか.NETネイティブの機能では不可能かも。
839デフォルトの名無しさん:2007/05/13(日) 02:13:22
このスレ質問そっちのけでグラフの話してて面白いね
840デフォルトの名無しさん:2007/05/13(日) 02:28:17
イテレータを使う場面を教えてください
841デフォルトの名無しさん:2007/05/13(日) 06:27:51
座標変換の話は、意地の張り合いになってて技術論になってないから、
初心者用スレだし、ここはひとつ、自分のほうがスキルが高いと思う側が折れてくれないか。
842デフォルトの名無しさん:2007/05/13(日) 06:47:40
そうやって終わりかけた話を蒸し返す
843デフォルトの名無しさん:2007/05/13(日) 06:56:54
>>842
おまえはスキル低いほうだなw
844デフォルトの名無しさん:2007/05/13(日) 07:22:05
>>832 の方法で動いたんだけど、

>>833
>ていうか、baseのイベントに登録して受信する必要はないでしょ。
>Form継承してるんだから。
これの意味がよく分からないんですが。
普通は OnMouseWheel を ovrerideして実装するものなのでしょうか?
845デフォルトの名無しさん:2007/05/13(日) 09:54:10
>>844
普通はどっちなんだろうね。
俺はイベントハンドラのoverrideは滅多に使わないけど・・・。

オーバーライドすると元のメソッドが呼ばれなくなるから、
元のメソッドが必要ならオーバーライドしたメソッド内でbase.OnMouseWheel()を呼ぶ必要がある。
846デフォルトの名無しさん:2007/05/13(日) 11:47:42
まだ座標変換やってたの?

関係ないけどコード書いて実験したぞ。
よくある x 0.0〜1.0 y 0.0〜1.0の直線のグラフだけど。
結論から言うとこれだけでも全画面表示だと、 trans〜は問題ある。
さらに拡大率が1000くらい越えると別の問題がでてくる。
847デフォルトの名無しさん:2007/05/13(日) 12:08:54
m9(^Д^)プギャーーーッ
848デフォルトの名無しさん:2007/05/13(日) 12:18:30
>>846みたいな奴はメンタルがガキだから何言ってもたぶん無駄。
せいぜいできることは、きっとコイツ寂しい奴何だろうなと思って哀れむことぐらいだ。

まあしかし、敢えて書かなかったけど、確かにGraphics.Transformを使うと別の問題もある。
例えばペンやブラシが扁平することだね。
もっとも、あんまり詳しく調べたわけじゃないのでひょっとするとこれには解決法があるのかもしれないが。
いずれにしろかなり面倒なことになるのは確かだろう。
楽をするためにGraphics.Transformを使おうと思ったはずなのに。
849デフォルトの名無しさん:2007/05/13(日) 12:33:33
ただ試して報告しただけなのにさびしい奴だといわれたorz

Graphics.Transformつかうと逆にめんどいことになるな。
850デフォルトの名無しさん:2007/05/13(日) 12:51:03
だから、そういう目的で使うなと何度も上レスで指摘が・・・
851デフォルトの名無しさん:2007/05/13(日) 12:55:47
いやそんな精度必要ない、問題ないという馬鹿がいるから試したんだけどな。
852デフォルトの名無しさん:2007/05/13(日) 12:59:21
853ホイールマウス:2007/05/13(日) 13:03:26
Form1()コンストラクタに
this.MouseWheel +=
まで入力すると「挿入するにはTABキーを押してください」って出て、
TABを2回押したら += の後に
new MouseEventHandler(Form1_MouseWheel);
に続いて
void Form1_MouseWheel(object sender, MouseEventArgs e){}
が自動的に作成されるんですね。
これでうまく行きました
自分でvoid Form1_MouseWheelを貼り付けたらダメみたいです
ホイールマウスで悩んでる初心者が自分以外にもいるかも知れないので、次のレスで今回の手順をもう一度まとめます
854ホイールマウス:2007/05/13(日) 13:05:30
【ホイールマウスイベントの取得】
@Form1コントロールにlabel1コントロールを配置
AForm1()コンストラクタにマウスホイールイベントハンドル追加
※this.MouseWheel += まで入力後TABを2回押すことで、Form1_MouseWheelイベントが自動的にコードに追加される
Bthrow new Exception("The method or operation is not implemented.");←をコメントアウト
C以下のコードをForm1_MouseWheel内に追加
if (e.Delta < 0){ label1.Text = "ホイール下";}
else{ label1.Text = "ホイール上";}
D実行

public partial class Form1 : Form{}内のコード全文です↓
public Form1()
{
InitializeComponent();
this.MouseWheel += new MouseEventHandler(Form1_MouseWheel);
}

void Form1_MouseWheel(object sender, MouseEventArgs e)
{
//throw new Exception("The method or operation is not implemented.");
if (e.Delta < 0)
{
label1.Text = "ホイール下";
}
else
{
label1.Text = "ホイール上";
}
}

教えてくださった方々有難うございました。
855デフォルトの名無しさん:2007/05/13(日) 13:05:47
>>851
おまえはスルーって事が出来ないのか?
代理でスレ立ててやろうか?
856デフォルトの名無しさん:2007/05/13(日) 13:13:48
>>853
VS2005ですか?それともVS2003?
857ホイールマウス:2007/05/13(日) 13:14:49
VS C#2005 +Windows2000です
858デフォルトの名無しさん:2007/05/13(日) 13:18:54
>>857
ありがとう。私はVS2005でコピペでいけたので、どっかでイージーミスがあったのかもしれませんね。
859デフォルトの名無しさん:2007/05/13(日) 13:36:25
コピペミスっていうより、人の言うとおりちゃんとやってないだけでしょ。
860デフォルトの名無しさん:2007/05/13(日) 13:48:23
('・ω・`)つ バファリン
861デフォルトの名無しさん:2007/05/13(日) 14:08:31
ずつーにバファリン♪
862デフォルトの名無しさん:2007/05/13(日) 14:18:51
バファリンの半分は優しさ以外の「何か」
863デフォルトの名無しさん:2007/05/13(日) 15:27:09
>>815
>829 の言うとおりStartInfo.FileNameは「既定値は空の文字列 ("") です。」だね。試してみたら確かに空だ。
起動中チェックはMutexで実施するのがいいと思うよ。定番だし多重起動の防止にもなるし。
864デフォルトの名無しさん:2007/05/13(日) 16:00:03
ステップ実行すれば、すぐ解決するのに、そんなこともせず質問してる人いるんだ。
865デフォルトの名無しさん:2007/05/13(日) 17:35:19
Navigateメソッドで証券会社のHPのログイン画面に進んでIDとPASSを入力してログインするというのを
SHDocVw.InternetExplorerを使っていて行き詰まりました。

axWebBrowserだと上手く動くのですが、
SHDocVw.InternetExplorerだと下記のソースでLoginForm.itemがNULLだと言われどうにも困っています。

SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer();
ie.Navigate(URL);

//axWebBrowser1.Navigate(URL);←これだと成功する

///
一部省略
///

//IHTMLDocument2 doc2 = (IHTMLDocument2)axWebBrowser1.Document;←これだと成功する

IHTMLDocument2 doc2 = (IHTMLDocument2)ie.Document;
Login_Monex(doc2);

private void Login_Monex(IHTMLDocument2 doc)
{
IHTMLFormElement LoginForm = (IHTMLFormElement)doc.forms.item("F1", 0);
((IHTMLElement)LoginForm.item("loginid", 0)).setAttribute("value", userID, 0);←ここで怒られる。
((IHTMLElement)LoginForm.item("passwd", 0)).setAttribute("value", userPass, 0);
((IHTMLElement)LoginForm.item("menuMode", 0)).setAttribute("value", "1", 0);
LoginForm.submit();
}

866デフォルトの名無しさん:2007/05/13(日) 17:51:19
FormのMouseWheelは動くけど、PictureBoxでMouseWheel イベントが動かない。
orz 理由が分からん。
867デフォルトの名無しさん:2007/05/13(日) 17:56:42
CanFocusがfalseだからでしょ。
868デフォルトの名無しさん:2007/05/13(日) 18:00:20
>>866
「コントロールにフォーカスがあるときにマウスホイールが動くと発生します」

PictureBoxのMouseEnterにでも
pictureBox1.Focus();って書けばおk

あれだったらその前にformのActiveControlを覚えといて
MouseLeaveでそいつにフォーカス戻すとか
869デフォルトの名無しさん:2007/05/13(日) 18:08:08
>>867
やっと意味がわかりました。そういう理由だったんですね。
ありがとうございます。
870デフォルトの名無しさん:2007/05/13(日) 18:11:42
>>868
できました。ありがとうございます。
871デフォルトの名無しさん:2007/05/13(日) 20:17:42
正規表現で躓いてしまいました。

文字列の先頭にドライブレター("C:\"等)があるか判別するために以下のように記述したのですが、
実行すると「パターンの末尾に無効な \ があります。」というエラーが出てしまいます。
原因は何でしょうか。コンパイルはcsc.exeで行ったものです。
因にVB2005EEで同じ事を試したら正常に動きました。

string test = "aaa.txt";
if (System.Text.RegularExpressions.Regex.IsMatch(test.Substring(0, 3), "[a-zA-Z]:\\") == false)
{
MessageBox.Show("フルパスを指定して下さい。");
}
872デフォルトの名無しさん:2007/05/13(日) 20:31:06
\ は C# として正規表現として、で二重にエスケープする必要がある
873デフォルトの名無しさん:2007/05/13(日) 20:35:57
@"[a-zA-Z]:\\"
874デフォルトの名無しさん:2007/05/13(日) 20:48:46
>>872
"[a-zA-z]:\\\\"だったのですね。ありがとうございます。

C#の場合、例えばEnvionment.GetCommandLineArgs()等で得たファイルパスを正規表現にかける場合はReplace()等で"\"を"\\"に置換しないと駄目だという事も解りました。
本当にありがとうございました。
875デフォルトの名無しさん:2007/05/13(日) 20:48:59
つか Substring するなよw
test が 2 文字以下だったら例外だぜw
876デフォルトの名無しさん:2007/05/13(日) 20:51:34
>>874
っ Regex.Escape
877874:2007/05/13(日) 21:25:15
>>873
C#には逐語的リテラル文字列と言う概念があったのですね…精進します。

>>876
こんなメソッドがあったとは…ありがとうございます。

C#に挑戦→挫折→(数年経過)→VB2005EEで漸く.NETプログラミングを理解する→C#に再挑戦と来たため、文法がVB.NETと混同していました。
何とか頭の中を整理しつつ焦らず勉強していきます。
本当にありがとうございました。
878デフォルトの名無しさん:2007/05/13(日) 21:46:39
すいません、VS初心者です。
以下の文字列を宣言した場合、「@」にはどんな意味があるのでしょうか?

String str = @"text";

879デフォルトの名無しさん:2007/05/13(日) 21:48:52
\
880デフォルトの名無しさん:2007/05/13(日) 21:51:47
折角 873 877 が会話してキーワード上げてるんだからそれ調べようよ
881デフォルトの名無しさん:2007/05/13(日) 21:57:53
> 879
'' や "" の前に @ (アットマーク)を付けると \ とそれに続く文字が
エスケープシーケンスとはみなされずに、普通に \ 記号として解釈される
ということですね?

@"C:\program files\Windows Media Player\wmplayer.exe"
としても、コンパイルにエラーにならないということですよね。
ありがとうございます。
882デフォルトの名無しさん:2007/05/13(日) 22:00:13
>>881
いやいや、
@"[a-zA-Z]:\\"
だけじゃわかんないっしょ。
883882:2007/05/13(日) 22:00:45
>>880
でした…。
884デフォルトの名無しさん:2007/05/13(日) 22:09:56
実にくだらない質問かもしれませんが、疑問がぬぐえないのでお聞きします。
だれか俺にArray.GetLowerBound()の存在意義を教えてください。
885デフォルトの名無しさん:2007/05/13(日) 22:22:26
>>882
逐語的リテラル文字列って
886デフォルトの名無しさん:2007/05/13(日) 22:35:23
>>884
C# では意味はないが、配列の下限を設定できる言語もあるのさ。
Array.CreateInstance で作成もできるぜ。使えないけど。

>>882
ドキュメントエクスプローラのキーワードで @ だけでもかなり絞れる。
今回はもっとはっきり出てるけど。
887デフォルトの名無しさん:2007/05/13(日) 22:51:20
>875
"^[a-zA-Z]:\\\\.*"
とか。
888デフォルトの名無しさん:2007/05/14(月) 00:08:12
>>865
【自動】株式トレーディングシステム Part4【売買】
http://pc11.2ch.net/test/read.cgi/tech/1110223706/
889デフォルトの名無しさん:2007/05/14(月) 00:11:08
>>871
正規表現にこだわらずにSystem.IO.Path.GetPathRootを使うとか。
890666:2007/05/14(月) 00:49:52
すみません何か私のネタで議論白熱させちゃったみたいで・・><
結局のところ、Transformは使用せず自分でPointをflot型で返す関数を作れっていいのかな?
891デフォルトの名無しさん:2007/05/14(月) 01:33:52
>>884
根がPascal なんだよw
892デフォルトの名無しさん:2007/05/14(月) 01:38:40
>>890
>すみません何か私のネタで議論白熱させちゃったみたいで・・><
そう思うなら何故蒸し返そうとする?
893デフォルトの名無しさん:2007/05/14(月) 07:38:00
DataGridViewにObject DataSourceをバインディングして表示している。
BindingSourceのfilterを使いたいのだが
BindingSource.Filterに条件を入れてもFilterされないし、
SupportsFilteringはfalseになっている様子。

filterを使う方法知らないですか
894デフォルトの名無しさん:2007/05/14(月) 09:07:14
蒸し返しというか元々質問者そっちのけで盛り上がってたんじゃん
もっとはやくでてこい
895デフォルトの名無しさん:2007/05/14(月) 17:46:21
すみませんが教えてください…
VWDExpress+C#ですが、

no = (int)Session[keyname];
no = Convert.ToInt32(Session[keyname]);
no = Int32.Parse(Session[keyname]);

どう違うのでしょうか?

google様にお伺いを立てても「違う」「違う結果が出る可能性がある」とは出ているのですが、どんな場合にどんな違いが出るのかがさっぱりわかりません…
896デフォルトの名無しさん:2007/05/14(月) 17:57:53
パースは対象を変換できるか試行して失敗の場合とかでもエラーが出なかったような気がする
897デフォルトの名無しさん:2007/05/14(月) 17:58:42
Parseは失敗すれば例外投げるよ
898デフォルトの名無しさん :2007/05/14(月) 18:09:15
今、DataGridViewの使い方を勉強していまして
CheckBoxやButtonやTexteditorを配置して
XMLからは読み込めるようには出来たんですが
それぞれのcellのCheckBoxやButtonの状態・・・
簡単に言えばButtonを押してColorDialogを出したいのですが
その方法がわかりません。どなたか教えていただけないでしょうか。
899デフォルトの名無しさん:2007/05/14(月) 18:16:06
>>897
TryParseでした
ごめんなさい
900デフォルトの名無しさん:2007/05/14(月) 18:42:33
>>898
どこからがわからないの?
そのそれぞれのcellのコントロールの取得の仕方がわからないの?
それとも,コントロールは取得できてもそれにButtonを押してColorDialogを出す操作を
割り当てる方法がわからないの?
901デフォルトの名無しさん:2007/05/14(月) 18:57:35
>>898
イベントの説明みてみ?
セルのボタンを押すとかダイレクトな名前じゃないけどそれっぽいイベントがあるから
902デフォルトの名無しさん:2007/05/14(月) 18:58:24
>>895
つーかSession[keyname]の型はなに?
903デフォルトの名無しさん:2007/05/14(月) 19:06:07
たぶんobject
だから3つ目はたぶん間違い
904デフォルトの名無しさん:2007/05/14(月) 20:01:57
キャストしてんだからintだろ。
ってかその前にコンパイル…
905デフォルトの名無しさん:2007/05/14(月) 20:54:31
C#って通信するソフト限定の言語なんですか?
906デフォルトの名無しさん:2007/05/14(月) 20:55:07
いいえ。よくわかりませんが。
907デフォルトの名無しさん:2007/05/14(月) 20:55:20
いいえ
908デフォルトの名無しさん:2007/05/14(月) 20:55:38
いいえ
909デフォルトの名無しさん:2007/05/14(月) 21:52:36
必ず通信しなきゃならない言語・・・・・・シュールだ。
910デフォルトの名無しさん:2007/05/14(月) 22:06:00
オブジェクト間のメッセージのやり取りを通信と見るならアリじゃないか
911デフォルトの名無しさん:2007/05/14(月) 22:06:21
独習C#買ったけど制御文以降はさっぱり分からない
912デフォルトの名無しさん:2007/05/14(月) 22:16:55
>>905
多分ダウンロードしてるものがちがう
web用のほうダウンロードしたんだろ?
913デフォルトの名無しさん:2007/05/14(月) 22:32:27
Visual Web Developer 2005 Express Edition ???
914898:2007/05/14(月) 23:44:23
>>901さん
確かに(たぶん?)それっぽいイベントがありました。
で今自分がしたいことは、カラーダイアログを出してそのカラーダイアログを出した
ボタンの表面色をカラーダイアログから選んだ色で着色することです。
で、下のようにやってみたらまったく別なことをやってしまったようです。
どのようにすればよいかご教示願いたく存じます。
void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
DataGridViewCell Dg = ((DataGridView)sender).CurrentCell;
dataGridView1.CurrentCell = Dg;
dataGridView1.CurrentCell.DataGridView.BackgroundColor = colorDialog1.Color;
}
}
915デフォルトの名無しさん:2007/05/14(月) 23:50:17
セルごとの色を変えたいならオーナードローするしかないんでないか。
916デフォルトの名無しさん:2007/05/14(月) 23:53:45
>>914
なかなか突っ込み所が多いコードだな。

> DataGridViewCell Dg = ((DataGridView)sender).CurrentCell;
e のプロパティから取った方が自然かも。
> dataGridView1.CurrentCell = Dg;
いや今 CurrentCell とったばっかじゃん。取ったのを何故そのまま代入?
> dataGridView1.CurrentCell.DataGridView.BackgroundColor = colorDialog1.Color;
DataGridView の BackgroundColor(存在しないプロパティだけど)を変えるの?
変えたいのはボタンのじゃ?

// DataGridViewCell.Style でボタンだけは変えられたっけ?
917898:2007/05/15(火) 01:00:13
>>916さん
かなり無駄なことをしていたようで
Dg.Style.BackColor = colorDialog1.Color;でいけました
失礼しました。
918デフォルトの名無しさん:2007/05/15(火) 01:01:52
c++で
Class1 -> method1() -> method2()みたいにメンバ関数を連続して呼び出す構文を,
C#で
Class1.method1().method2()
って書けるんでしょうか?
919デフォルトの名無しさん:2007/05/15(火) 01:03:05
書けるが、どうして試してみないんだい?
920デフォルトの名無しさん:2007/05/15(火) 01:03:45
書けるよ
921デフォルトの名無しさん:2007/05/15(火) 01:04:26
new Hoge().method();

とすら書ける
922デフォルトの名無しさん:2007/05/15(火) 01:05:25
ありがとうございました.書いてみます.
923デフォルトの名無しさん:2007/05/15(火) 01:37:08
いやむしろ書くな。

それって本当に分かりやすいか?
単なる下らん自己満足だろ。オナニーだよ。

大昔のベーシックのマルチステートメント以上の悪習にしか思えんが。
924デフォルトの名無しさん:2007/05/15(火) 01:40:27
てかそもそも new が悪習。
925デフォルトの名無しさん:2007/05/15(火) 02:38:56
>>923
そういうのが高度だと思ってる勘違い野郎がいるからな。
なにかとすぐリフレクションって言葉だしたり。
926デフォルトの名無しさん:2007/05/15(火) 02:41:15
>>923
保守性とかどうでもいいときは、タイプ数へって楽だしょ
927デフォルトの名無しさん:2007/05/15(火) 10:02:21
やっぱり保守性考えたら中間変数使っておいた方がいいんですかね?
928デフォルトの名無しさん:2007/05/15(火) 10:25:55
すいません、教えてください。
C#には、c++のcallocに相当する、動的に配列のメモリを確保して0を入れるという関数は存在しないのでしょうか?
929デフォルトの名無しさん:2007/05/15(火) 10:27:58
int [] array = new int[1024] {0};
じゃだめなん?
930デフォルトの名無しさん:2007/05/15(火) 10:32:19
必ず0初期化される。
mallocはなくてcallocのみという感じ。
931デフォルトの名無しさん:2007/05/15(火) 10:49:49
ありがとうございました。
C#の配列宣言はc++のcallocみたいなもんだと思っていいということでしょうか?
932デフォルトの名無しさん:2007/05/15(火) 11:08:40
うい
933895:2007/05/15(火) 11:58:23
>>902
わかんない。
テキストボックスに入る文字列なんだけど、その割には文字列として扱うにもConvert.ToString()しなきゃダメ…

>>904
この例は年齢を(テキストボックスに)入れさせている部分なんでintとして扱いたいんです。
今まで何でもかんでもConvert.To()使ってた。
でも「キャストすればいい」とか、他の本ではInt32.Parse使ってたり…で、どれ使ったらいいのか調べたら余計わからなくなって。
正直、Perlからの移行組(会社でPerl禁止令が出た)で、私的には敷居が高くて。
934デフォルトの名無しさん:2007/05/15(火) 12:40:56
objectで回してるのか。
type safeを超越した先進的設計だね
935デフォルトの名無しさん:2007/05/15(火) 12:54:13
BindingNavigatorの新規作成ボタンを押したのと同じ動作をコードで書くにはどうしたらいいんでしょうか?
936デフォルトの名無しさん:2007/05/15(火) 13:02:06
>>933
そんなあなたには
VB.NETでOption Strict Off
937デフォルトの名無しさん:2007/05/15(火) 13:15:39
むしろWEBようのPHPとかも型が無いから問題なんだよな
型があることの恩恵を喜べるように勉強したほうがいいと思うぞ
938デフォルトの名無しさん:2007/05/15(火) 13:34:12
C#ってVB.NETと違って
リフレクションを使わないと実装できないような言語機能は絶対付けないの?
939デフォルトの名無しさん:2007/05/15(火) 13:41:01
方針の話ならMSに聞け
940895:2007/05/15(火) 17:50:59
レスありがとう。

や、型は(ほんの少しだけど)わかるんよ。
だけど最初の

no = (int)Session[keyname];
no = Convert.ToInt32(Session[keyname]);
no = Int32.Parse(Session[keyname]);

結果が同じなら(私が好きという理由で)Convert.To()を使えばいい話なんだけど、「結果が違う」とか言われると…しかもどんな場合に結果が違うのかがわからん…
941デフォルトの名無しさん:2007/05/15(火) 17:59:25
その型によって1つ目が例外出したり、2,3個目がコンパイルとおらなかったりするだろうが。
Sessionの宣言はどうなってんの?
942935:2007/05/15(火) 18:24:17
参考になるページの情報でもいいのでお願いします。
943デフォルトの名無しさん:2007/05/15(火) 18:37:44
>>942
BindingNavigater.BindingSource.AddNew();
944デフォルトの名無しさん:2007/05/15(火) 18:49:18
Sessionの型なんて決まっとろうがw
945デフォルトの名無しさん:2007/05/15(火) 18:54:45
System.Web.UI.Page.Session : HttpSessionState
HttpSessionState.item[string] : object
であってるの?
946デフォルトの名無しさん:2007/05/15(火) 18:57:28
いきなりキャストしたりするのは明らかに危険だろ。
947デフォルトの名無しさん:2007/05/15(火) 19:00:35
948デフォルトの名無しさん:2007/05/15(火) 21:40:30
>>940
あなたの前にあるhelpを見ましょう。
949デフォルトの名無しさん:2007/05/15(火) 21:52:09
長年、C言語とDelphi使っててC++もそこそこ使えるプログラマがC# 始めるとして
この本読んどけっていう、お勧め本はありますか?
950デフォルトの名無しさん:2007/05/15(火) 21:55:01
>>949
その辺り使えるなら MS のドキュメントだけで十分な気が。
951デフォルトの名無しさん:2007/05/15(火) 21:55:49
>>949
MSDNのプログラミングガイド読んどけばいいと思うよ。
952デフォルトの名無しさん:2007/05/15(火) 22:02:37
サボりたい時、意味もなくヘルプを開いて読みふけるのオススメ。
953デフォルトの名無しさん:2007/05/15(火) 22:20:59
MS系言語は日経BP本がはずれが少ない
954デフォルトの名無しさん:2007/05/15(火) 22:25:55
http://msdn2.microsoft.com/ja-jp/library/yyaad03b(VS.80).aspx
MSって他の環境からの移行者のためのドキュメント好きだな
955949:2007/05/15(火) 22:27:22
おお、早速多数のレスありがとうございます
今の仕事、組込みC言語(Linuxでクロス開発)なんで会社で見るのは無理臭いです
インターネットへの接続も厳しく制限されてるし

印刷されたもので、C言語で言うとK&Rみたいなのがあればなと思ってます
日経BP本ですか、そっち方面でちょと調べてみます
956デフォルトの名無しさん:2007/05/15(火) 22:28:55
>>954
そりゃ取り込みに必死だもん
957デフォルトの名無しさん:2007/05/15(火) 22:29:14
>>940
Session[keyname]の中身の型が重要。

Session[keyname]はobject型で何でも突っ込むことが出来る。
その反面コンパイラなどで型が決定で問題が出ることがある。(大抵出ない)

no = (int)Session[keyname];
no = Convert.ToInt32(Session[keyname]);
no = Int32.Parse(Session[keyname]);

上記の記述法だといずれもSession[keyname]の型が判りづらい。
1番目は(int)でキャストできるだろう何かとしかわからない。
2番目はConvert.ToInt32のオーバーロードがいくつもあるので問題がありそうだ。
3番目はParseの中身はstringだから強制的にToString()されるので問題ない
(Parseできるかどうかは別問題)

もし内容がテキストなら(string)でキャストするか、ToString()を使ってstringと判るようにしたほうがいい。
ここで問題が出なくてもキャストで型を明示する癖をつけたほうがいいと個人的は思う。

958デフォルトの名無しさん:2007/05/15(火) 22:57:38
変だけど誰もいないから突っ込まれない。
959デフォルトの名無しさん:2007/05/15(火) 23:23:11
>1番目は(int)でキャストできるだろう何かとしかわからない。
わろた。
int以外の何をキャストするんだよ。
960デフォルトの名無しさん:2007/05/15(火) 23:24:23
longとかfloatとか。
961デフォルトの名無しさん:2007/05/15(火) 23:26:27
1番目はintにキャストされているけどキャストできるものかどうかわからないので危ない?
962デフォルトの名無しさん:2007/05/15(火) 23:31:44
short が入ってたってだけでも例外だな くわばらくわばら
963デフォルトの名無しさん:2007/05/15(火) 23:33:23
例外でいいじゃねーか、バグが見つかってw

>longとかfloatとか。
やってみろw
964デフォルトの名無しさん:2007/05/16(水) 00:15:06
>>933
>テキストボックスに入る文字列なんだけど、
>その割には文字列として扱うにもConvert.ToString()しなきゃダメ…

型が objectのままだから。
(string)Session[keyname] 
Session[keyname].ToString( )
965デフォルトの名無しさん:2007/05/16(水) 00:47:58
複数のボタンコントロールを作ってイベントハンドラの共有を行い、
あるボタンを押すとそのボタンテキストがaaaに変わるようにするにはどのように書けば良いのでしょうか?
例えば、VB2005の場合だと
sender.Text = "aaa"
と書くところをC#の場合はどうすれば良いのでしょうか?
966デフォルトの名無しさん:2007/05/16(水) 00:49:05
(ボタン)sender.Text = "aaa"
967デフォルトの名無しさん:2007/05/16(水) 00:49:26
sender.Text = "aaa";
968デフォルトの名無しさん:2007/05/16(水) 00:50:24
あああ〜へまったorz
キャストよりドット演算子のほうが優先順位高かった
969デフォルトの名無しさん:2007/05/16(水) 00:58:37
970デフォルトの名無しさん:2007/05/16(水) 01:11:39
((Button)sender).Text = "aaa";

///////////

Button btn = sender as Button;
if( btn != null )
 btn.Text = "aaa";


//////////

if( sender is Control )
 ((Control)sender).Text = "aaa";

971965:2007/05/16(水) 01:12:04
すみません、それぞれ試したのですがエラーが出ました。
(Button)sender.Text = "aaa";
(button1)sender.Text = "aaa"; // button1はボタンの名前
(string)sender.Text = "aaa";
Convert.ToString(sender.Text) = "aaa";

上から2つ目以外は、それぞれ
'object' に 'Text' の定義がありません。
というエラーでした。

2つ目のエラーは
'Test.Form1.button1' は 'フィールド' ですが、'型' のように使用されています。
でした。

たぶん、私のやり方が間違っていると思うのですがどうすればよいでしょうか?
972デフォルトの名無しさん:2007/05/16(水) 01:13:01
((Button)sender).Text = "aaa";
973デフォルトの名無しさん:2007/05/16(水) 01:13:45
入れ違いですみません。
無事解決しました。
皆さん、ありがとうございました。
974デフォルトの名無しさん:2007/05/16(水) 01:14:44
おめでとう。
何かあったらまたおいで。
がんばれ。
975デフォルトの名無しさん:2007/05/16(水) 01:18:06
で意味は分かってるのかい?
976デフォルトの名無しさん:2007/05/16(水) 01:29:00
>>975
わからないので、そういう風にやるものだとだけ今は覚えておきます。
977デフォルトの名無しさん:2007/05/16(水) 11:17:14
TableAdapterでUpdateしたときに新規追加されるデータのAutoIncrementの値を取得したいんですが、どうすればいいんでしょう??
978デフォルトの名無しさん:2007/05/16(水) 14:13:41
VC# でLabelコントロールを大量に配置したフォームの描画が
重いです。

Labelコントロールの量を減らせ!!などの方法以外で
改善策などはあるのでしょうか?

宜しくお願いします。
979デフォルトの名無しさん:2007/05/16(水) 14:15:54
>>978
this.SuspendLayout();
   :
   :
this.ResumeLayout(false);
980デフォルトの名無しさん:2007/05/16(水) 14:32:14
>>978
フォームのOpacityを99%にしたり(ただしこれだと若干半透明になる)
P/Invokeでレイヤードウィンドウにして再描画の回数を減らす。
981デフォルトの名無しさん:2007/05/16(水) 16:54:29
開発環境についてのアドバイス願いです。

今まで趣味のプログラムはVisualStudio&C++でやってきましたが、勉強の意味も含めて新しい環境でやってみたくなりました。
言語はC#で決定なのですが、他の開発環境をどうするかについて、未知の領域への不安を感じています。
似たような道を通った先輩方、「それは止めた方が良い」とか「こっちの方が良くないか?」とかのアドバイスを頂けないでしょうか?

現在の方針は下記の通りです。

・MONOを使いたい。
 (マルチプラットフォームに憧れているから)
・ECLIPSEを使いたい。
 (フリーで全ての機能を使えるところに憧れているから。)
・ECLIPSEの次点として、SharpDevelopを使いたい。
 (Eclipseの方が活発に見えるし、他言語への応用が広そう。でも、SharpDevelopはVSソックリというのが魅力的。)
・EclipseではCVSの方が使いやすそうに見えるが、SubVersionを使ってみたい。
 (SubVersionが後発だから。CVSの経験が無いから。)
982デフォルトの名無しさん:2007/05/16(水) 17:06:30
なんでSubversionのVが大文字なん?
983デフォルトの名無しさん:2007/05/16(水) 17:07:53
OSはWindows?
984981:2007/05/16(水) 17:10:39
>>982
私は適当だからです。

>>983
WindowsXP HOME のPCを開発マシンにしています。
XP Proのマシンもたまに開発に使います。
Vistaは当分買わないと思います。
985デフォルトの名無しさん:2007/05/16(水) 17:15:32
初めはmono+Eclipseよりも.NetFramework+VisualC#でやるほうがいいんでないの。
986デフォルトの名無しさん:2007/05/16(水) 17:18:57
どうも一部スレ違いな気がしてならないが、最初は.NET+VisualStudioでやってみればどうだろう。
それからMONOやSharpDevelopを使うと完成度の低さに愕然とすることになるが。
Eclipseは使ったことないから白根。
987デフォルトの名無しさん:2007/05/16(水) 17:19:20
Monoってそんなに完成度高かったっけ?
988デフォルトの名無しさん:2007/05/16(水) 17:23:40
Mono Projectは慢性的な人手不足だから、どうにもならんだろう
#Dは機能面で本家に勝てる日は来ないだろうな。軽いのはいいんだが
989デフォルトの名無しさん:2007/05/16(水) 17:24:13
マルチプラットフォームなんて絵に描いたずんだ餅
990デフォルトの名無しさん:2007/05/16(水) 17:24:44
monoはだいたい半年毎に使ってみてるが
まだ実用的に使うには不安が残るレベルだと感じてる
991デフォルトの名無しさん:2007/05/16(水) 17:26:53
JavaのIDEはEclipseで足りないときは、有料IDEを追加で使用する必要があるが
C#のIDEはVSで十分間に合う。
あまり、IDEを複数使うより、ひとつのIDEを使いこなせるように努力したほうが
結果的に品質が良いものができるよ。
992981:2007/05/16(水) 17:31:46
皆様、アドバイスありがとうございます。
質問を2点追加です。

VSExpressだと機能が足りなくて、結局後でProを買うハメになるのではと思っているのです。
実際に使ってみてどんな感じでしょうか?

異なるIDE間でワークスペースの移行が簡単に出来るのならば、
VSでもEclipseでもSharpでも良いと思っているのですが、IDEの移行は簡単でしょうか?
993デフォルトの名無しさん:2007/05/16(水) 17:39:00
> VSExpressだと機能が足りなくて、結局後でProを買うハメになるのではと思っているのです。
> 実際に使ってみてどんな感じでしょうか?
機能一覧で必要な機能があるなら上位バージョンを使えばよい。

>
> 異なるIDE間でワークスペースの移行が簡単に出来るのならば、
> VSでもEclipseでもSharpでも良いと思っているのですが、IDEの移行は簡単でしょうか?
人に聞く前に調べるべき。
http://www.microsoft.com/japan/msdn/vstudio/default.aspx
994デフォルトの名無しさん:2007/05/16(水) 17:41:11
君が持ってるVisualStudioのバージョンは何?6.0とか?
君がいずれ何をしたくなるかはわからんが、
少なくともC#の勉強にはExpressでも十分すぎる程ある。
995デフォルトの名無しさん:2007/05/16(水) 17:43:21
少なくともEclipseやSharpDevelopよりはExpressのほうが遥かにマシだろ
996981:2007/05/16(水) 17:49:08
>>994
VS2003です。

他のIDEはC#での完成度が芳しくなさそうなので、VSExpressでいこうと思います。
皆様、ありがとうございました。
997デフォルトの名無しさん:2007/05/16(水) 17:53:02
VS2003にVC#はついてるでしょ。前バージョンだけど。
まぁそれだったらExpressダウンロードしてもいいね。
998デフォルトの名無しさん:2007/05/16(水) 17:53:42
C#1.0とか糞だろ
VB以下
999デフォルトの名無しさん:2007/05/16(水) 17:54:22
ぬるぽ
1000デフォルトの名無しさん:2007/05/16(水) 17:54:52
1.1では。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。