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

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

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

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

前スレ
ふらっとVisual C#,C♯,C#(初心者用) Part100
http://toro.2ch.net/test/read.cgi/tech/1354437126/

関連スレ
C#, C♯, C#相談室 Part78
http://toro.2ch.net/test/read.cgi/tech/1356268827/
2デフォルトの名無しさん:2013/01/09(水) 07:38:21.17
>>1
おつ
3デフォルトの名無しさん:2013/01/09(水) 09:09:22.63
5時間ぐらいスレ立ってなかったのか
4デフォルトの名無しさん:2013/01/09(水) 12:23:38.27
通は会話もC#で行う
5デフォルトの名無しさん:2013/01/09(水) 13:08:55.70
リアルで2ちゃん用語使っちゃう人みたいだね
6デフォルトの名無しさん:2013/01/09(水) 16:17:01.59
質問させてください。
WPF+MVVMモデルで、
「ボタンをクリックしたら、テキストブロックにボタンの名前(Content)が表示される」というプログラムを作りたい場合、
どのように実装したらよいものでしょうか。

コードビハインドを使えば簡単そうなのですが、
MVVMの勉強をしているためコードビハインドを避けて実装したいと考えています。
Viewにあるボタンの名前をどうにかしてViewModelに持ってきて、その名前を使ってテキストブロックの文字を更新したいのですが、
ボタン名を持ってくるにはどうすればよいのかわからず・・・

初心者なので要領を得ない質問になっているかもしれませんが、
エスパーでも結構ですのでどなたかお答えいただけないでしょうか。
7デフォルトの名無しさん:2013/01/09(水) 16:20:28.51
私にはわかりませーん
8デフォルトの名無しさん:2013/01/09(水) 17:19:08.86
WindowsフォームのchartコントロールでLineチャートを使っています。
配列からデータを追加していくとき、数値がnullの部分があるので、そこは空白にして飛ばしたいと考えています。
chart1.Series[0].Points.Add(???)
の???には何を入れればいいのでしょうか?
(nullやDouble.NaNを入れてみると、nullの場合は描画に失敗し、NaNの場合は0として描画されてしまいます。
EmptyPointStyleはAverageに設定してあります。)
アドバイスをお願いします。
9デフォルトの名無しさん:2013/01/09(水) 17:26:42.36
abstract 宣言された get のみのプロパティをオーバーライドしたいんだけど:

public abstract string Hoge { get; }
 ↓
public override string Hoge { get { return "hoge"; } }
 → Bは継承抽象メンバーA.Hoge.setを実装しません
public override string Hoge { get { return "hoge"; } set { } }
 → Bは継承抽象メンバーA.Hoge.setを実装しません
 → Aに、オーバーライド可能な set アクセサーがないため、オーバーライドできません
public string Hoge { override get { return "hoge"; } }
 → そもそも構文エラー

どう書けば良いんでしょうか???
10デフォルトの名無しさん:2013/01/09(水) 17:30:16.46
無理。
派生されたとき、setに変なオーバーライドされないようにってことなんだろうが、
そこは、派生クラスの責任として捉えるしかない。
制約するなら getのみのプロパティを作って、基底クラスでは、別のメソッドなりでフィールドを更新するぐらいだろう。
11デフォルトの名無しさん:2013/01/09(水) 17:33:57.94
マジで! これ Windows Azure のクラスなんだけど…
Microsoft.WindowsAzure.ServiceRuntime.LocalResource ← これのテスト用モックを作ってます
12デフォルトの名無しさん:2013/01/09(水) 18:44:04.02
getのみの抽象プロパティは問題なくオーバーライドできるはずだけど
ドキュメントに出てないだけで多分本当はgetのみじゃなくて{ get; internal set; }なんだろうな
LocalResourceクラス見てみたけど、この程度なら全部ラップしてインターフェイス被せとけばいいだろ
13 忍法帖【Lv=40,xxxPT】(1+0:5) :2013/01/09(水) 21:43:53.40
てすてす
14デフォルトの名無しさん:2013/01/09(水) 22:51:49.46
>>6
ボタン名をVMに持ってきとけば?
Button.Contentもバインディング
15デフォルトの名無しさん:2013/01/10(木) 15:01:18.00
Windows AzureはC#の仕様全くわかってない奴が作ってるのか
16デフォルトの名無しさん:2013/01/10(木) 15:50:57.83
abstractプロパティでget internal setか・・・
嫌がらせには最高だな
179:2013/01/10(木) 19:36:31.92
なるほど、internal set で宣言されてたらこうなりそうですねー。
ありがとうございました orz
18デフォルトの名無しさん:2013/01/10(木) 20:13:08.86
すみません。

たとえばTeacupの掲示板に、毎日定時連絡を自動で書き込みたいのですが

これの方法って紹介しているところありますかね。

信じて欲しいのですが、決して嵐がしたいわけではありません。
19デフォルトの名無しさん:2013/01/10(木) 20:25:07.57
C#としてはWebRequestの使い方ぐらいしかポイントがないんで、自分でHTMLの勉強をして勝手に作って
20デフォルトの名無しさん:2013/01/10(木) 20:33:50.31
>>19
なるほど。。。
21デフォルトの名無しさん:2013/01/10(木) 20:37:19.41
パブリック継承できない抽象クラスってMSのライブラリでは珍しくないが
コンストラクタがinternalじゃないのは不親切だな
22デフォルトの名無しさん:2013/01/11(金) 11:31:06.59
ILSpyなんかで何となくSystem.〜〜辺りを眺めてると、
そのクラス公開してくれよっと思ってしまう。
23デフォルトの名無しさん:2013/01/11(金) 13:43:07.16
貼り付けたWindowsMediaPlayerコントロールをキャプチャすることは出来ないでしょうか?
GraphicsのCopyFromScreenではコントロールの上に他のフォームがあるとそれもキャプチャしてしまい、
User32.dllのPrintWindowでは真っ黒になってしまいます。
24デフォルトの名無しさん:2013/01/11(金) 14:36:30.73
たぶん動画の部分は、Directなんたらになってるから
普通のやり方では無理だったはず。
2523:2013/01/11(金) 18:03:46.73
>>24
コントロールじゃないWindows付属のも、キャプチャするのにプロパティ変えなきゃですしね・・・。
他の方法を考えてみます、ありがとうございました。
26デフォルトの名無しさん:2013/01/11(金) 21:19:16.49
しかしあれだな、Win8に慣れるとデスクトップアプリなんか作る気にならなくなるな
まじでタッチ主体の時代くるでこれ
27デフォルトの名無しさん:2013/01/11(金) 21:29:12.87
ソフトウェアでうちの液晶モニタもタッチ対応にしてください
28デフォルトの名無しさん:2013/01/11(金) 21:54:03.00
>>26
バカにしてたけど用途によってはいいね
ファイルを意識せず扱えるところとか
29デフォルトの名無しさん:2013/01/11(金) 23:05:20.58
>>27
液晶モニタは自分で買えよ
30デフォルトの名無しさん:2013/01/11(金) 23:50:04.52
>>28
UIも言われるほど悪くないと思う
ってかタブに慣れたらノートPCなんかポイポイ〜だよ
31デフォルトの名無しさん:2013/01/12(土) 09:32:01.84
>>30
でもスピードは劣るでしょ?
32デフォルトの名無しさん:2013/01/12(土) 13:30:43.86
最低の入力デバイスであるトラックパッドよりは早いだろ
33デフォルトの名無しさん:2013/01/12(土) 14:24:53.50
public Form1()
{
InitializeComponent();

MyClass mc = new MyClass();
mc.Rect.Add(new Rectangle(0, 0, 50, 30));
mc.Rect[0].Width = 40;
}
public class MyClass
{
List<Rectangle> rect = new List<Rectangle>();

public List<Rectangle> Rect
{
get { return this.rect; }
set { rect = value; }
}
}

mc.Rect[0].Width = 40;←この行が実行するまでもなくエラーなんですが
どう書けば値を変更できますか?
34デフォルトの名無しさん:2013/01/12(土) 18:09:21.75
>>33
その1行前に答えが出てるじゃないか。
35デフォルトの名無しさん:2013/01/12(土) 18:24:35.14
>>34
一回removeしてからnewしろってことなの?方法それだけ?
36デフォルトの名無しさん:2013/01/12(土) 23:42:25.32
構造体プロパティのフィールドは変更できん
Removeは要らんけどRectangleを代入しないと
37デフォルトの名無しさん:2013/01/13(日) 02:31:21.06
remove要らないのか、ありがとう
とりあえず通ったからこれで先に進めるよ!
38デフォルトの名無しさん:2013/01/13(日) 04:36:45.65
大人しくVS使っとけよw
39デフォルトの名無しさん:2013/01/13(日) 22:56:53.13
オブジェクトを取得するって表現よりも
オブジェクトを生成するって表現の方がいいですか?
40デフォルトの名無しさん:2013/01/13(日) 23:07:20.03
newならそうだな
41デフォルトの名無しさん:2013/01/13(日) 23:39:43.64
>>40
取得の表現は
どういった場合ですか?

教えてください。
42デフォルトの名無しさん:2013/01/14(月) 00:17:14.76
オブジェクトプールから引っ張ってくる場合、生成では変だろ
43デフォルトの名無しさん:2013/01/14(月) 01:19:50.38
国語辞典に聞けよ
44デフォルトの名無しさん:2013/01/14(月) 01:51:45.52
インターフェース定義のものをもらうときとか
45デフォルトの名無しさん:2013/01/14(月) 05:22:29.05
返す必要があるなら借りるだな
46デフォルトの名無しさん:2013/01/14(月) 13:33:21.33
取得はGetだろ
生成はnew
newしないで取ってくるだけならGet 取得
47デフォルトの名無しさん:2013/01/14(月) 13:52:48.54
flyweightパターンで取得または生成する場合はどうすればいいでしょう
48デフォルトの名無しさん:2013/01/14(月) 14:03:33.78
普通はGetじゃね
49デフォルトの名無しさん:2013/01/14(月) 14:14:46.63
破棄の必要があるかないかで分けるという観点もある。
50デフォルトの名無しさん:2013/01/14(月) 17:58:21.33
ジェネリックインターフェイスの理解がどうにもこうにもピンときません。
なにか理解の助けとなるような有用な実習課題はないでしょうか?例えばこういうの作ってみると
理解が進むよ!とか。
51デフォルトの名無しさん:2013/01/14(月) 18:01:51.89
ICollection<T>
52デフォルトの名無しさん:2013/01/14(月) 18:10:07.25
>>51
内部に配列持って・・・
ってやつですか?
53デフォルトの名無しさん:2013/01/14(月) 18:14:21.17
ジェネリックインターフェイスを理解しないと困る理由を述べよ
54デフォルトの名無しさん:2013/01/14(月) 18:20:26.50
理解できないような馬鹿がどう困ろうが知ったことか
55デフォルトの名無しさん:2013/01/14(月) 18:23:35.99
毎回キャストしとけばええやん
悩むなし
56デフォルトの名無しさん:2013/01/14(月) 18:35:19.46
Array.Sortでint[]にIComparerとIComparer<int>とIComparer<string>やってみるとか
57デフォルトの名無しさん:2013/01/14(月) 19:28:41.93
>>50
ジェネリックはわかるの?
インターフェイスはわかるの?
58デフォルトの名無しさん:2013/01/14(月) 20:20:11.46
内部クラス便利やな
59デフォルトの名無しさん:2013/01/14(月) 20:54:47.28
ジェネリック医薬品なら使った事ある
6052:2013/01/14(月) 20:56:44.09
>>59
ジェネリック医薬品なら理解してるつもりですが
そっちのほうじゃありません。
61デフォルトの名無しさん:2013/01/14(月) 23:30:29.12
>>52
List<T>の自作とか
6252:2013/01/14(月) 23:32:25.63
ありがとうございます
提示された課題をやってみます。
63デフォルトの名無しさん:2013/01/15(火) 00:36:53.62
C#にC++でいうところのconstってないですか?
例えば、クラスが内部で持ってるmutableなオブジェクトを返すプロパティを作る場合、
書き換えられたくなかったらクローンしたものを返すのが一般的なのでしょうか。
64デフォルトの名無しさん:2013/01/15(火) 00:38:44.25
その通り
あとCloneは非推奨だからコピーを新しく実装するならコピーコンストラクタな
65デフォルトの名無しさん:2013/01/15(火) 01:01:09.30
ICloneableが非推奨なだけでClone自体は別に好きに書けばいいよ
66デフォルトの名無しさん:2013/01/15(火) 01:02:24.21
とりあえず、readonlyを付けておく。
といえ、インスタンスメンバーが参照され書き換え可能なので何らかの方法で複製したものを返すようにする。

ただそういう場合、プロパティよりもメソッドのほうが良いと思う。
foreachとかで短時間に複数回呼び出さないならどうでもいいけど。
67デフォルトの名無しさん:2013/01/15(火) 11:16:17.68
フォームのControlBoxをfalse、Textに何も文字を入れないとタイトルバー画非表示になりますが
たまに一時的にタイトルバーが表示されることがあります(表示されても自動的に数秒で消える)
CPUに負荷がかかってるときに起きてるんですが、これはこういうものなんでしょうか?
68デフォルトの名無しさん:2013/01/15(火) 13:45:40.66
immutableなラッパーを返すなり
書き換えないでねってコメントに書いておくなりしたらええわ
69デフォルトの名無しさん:2013/01/15(火) 14:54:17.67
VC#のフォームイベントのleaveのメソッドの中に、メッセージボックスを表示するコードを書いたのですが
フォームがアクティブから外れても処理されません
これはなぜですか?
70デフォルトの名無しさん:2013/01/15(火) 14:56:39.26
他のプロセスがアクティブ化された場合、Leaveイベントは、発生しない仕様。
どうしてもやりたいなら、ウィンドウメッセージを掴むしかない。
71デフォルトの名無しさん:2013/01/15(火) 14:57:53.31
そのコントロールがアクティブになっているか確認しろ
72デフォルトの名無しさん:2013/01/15(火) 15:19:32.76
他のアプリクリックしたらメッセージ表示されるとか
何事かと思うわな
73デフォルトの名無しさん:2013/01/15(火) 17:41:10.72
説明が曖昧なんだよな
タスクバーでアプリ切り替えてもフォーカスの位置はそのままだろ
74デフォルトの名無しさん:2013/01/15(火) 17:52:14.56
あれ?2012 expって評価目的にしか使えんのか。
これじゃフリーソフト作れないなー。
75デフォルトの名無しさん:2013/01/15(火) 17:55:30.52
などと意味不明なことを言っており
76デフォルトの名無しさん:2013/01/15(火) 18:25:13.56
登録(無料)をすれば使えるだろ
77デフォルトの名無しさん:2013/01/15(火) 19:11:22.68
@ITの「第2回 Entity Frameworkコード・ファーストでモデル開発」
のサンプルをやっていて、NugetからEntityFrameworkをインスト済、ビルド済の状態で
Booksコントローラを追加しようとすると「~.Model.Bookのメタデータを取得できません」とくるのです。
勿論SQLCompact4.0はbinに叩き込み済。試行錯誤しても一歩もすすまないので教えて偉い人。
78デフォルトの名無しさん:2013/01/15(火) 20:39:12.82
プログラミングC# 第6版の251ページの「反復処理と変性」の文章がどうしても理解できません。なんとかしてください。
79デフォルトの名無しさん:2013/01/15(火) 21:39:25.09
ああああああああああああああああああああああああああああああああああああああああああ
80デフォルトの名無しさん:2013/01/15(火) 22:51:39.28
タスクバーには表示しないでalt+tabで切り替えられるようにする方法を教えてください
81デフォルトの名無しさん:2013/01/15(火) 22:54:12.04
ShowInTaskbar
82デフォルトの名無しさん:2013/01/16(水) 10:32:24.74
そのShowInTaskbarをfalseにすればもちろんタスクバーには表示されないんですが
alt+tabで切り替えられなくなるのです
83デフォルトの名無しさん:2013/01/16(水) 11:18:10.68
前スレでファイラーの質問したものです
おかげさまで作る事ができました
ありがとうございました
8477:2013/01/16(水) 12:57:39.99
>>78
揶揄されてるのかと思ってしまった。
url貼ろうとしたら忍法帳に断られたのです。
85デフォルトの名無しさん:2013/01/16(水) 15:20:45.39
Web browserで広告クリックすると強制的にIEで開いてしまう
のですが、強制的にweb browserの中で開く方法を教えてください
86デフォルトの名無しさん:2013/01/16(水) 19:36:02.34
34A715A0-6587-11D0-924A-0020AFC7AC4D
でググれ。
87デフォルトの名無しさん:2013/01/16(水) 20:29:50.59
C#の機能を中心に勉強に便利な参考書って何があります?
88デフォルトの名無しさん:2013/01/16(水) 22:26:36.03
プログラミング .NET Framework
89デフォルトの名無しさん:2013/01/16(水) 23:00:24.59
>>82
FormBorderStyleをToolWindow系にしてない?
90デフォルトの名無しさん:2013/01/16(水) 23:05:04.44
ジェネリックってちょっと記述が楽になるだけだろ
91デフォルトの名無しさん:2013/01/16(水) 23:07:17.45
あなたの財布が楽になるの間違いでは?
92デフォルトの名無しさん:2013/01/16(水) 23:10:39.09
>>87
独習
93デフォルトの名無しさん:2013/01/17(木) 02:38:39.05
>>87
オライリー
94デフォルトの名無しさん:2013/01/17(木) 09:46:17.71
>>87
実践講座
95デフォルトの名無しさん:2013/01/17(木) 10:20:42.06
マウスでフォームのサイズの変更を、縦だけ禁止にしたいと思います
MaximumSizeとMinimizeBoxの値に0, 100と入力したら、縦どころか横にもサイズの変更ができなくなりました
何か他に設定がいるのでしょうか?
96デフォルトの名無しさん:2013/01/17(木) 11:31:03.25
public Form1()
{
InitializeComponent();
Application.Exit();
}

これでフォームが終了しないのはなぜですか?
97デフォルトの名無しさん:2013/01/17(木) 11:33:01.28
Application.ExitはApplication.Runを終わらせるもの
メインフォームのコンストラクタじゃまだApplication.Runは呼び出されてない
98デフォルトの名無しさん:2013/01/17(木) 11:34:21.78
まじすか
この段階で終わらせるにはどうするのでしょうか?
99デフォルトの名無しさん:2013/01/17(木) 11:40:26.89
そんな頭の悪いVB厨みたいなことはしない
Program.csでやれ
100デフォルトの名無しさん:2013/01/17(木) 14:58:26.17
VC#のデザイナーにコントロール(listboxとかlistviewなど)を貼り付けるのと、
まっさららクラスから
ListBox listBox1 = new ListBox();
this.Controls.Add(listBox1);
としたときで、プロパティの初期値は同じですか?
101デフォルトの名無しさん:2013/01/17(木) 17:37:47.30
初期値はそうだけどTabIndexのように生成と同時に外部から設定されるものもあるよ
10289:2013/01/17(木) 18:32:09.78
すいませんしてました
Sizableにすることで解決しました
ただ、これだとSizeで特定の小ささに設定できなくなってしまいます
SizableToolWindowのようにSizeも自由に変更できてSizableのようにタスクバー非表示だけどalt+tabはできるようにする良い解決方法はございませんか?
10382===102:2013/01/17(木) 18:32:59.73
すいません名前ミスです
>>89さんへのレスです
104デフォルトの名無しさん:2013/01/17(木) 18:42:54.24
MinimumSizeを1,1とかに設定すりゃいい
10582==102:2013/01/17(木) 20:53:32.35
どうもSizableだとMinimumSizeも効かないみたいです
106デフォルトの名無しさん:2013/01/17(木) 21:21:16.86
複数フォーム表示したときにタスクバーには一つにしたいけど、隠れたフォームを選択できないからってことか?
10782==102:2013/01/17(木) 21:24:38.56
タスクバーに表示するのは邪魔なんだけどマウスで切り替えるのが面倒なためalt
108デフォルトの名無しさん:2013/01/17(木) 21:26:35.80
タスクバーに表示するのは邪魔なんだけどマウスで切り替えるのが面倒なためalt+tabで切り替えられるのは残しておきたいのです
フォームは1個しかありません
109デフォルトの名無しさん:2013/01/17(木) 21:27:19.02
何が作りたいかというと電卓ソフトです
11082===102===108===109:2013/01/17(木) 21:28:12.04
コテハンはずれてました
111デフォルトの名無しさん:2013/01/17(木) 22:08:20.55
OSの問題でアプリ関係なくね?
OSがタスクバー見て切り替えてるんだったら無理だろ
112デフォルトの名無しさん:2013/01/17(木) 22:20:29.04
バックグラウンドで動いてるプロセスまで拾ったら困ります
113デフォルトの名無しさん:2013/01/17(木) 22:31:25.77
複数起動しようとしたら既存のプロセスからフォームを増やすようにすればいいんじゃないの
切り替えるキーは適当に割り当てて
114デフォルトの名無しさん:2013/01/17(木) 22:50:21.54
というか、なぜWindowsの約束事の範囲内で機能的に等価な別の方法をまず模索しないかね。
言っちゃ悪いけど女(異性)に一番嫌われるタイプだなw
11582===102===108===109:2013/01/17(木) 23:01:59.06
すみませんどうも話がかみ合ってないような気がするのでまとめます
ShowInTaskbar: false
FormBorderStyle: Sizable
にするとタスクバーを非表示でもalt+tabできるんですがサイズ
ttp://www.ipentec.com/document/document.aspx?page=csharp-sizeable-form-minimum-size-ignore
FormBorderStyle: SizableToolWindowに変更したらサイズは変更できますがalt+tabで切り替えられない副作用が生まれます
プログラミングの質問ですので女性に嫌われるのは全然構いません
116デフォルトの名無しさん:2013/01/17(木) 23:20:09.39
>>115
どこがかみ合ってないの?
出来ないなら別の方法模索したらって言ってるんだろ
馬鹿なの?
馬鹿だからこんなところで無意味な質問してるんだろうけど
117デフォルトの名無しさん:2013/01/17(木) 23:22:56.10
煽るくらいなら寝るか死に給え
118デフォルトの名無しさん:2013/01/17(木) 23:26:56.02
初心者は回答しなくて良いのよw
119デフォルトの名無しさん:2013/01/17(木) 23:29:22.88
>>114
>言っちゃ悪いけど女(異性)に一番嫌われるタイプだなw

お前が一番嫌われるタイプ
120デフォルトの名無しさん:2013/01/17(木) 23:30:09.13
馬鹿ってわかりやすいよな
121デフォルトの名無しさん:2013/01/17(木) 23:31:34.08
普通に>>115は気持ち悪いよ
122デフォルトの名無しさん:2013/01/17(木) 23:32:52.91
俺が一番嫌われている
12382===102===108===109:2013/01/17(木) 23:33:27.18
なんか荒れてしまい申し訳ありません
これはWindowsの仕様なのでしょうか?
124デフォルトの名無しさん:2013/01/17(木) 23:34:28.91
火病るくらいなら寝るか死に給え
125デフォルトの名無しさん:2013/01/17(木) 23:35:12.44
自分から仕掛けて気に入らないレスで返されると暴れだす
定期的にこのスレに出張る>>114みたいな根暗
126デフォルトの名無しさん:2013/01/17(木) 23:35:55.49
CreateParamsのオーバーライドを検討するか。
別の方法を模索するだろうな。
CreateParamsでうまく行くかはわからんけど、無理だろうな。
ALT+TABメニューとタスクバーは、等価だろうし。
127デフォルトの名無しさん:2013/01/17(木) 23:39:28.01
>>114
設計者は基本PC音痴だからな
128デフォルトの名無しさん:2013/01/17(木) 23:40:02.31
IDまるみえっすよ(w
129デフォルトの名無しさん:2013/01/17(木) 23:42:01.72
CreateParamsは無理
130デフォルトの名無しさん:2013/01/17(木) 23:45:22.26
msから公式な見解が出てそうな気もするけどそういう記事見当たらないね
俺には分からんから答えが分かる奴はこのスレにはいないっ!
131デフォルトの名無しさん:2013/01/17(木) 23:46:09.34
初心者は回答しなくて良いのよw
132デフォルトの名無しさん:2013/01/17(木) 23:50:29.31
馬鹿ってわかりやすいよなwwwwwwwwwwwwww
13382===102===108===109:2013/01/17(木) 23:51:19.87
わかりました
とりあえず諦めてSizableで妥協したいと思います
134デフォルトの名無しさん:2013/01/17(木) 23:58:28.68
>>132 みたいなのが馬鹿の代表的な書き込みだよな。
135デフォルトの名無しさん:2013/01/17(木) 23:59:55.83
しょうもない
136デフォルトの名無しさん:2013/01/18(金) 07:29:03.94
構造体でFieldOffsetでメンバ変数をアライメントするときに
なにを根拠にFieldOffsetで位置を指定しているのでしょうか?
137デフォルトの名無しさん:2013/01/18(金) 08:34:14.38
そりゃその構造体を使う人の要求次第だろ
138デフォルトの名無しさん:2013/01/18(金) 08:39:22.33
バカは答えるな
139デフォルトの名無しさん:2013/01/18(金) 08:45:04.97
CとC#でのプリミティブ型のサイズだろ
それくらい知ってて当然
P/InvokeならCのヘッダ見てそれと合わせる
140デフォルトの名無しさん:2013/01/18(金) 08:52:59.75
>>135
なんだ?耳勝負するか?
141デフォルトの名無しさん:2013/01/18(金) 09:39:38.37
勝負(笑)匿名で勝負(笑)
142デフォルトの名無しさん:2013/01/18(金) 09:47:27.28
143デフォルトの名無しさん:2013/01/19(土) 11:46:04.47
githubとかでC#で書かれたソースコードを見ると
どれもVC#でそのまま作ったような感じのものがあまり見かけません
やっぱりVC#で空のプロジェクトから1から作るものでしょうか?
デザイナーでコントロールを配置したり右下のプロパティから値を変更していくのはやめたほうがいいのでしょうか?
144デフォルトの名無しさん:2013/01/19(土) 11:52:14.37
GUIアプリなら普通にデザイナ使ってるはずだよ
でもオープンソースって基礎的なライブラリが大半で
GUIアプリ自体があまり多くないからな
広く一般的に利益のあるGUIアプリって少ないからね
145デフォルトの名無しさん:2013/01/19(土) 11:54:29.37
なるほど、やっぱり無理をせずデザイナーを使い続けることにします
ありがとうございます
146デフォルトの名無しさん:2013/01/19(土) 11:57:06.36
ListViewをDetailにして複数列存在する場合、
一番右の列の右側に余分なスペースが生まれてもったいないので、その列のみフォームの右側のはしまで一杯に広げたいのですが
これはどういう設定をしたらできますか?
147デフォルトの名無しさん:2013/01/19(土) 12:00:46.26
サイズ計算して自前で設定
148デフォルトの名無しさん:2013/01/19(土) 12:01:44.55
便利な設定はないですよね、わかりました
フォームロード時とウィンドウリサイズ時に自前で設定することにします
149デフォルトの名無しさん:2013/01/19(土) 12:04:20.61
便乗で失礼します。
VC# 2010 Expressを使用しています。
C#の言語自体の知識はあまり知らなくて、ググりながらソフトを作っているのですが、
このような学習は良くないでしょうか?
しっかりとテキストエディタとコマンドプロンプトでC#の言語を学び、コンソールアプリケーションから作れるようになってからIDEに移行するほうがよいでしょうか?
150デフォルトの名無しさん:2013/01/19(土) 12:05:13.54
ガベージコレクションって
なんかエロいよな
151デフォルトの名無しさん:2013/01/19(土) 12:06:44.60
そうかな?
152デフォルトの名無しさん:2013/01/19(土) 12:09:46.33
ガベージコレクター
153デフォルトの名無しさん:2013/01/19(土) 12:11:06.94
>>149
具体的に必要性を感じてから勉強したほうが頭に入るからそれでいいと思うけど
あまり無理にモノを作ろうとはしないほうがいい。分からなくなったら勉強を進めること。
特に初心者は他のアプリを操作しようとするとか技術的に変なところに深入りして嵌る
154デフォルトの名無しさん:2013/01/19(土) 12:21:09.30
基礎はしっかりと固めておかないと
後でかなり困るよ
155デフォルトの名無しさん:2013/01/19(土) 12:38:21.15
技術的に難しいことには踏み込まないのが学習を効率的に進めるためのコツ。
WinAPI、P/Invoke、プロセス間通信、WebBrowser、DirectX、リフレクション、COM、シリアライズ
あたりが初心者がどつぼにはまりがちな禁止ワード。技術的に難しいことやったからって
言語仕様の勉強になるわけではなく、慣れないうちに踏み込むのは時間の無駄。
156デフォルトの名無しさん:2013/01/19(土) 12:44:54.10
シリアライズぐらいできてもらわなくちゃ困る
157デフォルトの名無しさん:2013/01/19(土) 12:50:22.13
シリアライズは使いはじめるのは難しくないけど後になって互換性で困るんだよな
どうせ初心者のうちに書いたコードなんて後になったらゴミだからどうでもいいけど
158デフォルトの名無しさん:2013/01/19(土) 12:52:57.82
Stringってどういう経緯でUTF-16になったの?UTF-8の方がいいと思うんだけど。
159デフォルトの名無しさん:2013/01/19(土) 12:54:31.60
なんで.Netは標準でYAMLに対応してないんだよ
160デフォルトの名無しさん:2013/01/19(土) 12:59:48.25
Windowsの中で使ってるUnicodeエンコーディングがUTF16LEだから

YAMLに標準で対応してる言語の方が少ないだろ
161デフォルトの名無しさん:2013/01/19(土) 13:01:40.32
>>158
だいたいの文字が一つの変数に収まるのでプログラムでは扱いやすい
その意味ではUTF-32の方がいいんだが、そこはメモリとの兼ね合い
実際、IOはUTF-8なJavaでも内部表現にはUTF-16が使われてる
WindowsはUnicodeというとUTF-16がデフォだから.NETではIOもUTF-16がデフォ
162デフォルトの名無しさん:2013/01/19(土) 13:06:33.08
>>149
>しっかりとテキストエディタとコマンドプロンプトで
初心者には、非推奨。ただ面倒なだけだから大人しくVS使っておけばいい。
便利な道具は、使え。コマンドプロンプトでコンパイルする必要があったらその時、コマンドを調べればいい。
163デフォルトの名無しさん:2013/01/19(土) 13:14:04.30
わざわざテキストエディタとコマンドプロンプトでやるなんて愚かね
164デフォルトの名無しさん:2013/01/19(土) 13:15:56.15
お前らってVSの操作画面カスタマイズしてる?
165デフォルトの名無しさん:2013/01/19(土) 13:17:26.49
C++やCはテキストエディタで書いてる俺もC#は普通にVS使う
166デフォルトの名無しさん:2013/01/19(土) 13:19:41.33
黒背景にハイコンストラストが好きなので黒背景にしてる。
あとは、ドキュメントのフォーマットと定義に折りたたむなど、よく使いそうな
コマンドは、ワンクリックで実行できるようにしてる。
167デフォルトの名無しさん:2013/01/19(土) 13:22:55.76
VS2012の淡色テーマ見にくすぎ。濃色は良いのに。
別に黒背景派ではなかったがVSのせいで黒背景派になったわ
168デフォルトの名無しさん:2013/01/19(土) 13:23:08.59
2012のデフォ画面は見づら過ぎる
169デフォルトの名無しさん:2013/01/19(土) 13:28:41.66
2012の濃色テーマの見やすさは異常
この手のエディタで全く配色弄りたくならないの初めてだわ
170デフォルトの名無しさん:2013/01/19(土) 13:31:28.78
>>166
よく使いそうなコマンドはワンクリックって
ほとんどショートカットキーに対応してないか?
171デフォルトの名無しさん:2013/01/19(土) 13:34:22.52
Core i7で3.0GHz以上のとメモリ16GBのパソコンだとVC#の起動はどのくらいですか?
今celeron何ですけど起動時間1分から2:30ぐらいかかります
172デフォルトの名無しさん:2013/01/19(土) 13:36:46.65
>>171
まずは1回死んで来い
173デフォルトの名無しさん:2013/01/19(土) 13:38:17.42
淡色テーマでインテリセンス表示してみたか?とデザイン部に聞いてみたい
174デフォルトの名無しさん:2013/01/19(土) 13:40:12.92
刑法第222条
生命、身体、自由、名誉又は財産に対し害を加える旨を告知して人を脅迫した者は、2年以下の懲役又は30万円以下の罰金に処する。
親族の生命、身体、自由、名誉又は財産に対し害を加える旨を告知して人を脅迫した者も、前項と同様とする。
175デフォルトの名無しさん:2013/01/19(土) 13:42:17.69
そうか死んで来い
176デフォルトの名無しさん:2013/01/19(土) 13:44:59.98
冗談でもなんでもなく1秒で起動する
177デフォルトの名無しさん:2013/01/19(土) 13:51:06.03
スペックよければな
178デフォルトの名無しさん:2013/01/19(土) 13:56:41.61
XElement.Valueだと子要素が全部連結されて返ってくるんですけど
自分自身のテキストだけ取得するのってどうやるんですかね
179デフォルトの名無しさん:2013/01/19(土) 13:59:26.74
LINQ
180デフォルトの名無しさん:2013/01/19(土) 13:59:49.34
181デフォルトの名無しさん:2013/01/19(土) 14:07:31.07
>>170
そうなんだが、ショートカットキーをふとした時に忘れてしまうのと、
コード眺めて整理してる時とか、キーボードよりマウスに手があることが多いので
ワンクリックのほうが使いやすいんだ。
182デフォルトの名無しさん:2013/01/19(土) 14:08:05.37
素早く適切な回答ありがとうございました
183デフォルトの名無しさん:2013/01/19(土) 14:33:26.75
プログラムから読み込む設定用のINIをプログラムと同じ場所に起きたいので
VCのソリュージョンエクスプローラーからForm1.csと同じ場所にINIファイルを置いたのですが
F5またはF6を押したときに、debugまたはreleaseのフォルダにINIファイルが生成されません
手動でINIファイルをコピーしなければならないのでしょうか?
184デフォルトの名無しさん:2013/01/19(土) 14:35:41.97
出力ディレクトリにコピー>する
185デフォルトの名無しさん:2013/01/19(土) 14:42:55.45
出来ました
ありがとうございました
186デフォルトの名無しさん:2013/01/19(土) 15:03:30.63
timer1.Start()ってして
timer1.Stop()とtimer1.Dispose()をしないでApplication.Exit()をしたら自動的にC#が面倒みてくれますか?
187デフォルトの名無しさん:2013/01/19(土) 15:07:14.25
みてくれないけどどうせプロセスが終了したら全部消えるからどうでもいい
188デフォルトの名無しさん:2013/01/19(土) 15:21:04.36
Application.Exit()をすればプロセスが完全に終了される保障はあるんですか?
189デフォルトの名無しさん:2013/01/19(土) 15:24:54.08
Application.Exitを読んでもプロセスは終了しないよ
メッセージループが終わってApplication.Runが処理を戻すだけ
Program.csでは通常、Mainの最後でApplication.Runを呼んでるから結果的にメインスレッドが終了する
190デフォルトの名無しさん:2013/01/19(土) 15:28:03.09
kill()使え
191デフォルトの名無しさん:2013/01/19(土) 15:31:03.60
プロセス潰すならEnvironment.Exit
192デフォルトの名無しさん:2013/01/19(土) 16:08:57.73
最近のセレロンは十分早いっしょ
デュアルコア2Gぐらいのセレロンだけど快適だわ
中身はC2D世代のやつだったかな
193デフォルトの名無しさん:2013/01/19(土) 16:53:36.76
celeronっていっても上から下まであってだな
194デフォルトの名無しさん:2013/01/19(土) 17:07:38.48
未だにApplication.Runの引数無しの用途がわからん
195デフォルトの名無しさん:2013/01/19(土) 17:09:18.58
開発環境のほうがユーザーよりスペック高かったらろくな検証できないだろ
196デフォルトの名無しさん:2013/01/19(土) 17:25:41.35
celeronって700MHzのCPUでしょ
197デフォルトの名無しさん:2013/01/19(土) 17:42:57.73
銭湯の洗面器の底に載ってる広告のあれじゃないのか
198デフォルトの名無しさん:2013/01/19(土) 18:24:01.42
毛路輪
199デフォルトの名無しさん:2013/01/19(土) 21:00:09.85
IEqualityComparerのGetHashCodeについて質問なんですが、
入力Aと入力BでGetHashCodeが返す評価式を分けるような実装って可能ですか?
200デフォルトの名無しさん:2013/01/19(土) 21:01:28.93
可能ってどういう意味よ
コンパイラがエラー吐かなければなんでも可能だろ

何を持って可能とする
201デフォルトの名無しさん:2013/01/19(土) 21:06:39.05
アレの制約は「Equalsでtrue→GetHashCodeが同じ値を返す」ってことだけ
202デフォルトの名無しさん:2013/01/19(土) 21:12:29.33
ルール破っても、ルールが正しいことを前提にしているクラス群が正しく動かないだけで、実装はできますよ。
そんなもの求めてるのかは知りませんが。
203デフォルトの名無しさん:2013/01/19(土) 21:18:50.13
そもそもIEqualityComparerの内部実装なんですが、入力された集合Aと集合Bにおいて、GetHashCodeが同じ値の項目同士を比較し、その比較はEqualsメソッドで行われるって認識であってますよね?
で、今回はそのGetHashCodeが返す値を集合Aと集合Bで分けたいんです。
204デフォルトの名無しさん:2013/01/19(土) 21:20:38.50
日本語でおk
205デフォルトの名無しさん:2013/01/19(土) 21:21:30.67
それは「IEqualityComparerの内部実装」じゃなくて
「IEqualityComparerを使用する側」の内部実装だろ

そんなものは知らん
206デフォルトの名無しさん:2013/01/19(土) 21:22:15.76
一つ言えることはある
お前のレベルでそういうことを考えるのは止めとけ
207デフォルトの名無しさん:2013/01/19(土) 21:23:12.53
>>206
解決のヒントくらいくらはい
208デフォルトの名無しさん:2013/01/19(土) 21:23:33.92
それよりも、まずやってみろよ
209デフォルトの名無しさん:2013/01/19(土) 21:27:01.99
トラブってもいないうちから解決も糞もないだろ
最低でもエラーが説明できるようになってからにしろ
210デフォルトの名無しさん:2013/01/19(土) 21:29:07.73
まずその処理にIEqualityComparerが何で要るの
要らねえだろ
211デフォルトの名無しさん:2013/01/19(土) 21:34:28.20
やりたいこと動かなくていいからソースの形にまとめてくれ
どの集合をどこから入力して何のクラスを使ってどういう形に持って行きたいか、まで
212デフォルトの名無しさん:2013/01/19(土) 21:42:04.39
>>203
正直よく理解できないが、おまえさんの考え自体に既に矛盾があるような気がする。
実際にコードを書きながら考えろ。
213デフォルトの名無しさん:2013/01/19(土) 21:49:03.19
c#でデバッガの使い方を教えてください
変数の値の確認にいつもMessageBox.Showを使っているのですが面倒くさくてつらいです
214デフォルトの名無しさん:2013/01/19(土) 21:50:13.93
そのMessageBox.Show書いてるところにブレークポイント置け
ブレークポイントのおき方はググれ
215デフォルトの名無しさん:2013/01/19(土) 21:51:46.03
ブレークポイントを右クリックしてヒット時の動作を設定すればコンソール出力が出来る
216デフォルトの名無しさん:2013/01/19(土) 22:22:00.68
ブレークポイントですかこれで中級者になれる気がしました
217デフォルトの名無しさん:2013/01/19(土) 22:24:17.48
悪いが初心者が真っ先に覚えるべきことだぞ?
218デフォルトの名無しさん:2013/01/20(日) 00:13:57.32
コンストラクタとデストラクタについて、以下で間違いないでしょうか。

1. フィールドの初期化とコンストラクタは基本クラス→派生クラスの順で呼ばれる。
2. デストラクタは派生クラス→基本クラスの順で呼ばれる。
3. コンストラクタで抽象メソッドまたは仮想メソッドを呼んだ場合…
 派生クラスでメソッドがオーバーライドされていれば、派生クラスのメソッドが呼ばれるが、
 派生クラスのコンストラクタがまだ実行されていないため、問題が起こる場合がある。
4. デストラクタで抽象メソッドまたは仮想メソッドを呼んだ場合…
 派生クラスでメソッドがオーバーライドされていれば、派生クラスのメソッドが呼ばれるが、
 派生クラスのデストラクタがもう実行されているため、問題が起こる場合がある。
219デフォルトの名無しさん:2013/01/20(日) 00:35:39.47
コンストラクタ → エロい
デストラクタ  → 怖い
220デフォルトの名無しさん:2013/01/20(日) 00:40:06.44
デストラクタは途中で例外が起きた場合など全部呼ばれるとは限らない
221デフォルトの名無しさん:2013/01/20(日) 00:46:28.70
インストラクタ → エロいお姉さん
222デフォルトの名無しさん:2013/01/20(日) 00:46:57.98
だからと、全部try/catchで握りつぶすのもどうかと思うし、
どうしたものかな。
223デフォルトの名無しさん:2013/01/20(日) 00:49:31.07
まともな使い方してればそんなに悩むほどデストラクタ(というかファイナライザ)を書く機会はないはず
ファイナライザを実装するのは直接アンマネージリソース握ってて
最後にWinAPI関数呼び出して解放するようなクラスだけだよ
224デフォルトの名無しさん:2013/01/20(日) 00:52:21.55
最悪の場合にそのうち、Dispose()を呼ぶためのものだと、思ってる。
225203:2013/01/20(日) 00:55:14.87
>>212
これでやりたいことが伝わるといいのですが、IEqualityComparerでは無理な気がしてきました
http://www.dotup.org/uploda/www.dotup.org3862768.txt
226デフォルトの名無しさん:2013/01/20(日) 00:55:54.29
>>224
誤解してないか?
参照先の他のクラスがDisposeを実装していたとしても
ファイナライザでそれを呼ぶ必要ないよ。意味ない。
227デフォルトの名無しさん:2013/01/20(日) 00:59:01.61
>>225
そんなもん
class MyFileInfo {
 public string FullPath;
 public string RelativePath; //集合演算にはこっち使う
}
で済む話ちゃうんかと
228203:2013/01/20(日) 01:06:41.03
>>227
まぁそうですよねー
IEqualityComparer使えばより簡単に出来るかと思ったんですが
229デフォルトの名無しさん:2013/01/20(日) 01:12:46.71
なー書くと疑問もスッキリするだろ
230デフォルトの名無しさん:2013/01/20(日) 01:20:35.46
>>226
>>224が言いたいのは、ユーザーが呼び忘れたDisposeをそのうち呼んでくれる

~Foo()
{
  Dispose();
}

public void Dispose()
{

  GC.SuppressFinalize();
}
231デフォルトの名無しさん:2013/01/20(日) 01:24:16.94
>>230
だからそのDisposeで何やってるかが問題
直接アンマネージリソースの解放をやってないのならファイナライザで呼ぶ意味はない
232デフォルトの名無しさん:2013/01/20(日) 01:25:42.07
>>228
というか要求通りに動かないぞ、これ
相対パスが違ってても、ハッシュがコリジョンしていればサイズの判定に進むだろ
そんでサイズが一緒ならEqualはtrueを返すぞ
233203:2013/01/20(日) 01:31:50.20
>>232
それは認知しています。
実際にはEqualsメソッド内部でも、相対パスとサイズの両方が一致すればTrueってな感じで比較を行うようにするつもりです。
234デフォルトの名無しさん:2013/01/20(日) 01:32:56.01
なーんだ
235デフォルトの名無しさん:2013/01/20(日) 01:45:38.41
>>231
IDisposableを実装してるメンバがあれば、全部Disposeを呼ばなきゃだめだろ。
236デフォルトの名無しさん:2013/01/20(日) 01:46:49.13
>>233
こうあるべき、とまでは言わないけど、俺だったらこう書くかな〜という例。
http://ideone.com/ZfAXcZ
237デフォルトの名無しさん:2013/01/20(日) 02:06:59.51
Path.GetFileNameを使おう(提案)
238デフォルトの名無しさん:2013/01/20(日) 02:28:39.41
>>236
やっぱり各々のオブジェクトでやったほうが良さそうですね。

>>237
どういうことですか?
ファイル名だけでの比較は、階層が違っていても判断できないのでNGです。
239デフォルトの名無しさん:2013/01/20(日) 02:31:23.41
残念だがPath.GetFileNameじゃ要件を満たさないんだよ(震え声)
240デフォルトの名無しさん:2013/01/20(日) 02:32:25.48
>>238
気にしなくていい。
>>237はちょっと人の話を理解する能力に欠けているだけだ。
241デフォルトの名無しさん:2013/01/20(日) 02:35:29.38
えー最終的に「相対パスとサイズの両方が一致すればTrueってな感じで比較を行うようにする」のであればGetFileNameだけでよくない?
242デフォルトの名無しさん:2013/01/20(日) 02:45:59.43
>>241
ファイル名だけで比較すると、c:\test\dira\doc3.txtとc:\test\dira\sub\doc3.txtが同一ファイルとみなされてしまうので駄目です。
(c:\test\dira)\doc3.txtと(c:\test\dirb)doc3.txtはサイズが同じなら同一ファイル、
(c:\test\dira)\doc3.txtと(c:\test\dirb)\sub\doc3.txtはサイズが同じでも別ファイルとしたいんです。
243デフォルトの名無しさん:2013/01/20(日) 02:49:41.47
じゃあPath.GetFullPathでいいんじゃないの?
244デフォルトの名無しさん:2013/01/20(日) 02:52:26.02
>>243
それじゃあ、そもそも比較されません><
245デフォルトの名無しさん:2013/01/20(日) 09:27:05.23
以下の3パターンの比較でもっとも良い比較方法を教えてください

時間を比較する場合は?
日付を比較する場合は?
日時を比較する場合は?
246デフォルトの名無しさん:2013/01/20(日) 09:38:26.68
DateTime.TimeOfDay
DateTime.Date
DateTime
247デフォルトの名無しさん:2013/01/20(日) 12:34:03.27
C#で書いたコードをCかC++に変換してくれるありがたいツールってないかな
248デフォルトの名無しさん:2013/01/20(日) 12:38:00.63
みんながそれをありがたがるならとっくにそんなもん世に出てみんなそれを使ってるはず。
実際過去にはそういうのもあったんだが全く話題にもなってない。
つまりそういうことだ。
249デフォルトの名無しさん:2013/01/20(日) 12:45:41.55
ねーちぶかどうかなんてもうどうでもよくなった
250デフォルトの名無しさん:2013/01/20(日) 12:54:32.69
FAQ
・.NETが必要→今は大抵入ってる
・それでも.NETに依存したくない→配布サイズがプログラムだけで数十MBになるのとどっちがいい?
・起動が遅い→IOバウンドなのでネイティブにしても無駄
251デフォルトの名無しさん:2013/01/20(日) 13:05:19.33
ランタイム含めてパッケージ化したら、GACにあるライブラリのアセンブリが
プリフェッチなどで既にメモリにキャッシュされてる場合でも同じコードを改めて自分のとこから読まないといけないよね?
IOで初回起動クソ遅くなりそう
252デフォルトの名無しさん:2013/01/20(日) 13:32:41.51
ブレークポイント右クリックって何よ
エクスプレスで出来ないこと言ってない?
253デフォルトの名無しさん:2013/01/20(日) 16:00:42.35
マイクロソフト提供のMVC3 MusicStoreのチュートリをこつこつ
やってるのだけれどもThe Entity Framework provider(略)could not be loaded
とくるのです。NuGetでEntityFrameworkもSQLCompactも投入してるのになぜ
なのだろうかと手が止まってしまいます。
254デフォルトの名無しさん:2013/01/20(日) 16:29:38.30
C#以前の問題かもしれませんが、ググっても見つからなかったので
C#でマルチプロセスを実装する場合ソケット通信するしか無いんですかね?
255デフォルトの名無しさん:2013/01/20(日) 16:33:35.02
IpcRemoteObjectでググれ
256デフォルトの名無しさん:2013/01/20(日) 16:35:38.05
ありがとう、なんとかやってみます
257デフォルトの名無しさん:2013/01/20(日) 16:53:16.18
c#でircを手軽に作れるライブラリってありませんか?
258デフォルトの名無しさん:2013/01/20(日) 19:17:36.54
初心者なんですけど、初心者向けのソフトを教えてください
何を作れば良いのかわかりません
259デフォルトの名無しさん:2013/01/20(日) 19:51:05.28
hello world
260デフォルトの名無しさん:2013/01/20(日) 20:58:07.73
メモ帳
261デフォルトの名無しさん:2013/01/20(日) 21:00:25.25
メモ帳は30分くらいでそれっぽいのできるよな
VSの操作の練習にはいい
262デフォルトの名無しさん:2013/01/20(日) 21:32:17.14
電卓。全くの初心者には結構ハードルが高いけど。
263デフォルトの名無しさん:2013/01/21(月) 08:41:00.66
前スレで失礼なことを書いて
すいませんでした。
264デフォルトの名無しさん:2013/01/21(月) 13:57:49.98
子フォーム間で、フォームが閉じれないのですがどうすればいいか
教えて下さい。

子フォーム1,子フォーム2で子フォーム1のボタンで子フォーム2を閉じるプログラム
を作ったのですが、

private void button1_Click(object sender, EventArgs e)
{
      Form2 fm2 = new FORM2();
      fm2.Close();
}

これだとフォームが閉じません。
265デフォルトの名無しさん:2013/01/21(月) 14:22:21.20
newって英単語を意識しようよ

子フォーム1と2は兄弟?親子?
266デフォルトの名無しさん:2013/01/21(月) 14:35:55.68
子フォーム1と2は兄弟です。
子フォーム2自体は子フォーム3からShowで表示させています。
267デフォルトの名無しさん:2013/01/21(月) 15:30:35.74
親と子の概念を考え直すときが来ているようだ
268デフォルトの名無しさん:2013/01/21(月) 15:38:06.96
なんでこんなにバカなの?
269デフォルトの名無しさん:2013/01/21(月) 15:43:29.23
メモ帳なんか自力で作ったら一ヶ月はかかるだろうが
270デフォルトの名無しさん:2013/01/21(月) 15:44:48.96
鶏が先か卵が先かみたいな話か?
271デフォルトの名無しさん:2013/01/21(月) 15:49:16.74
Form2 fm2 = new Form2();

private void showButton_Click(object sender, EventArgs e)
{
      fm2.Show();
}

private void closeButton_Click(object sender, EventArgs e)
{
      fm2.Close();
}

つまりこういうことでしょう
ShowもしていないnewしたてのFormをCloseしても何も起こらないのは当然
272264:2013/01/21(月) 15:58:00.20
分かりづらくてすいません。
最初から説明すると親フォームから →Form1
→Form2
を生成。
Form2のボタンを押すと、Form3を生成し、Form2を削除。
Form1のボタンを押すと、Form3を削除し、Form2を生成。
というプログラムを作りたいのですが、Form1からForm3を削除するには
どうすればいいかという質問です。
273デフォルトの名無しさん:2013/01/21(月) 16:19:13.98
274デフォルトの名無しさん:2013/01/21(月) 16:21:30.18
Form1にForm3の参照を与えればいいだけ
275264:2013/01/21(月) 16:31:30.00
参照を与えるというのは具体的どういう風にすれば出来ますか?
無知ですいません.....
276デフォルトの名無しさん:2013/01/21(月) 16:40:54.92
 var form1 = new Form1();
 var form3 = new Form3();

 //Form1のForm3プロパティにForm3を入れる
 form1.Form3 = form3;
277デフォルトの名無しさん:2013/01/21(月) 17:55:05.23
コンテキストメニューを設定していないコントロールを右クリックするとnullの例外が発生するのですが原因がわからず困っています
教えてエロイ人
278デフォルトの名無しさん:2013/01/21(月) 18:05:20.41
親になっているタブコントロールに間違ってコンテキストメニューを設定していたのが原因でした
ごめんねエロイ人
279デフォルトの名無しさん:2013/01/21(月) 21:08:57.30
指定時間に特定の処理を実行させたいのですが
システムが休止状態の間は実行できないんですが、
C#で休止状態を解除する方法はございませんか
280デフォルトの名無しさん:2013/01/21(月) 22:06:29.12
まず休止状態が何か調べなおしてこい。
いきなりPCの電源が付いたら怖いだろw
確かにBIOSによっては、指定時間に自動起動するものもあるかもしれないが…。
281デフォルトの名無しさん:2013/01/21(月) 22:08:05.76
常時パソコンを起動しとくと電気代もったいないので何とかできませんか
別にC#じゃなくてもいいです
助けてください
282デフォルトの名無しさん:2013/01/21(月) 22:12:33.87
型落ちスマホでも使えば
283デフォルトの名無しさん:2013/01/21(月) 22:14:07.80
タスクスケジューラーにでも登録すれば?
284デフォルトの名無しさん:2013/01/21(月) 22:17:18.66
>>279
ACPIが普及したWin98の時代から可能になってる。
>>283の言うとおりタスクスケジューラーを使えばいい。
こういうネタはパソヲタの方が詳しいかも
285デフォルトの名無しさん:2013/01/21(月) 22:24:57.67
タスクスケジューラみてみたら出来るようですね
たすかりました
C#からタスクを登録して実行することにします
286デフォルトの名無しさん:2013/01/21(月) 22:36:06.44
出来るのはスリープの方
287デフォルトの名無しさん:2013/01/21(月) 22:39:24.64
このスレで聞くようなことじゃないかもしれないけど、色指定において
文字列"#FF00FF"とか"255000255"を、
int型のred,green,blueに変換する方法ってどうすればいいですか?
288デフォルトの名無しさん:2013/01/21(月) 22:44:38.90
キーの重複を許すディクショナリを教えてくれ
289デフォルトの名無しさん:2013/01/21(月) 22:47:30.44
Lookup<TKey, TElement>
290デフォルトの名無しさん:2013/01/21(月) 22:59:08.11
>>287
正規表現なりループ回して舐めるなりして自分でごりごり解析する
簡単な方法はない
291デフォルトの名無しさん:2013/01/21(月) 23:56:05.82
Color color = ColorTranslator.FromHtml("#FF00FF");
int red = color.R;
int green = color.G;
int blue = color.B;
292デフォルトの名無しさん:2013/01/22(火) 00:06:37.94
┐('〜`;)┌
293デフォルトの名無しさん:2013/01/22(火) 00:07:02.56
JavaScriptをしっかり学ぶならオライリーですが
C#をしっかり学ぶのに良い書籍ってありますか?
294デフォルトの名無しさん:2013/01/22(火) 00:08:26.12
dobon
295デフォルトの名無しさん:2013/01/22(火) 00:35:54.69
どぼん、本になってたのか…
296デフォルトの名無しさん:2013/01/22(火) 02:46:34.82
>>293
オライリー
297デフォルトの名無しさん:2013/01/22(火) 08:39:07.09
書籍の質問は全部オライリーでいいな
実際、そう外しもしない
298デフォルトの名無しさん:2013/01/22(火) 11:40:58.99
メモリ使用率を下げたいんですがどのような事を気をつければいいですか?
299デフォルトの名無しさん:2013/01/22(火) 11:41:51.96
メモリを増設する
300デフォルトの名無しさん:2013/01/22(火) 11:54:59.93
今時メモリを節約する必要は無い
301デフォルトの名無しさん:2013/01/22(火) 11:57:30.21
ある
302デフォルトの名無しさん:2013/01/22(火) 12:00:15.42
メモリをたくさんつかってサクサク動くほうがいい
303デフォルトの名無しさん:2013/01/22(火) 12:16:23.87
でもその理屈を理解できるのはマだけ
304デフォルトの名無しさん:2013/01/22(火) 12:24:40.67
そういえば素人はメモリ使わないことを軽いって言うよなw
305デフォルトの名無しさん:2013/01/22(火) 12:31:32.26
メモリクリーナー常駐させて空きメモリを常に確保してたやつもいたな
客を一人しか店に入れないラーメン屋か!
306デフォルトの名無しさん:2013/01/22(火) 15:41:08.01
XElementに改行コード\r\nで値を入れてセーブしてロードすると
改行コード\nに変えられてるんですけど
どうすれば\r\nのままに出来るんでしょうか
307デフォルトの名無しさん:2013/01/22(火) 18:11:53.89
それは本当に\nに変えられてるんですか
エディタの誤判定ではないのですか
ちゃんとバイナリで確認しましたか
308デフォルトの名無しさん:2013/01/22(火) 18:26:55.07
W3Cの仕様で\nになるみたいですわ
まあ頑張って\nを\r\nにするコード書きました
309デフォルトの名無しさん:2013/01/22(火) 19:33:36.75
>W3Cの仕様で\nになるみたいですわ

ソースよろしく
310デフォルトの名無しさん:2013/01/22(火) 19:56:35.23
ぐくったらそれっぽいことがすぐ出たぞ
頑張るほどの対処ではないと思うが
311デフォルトの名無しさん:2013/01/22(火) 20:08:06.78
今スマホなんでコピペはきついんすわ
312デフォルトの名無しさん:2013/01/22(火) 21:02:23.04
Cは出来るjavaは多少そんな俺はどっち読めばいい?
http://www.oreilly.co.jp/books/487311294X/
http://www.oreilly.co.jp/books/9784873115177/
313デフォルトの名無しさん:2013/01/22(火) 21:05:25.39
314デフォルトの名無しさん:2013/01/22(火) 21:08:44.63
上古くね?
315デフォルトの名無しさん:2013/01/22(火) 21:08:59.86
下でいいだろ
基礎的なところで躓いたらググって調べれば十分
316デフォルトの名無しさん:2013/01/22(火) 21:13:06.54
317デフォルトの名無しさん:2013/01/22(火) 21:58:23.85
VC#2010Express
F9でブレークポイントを置きました
string str = "test"; // ここに置きました。
http://www.atmarkit.co.jp/fdotnet/dotnettips/688debugbreakcond/debugbreakcond.html
にあるようなブレークポイントの作成ダイアログがでません。
なのでそのままF5を押して実行しました。
よくわかりません。
どうやって変数の中身を確認できるのですか?
318デフォルトの名無しさん:2013/01/22(火) 22:04:26.47
Expressでは条件付きのブレークポイントは使えない
ブレークポイントの箇所でプログラムの実行が止まるから、
その状態で変数の上にマウスカーソルを置くと値が表示される
ただしstring str = "test";にブレークポイントを置いたらその行はまだ実行されてないからstrにはまだ何も入ってない
ブレークした状態で実行を進めるにはツールバーのステップインを押す
319デフォルトの名無しさん:2013/01/22(火) 22:10:18.99
ゲームを作ってるんだが、
1/60秒ごとにTextBlockをXamlにセット消去セット消去を繰り返すのって処理重い?
320デフォルトの名無しさん:2013/01/22(火) 22:12:39.52
重かったら直せ
動くものができてないうちからパフォーマンスを気にするのは馬鹿
321デフォルトの名無しさん:2013/01/22(火) 22:29:54.55
string str ="test";
string damii = ""; // 今度はここにブレークポイント

すいませんこうやってみてstrのところにマウスを乗せてみても
(ローカル変数) string str
っていうのがポップアップされるだけで値が確認できません
322デフォルトの名無しさん:2013/01/22(火) 22:30:50.86
>>321
ブレークポイント貼って実行してブレークポイントでちゃんと止まったのを確認したか?
323デフォルトの名無しさん:2013/01/22(火) 22:34:12.38
その状態では、まだ変数の内容までは見れない。
なぜなら、一度も使われていないからだ。
Console.WriteLine( str ); のように一度でも使われていれば見れる。
324デフォルトの名無しさん:2013/01/22(火) 22:34:44.48
VSのバグか仕様かはわからないけどな。
325デフォルトの名無しさん:2013/01/22(火) 23:10:24.18
まじっすか。。。。
わかりました
326デフォルトの名無しさん:2013/01/22(火) 23:11:45.23
C#にはソースコードをexeにしても、そのexeからソースコードに変換するツールがあるって一時期話題になったのを思い出したのですが
ソースコードは見られたくないのでどうにかして見られないようにする方法はありませんか?
327デフォルトの名無しさん:2013/01/22(火) 23:17:21.52
>>246
これある瞬間の日時を変数に記録して
そこから時間だけとか日付だけってやるにはどうかくんですか?
328デフォルトの名無しさん:2013/01/22(火) 23:20:50.17
そもそも見られるとまずいコードなのか?
難読化ツールは、あっても見らなくするツールは、ないと思う。
329デフォルトの名無しさん:2013/01/22(火) 23:22:58.52
つまり守りたいソースコードがある場合はC#は避けたほうがいいってことなんですか?
330デフォルトの名無しさん:2013/01/22(火) 23:23:53.53
友達がexeちょうだいって言ってるんですけど
あげたらソースコードに変換して自分が作りましたって言いそうなので
なんとか阻止したいので質問しました
331デフォルトの名無しさん:2013/01/22(火) 23:25:05.79
そんなもん技術的にどうこうする問題じゃない
そうなったら著作権侵害で訴えろ
332デフォルトの名無しさん:2013/01/22(火) 23:27:30.91
RubyとかPHPのスクリプト言語しかやったことないのですが
コントロールの部品の値を何度も使う場合
変数に代入して使ったほうがよいのですか?
333デフォルトの名無しさん:2013/01/22(火) 23:28:48.68
見られてまずいような部分、暗号化・復号化などは、
C++でも使って作ればいい。それ以外は、気にするだけ時間の無駄。
そして何の言語を使おうが、逆汗して地道にやれば解読できる。
334デフォルトの名無しさん:2013/01/22(火) 23:30:30.94
>>332
そんな発想が出てくるならRubyやPHPでもクソコード書いてるんだろうな
モデル作れ
335デフォルトの名無しさん:2013/01/22(火) 23:31:09.06
>>332
まず、RubyだのPHPだのの知識は、ほとんど通じないから、
PHPではこうだったなどという発想は、止めること。

重かったら考え直す程度で、それ以外は、気にしなくていい。
336デフォルトの名無しさん:2013/01/23(水) 01:12:33.30
難読化なんて気休め程度だからなあ
337デフォルトの名無しさん:2013/01/23(水) 02:27:59.42
ここ難読なんきょっきょー
338デフォルトの名無しさん:2013/01/23(水) 08:16:19.53
ILSpyとかで逆コンパイルしても、それをコンパイルしてexeに
するのって難しくない?
339デフォルトの名無しさん:2013/01/23(水) 09:42:09.70
難読化するとファイルサイズが減って、ちょっと得した気分にw
340デフォルトの名無しさん:2013/01/23(水) 11:21:12.97
ひとつ言えるのは難読化どうこう言い出すのが決まって初心者だという事
そんなソース誰も欲しがらないから安心して欲しいな
341デフォルトの名無しさん:2013/01/23(水) 12:51:03.04
逆コンパイラが完璧に元のソースコードを復元できると思ってそう
342デフォルトの名無しさん:2013/01/23(水) 12:52:21.05
C#で、画面数が数枚程度の小さいソリューションで、良いコードのサンプルみたいなのを見たいんですが、
どこかでダウンロードできるものはないのでしょうか?
343デフォルトの名無しさん:2013/01/23(水) 12:58:15.51
ない
344デフォルトの名無しさん:2013/01/23(水) 13:17:31.23
ある
345デフォルトの名無しさん:2013/01/23(水) 13:30:41.03
ジェネリックってマーシャリングできないの?
346デフォルトの名無しさん:2013/01/23(水) 14:35:56.93
アンマネージとの相互運用の話なら無理だね
347デフォルトの名無しさん:2013/01/23(水) 14:38:22.19
Enumはどういうときに使うのでしょうか?
348デフォルトの名無しさん:2013/01/23(水) 14:44:52.79
>>347
メソッド書いてると必ず
// modeが1ならA、2ならB、3ならCの処理を行う
void hoge(int mode) { ・・・ }
こういうのが出てくる。これが出てきたら迷わずenumを使って置き換える。
349デフォルトの名無しさん:2013/01/23(水) 15:24:10.62
ComboBoxに文字列で格納してて、
indexで指定したり文字列で比較してると、内容が置き換わったときに混乱するからenumにしておく
350デフォルトの名無しさん:2013/01/23(水) 17:45:51.79
Thread インスタンスからその実行途中のスタックトレースを取得する方法はありますか?
DB かネットワーク周りかわかりませんがか、ブラックボックス化されてるライブラリ内で稀に止まってる
スレッドがあるので、監視スレッド立てて
一定時間経過して終了していない処理のスタックトレースを
取得したいんですが。
351デフォルトの名無しさん:2013/01/23(水) 18:00:26.34
うざい
352デフォルトの名無しさん:2013/01/23(水) 18:10:22.10
参考書でも何でも見て直せるところを直した方がいいんじゃ
353デフォルトの名無しさん:2013/01/23(水) 18:57:48.70
>>350
StackTraceにThread受け取るコンストラクタがある
Suspend必須らしいが
354デフォルトの名無しさん:2013/01/23(水) 19:03:28.71
初心者はこれぐらい覚えとけっていうのを教えてください
355デフォルトの名無しさん:2013/01/23(水) 19:08:16.16
そんな質問をされても答えにくいということ
356デフォルトの名無しさん:2013/01/23(水) 19:13:49.36
基本構文すべて
参照型と値型の違い
357デフォルトの名無しさん:2013/01/23(水) 19:16:00.14
ありがとうございます
わからないので学習してきます
358デフォルトの名無しさん:2013/01/23(水) 19:42:16.05
>>354
参考書何冊か読むくらいしようぜ
359デフォルトの名無しさん:2013/01/23(水) 21:03:27.90
いやネットで無料で見れる時代なので本はいいです
360デフォルトの名無しさん:2013/01/23(水) 21:06:37.14
C#なんて感と手探りでやってもたいした時間かからんだろ
361デフォルトの名無しさん:2013/01/23(水) 21:20:51.44
ネットで無料で見れるのはいいけど、B5サイズで500〜1000ページに及ぶ説明をネットだけで見れたのかね?
362デフォルトの名無しさん:2013/01/23(水) 21:27:28.24
JavaやC++の経験者ならそんな量の説明はいらない。適当に触ってればできる。
プログラミング自体の初心者ならそんな量の説明はどうせ読めない。
363デフォルトの名無しさん:2013/01/23(水) 21:46:18.78
参考書丸ごと暗記してる奴なんているのかよ
364デフォルトの名無しさん:2013/01/23(水) 21:46:41.38
適当に触っててわからないからここに来てるんじゃ
365デフォルトの名無しさん:2013/01/23(水) 21:51:51.66
こんなところに期待する奴はゴミ
ググって解決できない奴はゴミ
366デフォルトの名無しさん:2013/01/23(水) 21:54:37.50
ググれってすぐ言うけど、コピペを張り合わせただけのコードを修正する人の身にもなって下さい
367デフォルトの名無しさん:2013/01/23(水) 21:58:08.17
そういう多人数で作った制作物の組み合わせをここで相談するのはどうかと。
368デフォルトの名無しさん:2013/01/23(水) 22:08:01.61
ただ動けばいいのならネットで十分
それ以上の物を作りたいなら書籍とかMSDNを言って穴が開くまで読まないと無理
369デフォルトの名無しさん:2013/01/23(水) 22:16:24.19
>どうかと


言いたい事を言葉にできない人ですか?
370デフォルトの名無しさん:2013/01/23(水) 22:28:45.57
>どうかと。
普通にいうだろ・・・
371デフォルトの名無しさん:2013/01/23(水) 22:29:24.51
>>367
PGは1人で、全部新規案件で、相談じゃなくて愚痴だから
372デフォルトの名無しさん:2013/01/23(水) 22:31:16.67
>>371
尚更ここで言うのは間違ってる。
ここ質問スレだし。
373デフォルトの名無しさん:2013/01/23(水) 22:31:31.51
愚痴スレ行けゴミ
374デフォルトの名無しさん:2013/01/23(水) 22:34:13.60
ゴミクズの下らない愚痴を聞かされる人の身にもなって下さい
375デフォルトの名無しさん:2013/01/23(水) 23:25:47.90
野口さん
376デフォルトの名無しさん:2013/01/23(水) 23:55:04.92
ファイルを削除するか否かのbool変数名ってどうつければいいんだろう
377デフォルトの名無しさん:2013/01/23(水) 23:59:17.54
deleteFile
378デフォルトの名無しさん:2013/01/24(木) 00:08:12.18
列挙にするとか
379デフォルトの名無しさん:2013/01/24(木) 00:12:05.57
>>377
最初そうしたんだけど、メソッドと紛らわしいかなーと
何々するか否か、をboolで表現するとどうなるのかはどこ探しても出て来ない

>>378
そうなるとどうするんだろう

本当にくそ初心者にとって変数名は悩みの種やで…
380デフォルトの名無しさん:2013/01/24(木) 00:12:31.34
意味のある名前にしたいのならtrueで削除かfalseで削除かでも変わるだろ
381デフォルトの名無しさん:2013/01/24(木) 00:15:01.20
c#で作ったプログラムからファイルとかフォルダをゴミ箱に入れて
そしてゴミ箱にいれたファイルを元に戻す処理はどうやるのでしょうか?
382デフォルトの名無しさん:2013/01/24(木) 00:15:41.46
>>379
Javaじゃあるまいに
メソッド名は先頭大文字
383デフォルトの名無しさん:2013/01/24(木) 00:19:59.30
>>379
enableDeleteFile
deleteFileEnabled
flagDeleteFile
384デフォルトの名無しさん:2013/01/24(木) 00:21:14.12
385デフォルトの名無しさん:2013/01/24(木) 00:22:01.69
>>380
trueで削除
具体的には「一時ファイルを削除する」みたいにTextが設定されたチェックボックスのチェック状態をそのまま返すアクセサーみたいなもの。
public bool 変数名
{
  get
  {
    return this.checkBox1.Checked;
  }
}
>>377みたいにすると DeleteTemporaryFile みたいになるんだろうと思うんだけど
それだと一時ファイルを削除するメソッドなのかプロパティなのかパッと見わかりにくいことにならんかなと
386デフォルトの名無しさん:2013/01/24(木) 00:22:40.83
命名規則に従って
かつ重複しにくく
かつ短く
かつ誰が見てもわかるように
387デフォルトの名無しさん:2013/01/24(木) 00:41:41.88
基本的にはそんなフラグをフィールドやプロパティーで持つ必用はないはず。
コードにそんなものが出てくるなら設計の間違いをまず疑うべき。

メソッド内であれば場合によってはそういうフラグがあってもいいかもしれないが、
それならほとんどの場合名前はdeletesで用が足りる
388デフォルトの名無しさん:2013/01/24(木) 00:53:03.45
>>385
checkBox1は仮だろうから
checkBox1の名前Checkedでいいじゃねーか
メソッドなのかプロパティなのか〜なんて迷ってるなら全部メソッドにしちまえ
389デフォルトの名無しさん:2013/01/24(木) 00:59:00.04
有効か無効かなら Is〜
できるかできないかなら Can〜
○○済みは、〜ed
○○中は、〜ing
だいたいこんな感じで統一させてる。
390デフォルトの名無しさん:2013/01/24(木) 01:10:01.15
日本語でいいよ
391デフォルトの名無しさん:2013/01/24(木) 01:31:37.12
うーん、すいません
ざっと標準のクラスのプロパティを眺めてみたら
例えばOpenFileDialogにはAddExtensionというbool型のプロパティがあったり、ShowHelpというbool型のプロパティがあったりするので、
動詞+対象となる名詞でbool型でも別段悪いものではないのかもしれません。

おとなしくDeleteTemporaryFileにしておきます…
392デフォルトの名無しさん:2013/01/24(木) 07:12:35.51
クリップボードにデータを出し入れする処理の前に
処理前のクリップボードのデータ(形式不明)を一時的に保存して
処理が終わった後に元のデータをクリップボードに
戻したいのですが、いまいちやり方が分かりません。

IDataObject clip = Clipboard.GetDataObject();
       〜処理〜
//処理が終わった。
Clipboard.SetDataObject( clip, true );

上では最後にクリップボードは空っぽになってしまいます。
よろしくご教授ください。
393デフォルトの名無しさん:2013/01/24(木) 10:07:17.54
指定時間になったら教えてくれるソフトが作りたいのでFormにTimerを置いて
if(DateTime.now.CompaleTo(siteiJikan) >= 0) {
// ここに時間なったときの処理を書く
}
ってやってTimerのTickを100にして動かしたんですが
当日、現在時刻が指定時間と同じか超えた場合に処理を行いたいんですが、
超えたら何度も実行されてしまいます
これはどう作るのがよいのでしょうか?
394デフォルトの名無しさん:2013/01/24(木) 10:22:23.11
>>392
そのオブジェクトにコピーした内容は含まれないよ
まともな人はそんな設計しないからな〜
テキストだけ対象にしたら?
395デフォルトの名無しさん:2013/01/24(木) 10:24:20.21
>>393
Timerとめたら?
396デフォルトの名無しさん:2013/01/24(木) 10:29:04.70
将来的に指定時間を複数もつように作りたいので止めたくないです
397デフォルトの名無しさん:2013/01/24(木) 10:31:41.49
じゃあ時間がきましたよフラグを立てて、以後スルーで
398デフォルトの名無しさん:2013/01/24(木) 10:35:43.88
フラグはどういうふうにたてるのでしょうか?
399デフォルトの名無しさん:2013/01/24(木) 10:40:08.51
>>394
は?
400デフォルトの名無しさん:2013/01/24(木) 13:04:52.44
「おれはまともだからあなたとは違う」キリッwwwwwwwwwwwwwwww
401デフォルトの名無しさん:2013/01/24(木) 14:37:26.83
>>398
ギャルゲーかそれ原作のアニメでフラグの立て方も折り方もわかるかも。
myself yourself、まじお勧め。
402デフォルトの名無しさん:2013/01/24(木) 19:17:24.43
string a = "1+3*10/2";
みたいに変数に文字列で式があります
これ文字列から答えを出す方法を教えてください
403デフォルトの名無しさん:2013/01/24(木) 19:20:28.83
XPathとして評価する
404デフォルトの名無しさん:2013/01/24(木) 19:25:29.16
逆ポーランドで解析する。
405デフォルトの名無しさん:2013/01/24(木) 19:37:32.70
再帰加工パーサ書いて解析する
ANTLRあたりのツール使って解析する
406デフォルトの名無しさん:2013/01/24(木) 19:41:07.90
Evalを使う…は邪道か
407デフォルトの名無しさん:2013/01/24(木) 20:06:55.08
簡単そうで意外と手間だなw
構文解析を勉強するにはいい問題だ。
408加藤英美里さん、「チャペル発見? 」:2013/01/24(木) 20:07:48.70 BE:2128077656-PLT(12000)
えみり 認証済み ?@Emiryun

いつもとは違う裏道を通って次の場所に向かっていたら、なんとチャペル発見? 幸せになるうう!
一人、しゃがみながら一生懸命写真撮ってしまったw iPadのホーム画面にした(((o(*゚▽゚*)o)))

https://twitter.com/Emiryun/status/294393336360488960
409デフォルトの名無しさん:2013/01/24(木) 20:47:01.61
すいませんどれがいいいのかわかりません
難しい順に並べていただけませんか
410デフォルトの名無しさん:2013/01/24(木) 20:51:20.22
string a = "1+3*10/2";
var b = (double)(new XPathDocument(new StringReader("<a/>")).CreateNavigator().Evaluate("count(.) * 0 + " + a.Replace("/", " div ")));
411デフォルトの名無しさん:2013/01/24(木) 21:05:29.64
xpathって普通xml向けなのに数式に使えるのか
ググっても全然情報がでない
412デフォルトの名無しさん:2013/01/25(金) 00:20:26.07
DataTableでも簡単にできる。

ttp://ideone.com/bn0hyr
413デフォルトの名無しさん:2013/01/25(金) 08:43:25.12
foreachの仲でListを使って動的に値を追加したり削除した場合
ってどうなるんでしょうか?
やめたほうがいいですか?
414デフォルトの名無しさん:2013/01/25(金) 08:50:05.19
やめたほうがいいというか、絶対にやってはいけないお約束になってる
415デフォルトの名無しさん:2013/01/25(金) 18:59:01.08
なんていうかVC#って使いやすいですね
何でVC++は使いづらいんだろう
416デフォルトの名無しさん:2013/01/25(金) 20:02:48.46
今となっちゃ中途半端だからじゃね?
417デフォルトの名無しさん:2013/01/25(金) 20:10:05.57
継ぎ接ぎしながら進化してきた言語と、
過去の互換性を一切切ってゼロからデサインした言語の違い。
418デフォルトの名無しさん:2013/01/25(金) 20:29:46.38
今じゃもうC#もフレームワークも継ぎ接ぎになって来たけどね
419デフォルトの名無しさん:2013/01/25(金) 22:05:41.57
foreachでリストの要素へのアクセスに失敗したとき、次の要素にアクセスするようなエラー処理ってできますか?
具体的に、linqで取得したienumerable<fileinfo>にforeach(var file in files)でアクセスするようなケースです。
420デフォルトの名無しさん:2013/01/25(金) 22:10:06.57
意味がよく分からんが、
foreach(var file in files) {
  try {
    // file操作
  }
  catch {
  }
}
でいいんじゃないの?
421デフォルトの名無しさん:2013/01/25(金) 22:16:26.78
>>420
で、よいと思っていたんですが、★でエラーが発生します。
foreach(var file ★in files)

かといって、
try
{
foreach(var file ★in files) {}
}
とすると、エラー移行の要素の処理はスキップしてしまいます。
422デフォルトの名無しさん:2013/01/25(金) 22:53:42.62
よくわからん
IEnumerator<T>.MoveNext辺りで例外が出てるケース?
スタックトレース書いてみてくれ
423デフォルトの名無しさん:2013/01/25(金) 22:55:57.97
>>421
一般に、例外発生後も列挙子が有効である保証はないから続けてはいけない
もし実際の列挙子の型を知っていて、その実装に関する知識があり、続けても安全であることがわかってるなら
GetEnumeratorとMoveNextとCurrent使って自分で回せばいい
424デフォルトの名無しさん:2013/01/25(金) 23:02:17.16
例外発生元は99%IEnumeratorじゃなくてDirectoryInfoとかだと思うよ
425デフォルトの名無しさん:2013/01/25(金) 23:24:26.97
List<string> test = new List<string>() { "aa" , "bb" , "cc" };
TryForEach( test , x => Console.WriteLine( x ) );

private static void TryForEach<T>( IEnumerable<T> source , Action<T> proc ) {
  Queue<T> tmpq = new Queue<T>();
  foreach( var x in source ){
    tmpq.Enqueue( x );
  }
  while( tmpq.Count > 0 ) {
    try {
     while( tmpq.Count > 0 ) {
       proc( tmpq.Dequeue() );
     }
    } catch {}
  }
  return;
}
426デフォルトの名無しさん:2013/01/25(金) 23:33:05.34
>>425
要素の取得で例外出るなら何の意味もないぞそれ
ついでに全部列挙してから処理するなら遅延評価の意味もなくなる
427デフォルトの名無しさん:2013/01/25(金) 23:34:11.69
>>422-424
System.Linq.Enumerable.WhereSelectEnumerableIterator.MoveNext()内で
「アクセス拒否UnauthorizedAccessException」のエラーが起きていました。
ので、foreachじゃなくてfileinfoの取得プロセスにあったみたいです。すいません。

質問が変わってしまうのですが、
DirectoryInfo di = new DirectoryInfo(@"C:\");
var files = from file in di.EnumerateFiles("*", SearchOption.AllDirectories) select file;
で、エラーがあったらスキップして次のファイルを取得するようなlinqってどうかけばいいんでしょうか?
検討がつきません。。
428デフォルトの名無しさん:2013/01/25(金) 23:35:49.20
初心者です
スタックトレースってなんですか?
429デフォルトの名無しさん:2013/01/25(金) 23:37:42.82
スタートレックなら知ってます
430デフォルトの名無しさん:2013/01/25(金) 23:39:26.88
スタッドレスタイヤなら知ってる
431デフォルトの名無しさん:2013/01/25(金) 23:41:56.65
>>427
SearchOption.AllDirectoriesは諦めれ
432デフォルトの名無しさん:2013/01/25(金) 23:43:15.54
>>410
>>412
こういうのってどうやって覚えてきたのですか?
勉強法教えてください
433デフォルトの名無しさん:2013/01/25(金) 23:43:51.64
本当に知ってる?
434デフォルトの名無しさん:2013/01/25(金) 23:44:39.74
>>427
例外が発生したら問答無用で列挙終了だから無理
探索の仕方を工夫するかWinAPI叩いて自分で実装するか
435デフォルトの名無しさん:2013/01/25(金) 23:58:30.17
MessageBox.Showを5秒後に自動的に消す方法ないですか?
436デフォルトの名無しさん:2013/01/25(金) 23:59:16.34
そんなもんフォームで自作したほうが早い
437デフォルトの名無しさん:2013/01/26(土) 00:00:31.84
そうします
438デフォルトの名無しさん:2013/01/26(土) 00:00:34.96
>>432
その辺の参考書読んだだけでもできそうだけど
439デフォルトの名無しさん:2013/01/26(土) 00:06:54.63
dynamic shell = Activator.CreateInstance(Type.GetTypeFromProgID("WScript.Shell"));
shell.Popup("text", 5, "title");
ttp://msdn.microsoft.com/ja-jp/library/cc364428.aspx
融通効かないからForm作った方が結局楽だけどな
440デフォルトの名無しさん:2013/01/26(土) 00:19:04.70
>>426
遅延評価など意味なくなるのは承知で
>>420みたいな、とにかく例外出ても無視して全要素に
何らかの処理を行う場合を想定してみた。まあ列挙部分が問題なら別だろうけど。
441デフォルトの名無しさん:2013/01/26(土) 00:24:00.07
>>440
なんでいったんキューに入れる?
>>420より非効率なだけで何の意味もない
442デフォルトの名無しさん:2013/01/26(土) 00:24:14.24
C#って例外書いてもいい系なの?
443デフォルトの名無しさん:2013/01/26(土) 00:25:11.10
yield return
444デフォルトの名無しさん:2013/01/26(土) 00:26:35.09
>>442
もちろん
JavaみたいにファッキンthrowsがないからJavaより例外使いやすいし
445デフォルトの名無しさん:2013/01/26(土) 00:36:25.37
そういえばIEnumerableの列挙をバックグラウンドスレッドで行える機能って標準では無いよね
foreach (var item in source.ToBackground())みたいに簡単にproducer-consumerできたら便利そうなのに
446デフォルトの名無しさん:2013/01/26(土) 00:40:11.41
>>445
source.AsParallel()
Parallel.ForEach( source , x => ... );
447デフォルトの名無しさん:2013/01/26(土) 00:40:58.97
linqも何もこれでエラー吐きました。エラートラップできないなら、EnumerateFilesってどんなときに使うんですか??
foreach (var file in Directory.EnumerateFiles(@"c:\", "*", SearchOption.AllDirectories)){}
448デフォルトの名無しさん:2013/01/26(土) 00:48:25.63
>>446
AsParallelはまさにそうだね
Parallel.ForEachは要素の取得とその消費が同じスレッドだからproducer-consumerとは違うんじゃないか
449デフォルトの名無しさん:2013/01/26(土) 01:04:08.70
>>447
失敗したらそれまででいいとき
SearchOption.AllDirectoriesなんて使ってないで再帰でやれよ
450デフォルトの名無しさん:2013/01/26(土) 01:32:33.63
プラモデルじゃねーんだぞwww
ゆとりはRPGツクールでもやってろよwwwwwwwwwwww
451デフォルトの名無しさん:2013/01/26(土) 09:01:20.72
(´・ω・')
452デフォルトの名無しさん:2013/01/26(土) 12:12:21.08
>>447
そういう環境はファイル名文字列の配列返すメソッド使うしか無いと思うよ
453デフォルトの名無しさん:2013/01/26(土) 12:15:41.92
C#で配列を扱うときはListを使うのが定番でしょうか?
454デフォルトの名無しさん:2013/01/26(土) 12:17:45.59
C#を基礎からみっちり勉強したいのですがネットで見れるおすすめのURL教えてください
455デフォルトの名無しさん:2013/01/26(土) 12:19:50.50
456デフォルトの名無しさん:2013/01/26(土) 12:23:24.97
うわあC#5.0ってあるんですか
でもまだ5.0にバージョンアップできないですね
やっぱ初心者は5.0が出てから勉強します
457デフォルトの名無しさん:2013/01/26(土) 12:25:01.84
>>454
市販の本をシコシコ読むのもいいんだぞ
458デフォルトの名無しさん:2013/01/26(土) 12:59:04.50
456「今はタイミングが悪い。5.0が出たら本気出す」
459デフォルトの名無しさん:2013/01/26(土) 13:01:37.45
6.0発表で6.0待ち?w
460デフォルトの名無しさん:2013/01/26(土) 13:10:57.63
.NET4.5のがC#5.0だっけ?それとも4.5?
461デフォルトの名無しさん:2013/01/26(土) 13:13:14.98
言語厨でもない限り、言語そのものよりも
やりたいこととそれに対する書き方を学んだ方がいいんじゃないかと、個人的には思う
462デフォルトの名無しさん:2013/01/26(土) 13:14:17.56
>>461
それが普通だよね。
目的によって言語替えてるわw
463デフォルトの名無しさん:2013/01/26(土) 13:16:19.75
何も作りたいものが無いのに、入門書を1ページ目から順番にやるような奴は、
せいぜい半分行かないところで興味を無くして放置するようになる。
464デフォルトの名無しさん:2013/01/26(土) 13:28:18.94
>>460
自己レス
.NET4.5のがC#5.0だった。
ライブラリの追加だけで言語使用の変更はasync/awaitの追加くらいだな。
VSも含めてもう、ダウンロードできる。
465デフォルトの名無しさん:2013/01/26(土) 13:29:47.80
4.5ってまだ趣味でしか使えないよね
実装が楽になってもそれを使おうとするプログラマは一部だろうし
サポート期間が最長でも4.0との互換性高いし(ライブラリ追加だけでしょ)
XPで使えないし
466デフォルトの名無しさん:2013/01/26(土) 13:32:22.62
言語のバージョンアップにビビってたら何もできんぞw
467デフォルトの名無しさん:2013/01/26(土) 13:35:04.09
C#3.0のときはあまりにも違うんでそれまでのやり方を消すのに苦労した
468デフォルトの名無しさん:2013/01/26(土) 13:37:06.35
俺まだC#3.5で知識止まってるわ
469デフォルトの名無しさん:2013/01/26(土) 13:40:05.61
基礎からみっちりやりたい理由はいままでdobonさんのコードをコピペしてソフトを作ってきたんです
こうやってきたので配列の作り方とかたとえばbyteからintの変換とかそういう基礎の部分とか良く判らないで来てしまいまし
なのでバージョンによって出来る事とか出来ない事とかそういうのまったくわかんないんです
それでもVC#があれば知識がなくても作れたのですが・・・
470デフォルトの名無しさん:2013/01/26(土) 13:51:53.67
>>465
趣味でも一般ユーザーに配布してたりすると、XP完全切り捨てになるから4.0までしか使えないよな。
自分で使うツールとかは4.5で開発することもあるけど。
471デフォルトの名無しさん:2013/01/26(土) 13:53:10.95
コピペってプログラミングって言わなくね?
その辺の商業高校行ってる学生の方が使えそうだな。
トレースいっぱいやってるし。
472デフォルトの名無しさん:2013/01/26(土) 14:03:55.76
>>470
自分で使うツールはVB6だな
.Netは初回起動が遅すぎる
作るのは楽しいけど使わせられるのはちょっとね、、、
473デフォルトの名無しさん:2013/01/26(土) 14:10:49.77
しょうもない努力をする前にSSDでも買えよ
474デフォルトの名無しさん:2013/01/26(土) 14:10:57.84
VBwww
底辺www
475デフォルトの名無しさん:2013/01/26(土) 14:14:00.89
自分で使うツールこそ、起動時間とか気にしなくて良いと思うけどなw
476デフォルトの名無しさん:2013/01/26(土) 14:18:10.30
VS2012以降はWindows Installerプロジェクトが作れなくなったのも
零細企業には結構困る要因だったりする。

VSについてくるInstall Shieldの機能限定版ってカスタム動作が作れないんだよね。
477デフォルトの名無しさん:2013/01/26(土) 14:18:50.69
>>473
会社のは勝手に変えられないよ
>>474
Cとか勉強しとくんだったwww
478デフォルトの名無しさん:2013/01/26(土) 16:44:35.72
指定した座標をクリックするのってC#標準で出来ない系ですか?
やっぱりwinprocしないとだめ形ですか?
479デフォルトの名無しさん:2013/01/26(土) 16:46:56.32
他のプログラムに手を出すなら、WIN32APIでやるのが基本。
両者に手を加えることができるならIPC使ったり。
480デフォルトの名無しさん:2013/01/26(土) 16:49:30.80
くそC#だけじゃむりか
初心者でもuwscみたいなのが作れると思ったけど
どうもです
481デフォルトの名無しさん:2013/01/26(土) 16:52:49.86
馬鹿には無理
482デフォルトの名無しさん:2013/01/26(土) 16:53:01.22
だったら、UWSC使ってればいいだろw
483デフォルトの名無しさん:2013/01/26(土) 17:00:49.10
484デフォルトの名無しさん:2013/01/26(土) 18:37:34.51
API使うのがそんなにむずいのか?
ただ定義をコピって呼ぶだけじゃないかw
485デフォルトの名無しさん:2013/01/26(土) 19:02:36.05
Cわからないならやめたほうがいいと思う
セキュリティホールを作り込むこと請け合い
486デフォルトの名無しさん:2013/01/26(土) 19:24:06.14
>>461
趣味なら動けばいいけど仕事だとそうはいかないからな
487デフォルトの名無しさん:2013/01/26(土) 21:17:26.24
WPFではなくてフォームアプリケーションで作りたいのですが(WPF不採用の理由は納期)、
でかいメインフォームがあって、そこからボタンなど押すと、子フォームが出てくるようにしたいのですが、
子フォームはメインフォームの枠外には出れないようにしたいです

どうやればいいのでしょうか
488デフォルトの名無しさん:2013/01/26(土) 21:18:32.15
時代遅れのゴミUIだな
MDIのテンプレートがあるだろ
489デフォルトの名無しさん:2013/01/26(土) 21:28:09.49
そのレベルで納期云々言ってるのが怖いけど
MDIの事を言ってるなら子フォーム.MDIParent=null
490デフォルトの名無しさん:2013/01/26(土) 21:34:22.64
ありがとうございます
C#は未経験なのに来月から少人数でツール作らされるんです
MDIについて調べてみます
491デフォルトの名無しさん:2013/01/26(土) 21:35:18.14
未経験で納期、怖すぎるw
492デフォルトの名無しさん:2013/01/26(土) 21:38:18.31
java出来ればできるんでしょ?みたいな思考が多いんだろうな
3.0以降のソースはC#の経験が無いとまともに読み書きできないけど
ただJ組むだけならその辺のIT土方で十分だわ
493デフォルトの名無しさん:2013/01/26(土) 21:42:40.62
>>490
俺を雇えよ
給料は君の倍でいいから
494デフォルトの名無しさん:2013/01/26(土) 21:54:51.61
JavaとC#が同じとか似てるとかいうバカは、多いが
全く違うものだと・・・。
495デフォルトの名無しさん:2013/01/26(土) 21:57:32.17
>>490
プログラム未経験の間違いだろ?
496デフォルトの名無しさん:2013/01/26(土) 21:57:35.14
メジャーな言語の中ではJavaが一番似てると思うよ
497デフォルトの名無しさん:2013/01/26(土) 21:58:43.39
なんでjavaじゃなくて.netを選ぶの?
馬鹿なの?
498デフォルトの名無しさん:2013/01/26(土) 22:01:28.29
>>497
javaがoracleのせいでオワコンだから
499デフォルトの名無しさん:2013/01/26(土) 22:07:42.38
C#スレでそんなこと聞いてる奴のほうが馬鹿だろw
500デフォルトの名無しさん:2013/01/26(土) 22:08:46.06
え?いまからJava勉強するのはやめたほいがいいですか?
OpenJDKっていうのもありますよね?
クロスプラットフォームで動くソフト作れるのってJavaぐらいですし困ります!
501デフォルトの名無しさん:2013/01/26(土) 22:11:57.62
現実として、Javaってサーバーでしか使われてないよ
HTMLの生成とデータベース操作を行うための専用の言語と考えたほうがいい
502デフォルトの名無しさん:2013/01/26(土) 22:13:06.37
すいませんwebは興味があってPHPしかできないのですが
Javaで仕事でwebを作る場合ってSarbret(つづりあってますかね?こんな感じの単語)とJSPどっちが仕事になりますか?
503デフォルトの名無しさん:2013/01/26(土) 22:14:37.10
いやこのスレで聞くならAPIなんでしょうけど(笑)
Windowsのサーバは高いのでAPIの勉強はしてきてません
恥を忍んでお聞きしました
504デフォルトの名無しさん:2013/01/26(土) 22:17:55.04
趣味グラマなんだけど、仕事の現場ってマジでこんなレベルの人間がゴロゴロいるもんなの?
505デフォルトの名無しさん:2013/01/26(土) 22:20:35.62
つまり>>504は「俺はプロだけどおまえらはど素人だ分かったかクズ共」って言いたいんですか
506デフォルトの名無しさん:2013/01/26(土) 22:21:04.81
専門学校でプログラミング勉強してます。
習った言語はC、Java、C#、HTML、XML、SQL(Oracle)です。
皆さんは仕事上や趣味でもこれくらいは使ってますか?
507デフォルトの名無しさん:2013/01/26(土) 22:26:01.31
仕事でやってます
C,C++,Java,Haskell,Scala,SQL,YSQL,XML,YAML,JSON,C#,JavaScript,アセンブラ,フォートラン,Go,TypeScript,CoffeeScript,Dart,Rails,Ruby,PHP,Perl
508506:2013/01/26(土) 22:31:51.66
>>507
すごい数だなー。やっぱり一つ一つの言語を極めるより、応用力が大切なんだろうな〜。
509デフォルトの名無しさん:2013/01/26(土) 22:42:29.63
応用力?
全部極めてます
510デフォルトの名無しさん:2013/01/26(土) 22:45:29.37
>>506
学校まで行ってその程度かよ
生きてて恥ずかしくない?
511デフォルトの名無しさん:2013/01/26(土) 22:45:50.17
>>508
今50代なのでこのくらい普通です
512デフォルトの名無しさん:2013/01/26(土) 22:48:26.29
最後に使ったのが10年前とかの言語までいれてんのかおっさん
513デフォルトの名無しさん:2013/01/26(土) 22:50:00.94
お前らスレ違い
カスどもまとめてどっか行け
514デフォルトの名無しさん:2013/01/26(土) 22:51:26.78
ドザ専が妬いてるの?
515デフォルトの名無しさん:2013/01/26(土) 22:58:40.48
ム板における言語の話題で SQL はまだしも HTML, XML とか入れる奴はアホだと思う。
516デフォルトの名無しさん:2013/01/26(土) 23:02:48.84
そうでね。MLで終わるのはMarkup LanguageであってProgramming Languageとは言えないですよね。
517デフォルトの名無しさん:2013/01/26(土) 23:06:57.04
>>412
あの、これ何回も計算したいばあいって
tableから追加したデータを消してからまた追加していくって感じのほうが良いですか?
518デフォルトの名無しさん:2013/01/26(土) 23:09:01.10
そうでね
519デフォルトの名無しさん:2013/01/26(土) 23:10:12.35
自分で試してみればいいじゃない
520デフォルトの名無しさん:2013/01/27(日) 00:23:00.19
引数を特定の2個とるコンストラクタしか持たない基底クラスを継承したクラスは、
そのままだと、コンパイラーが自動的に引数0のコンストラクタを作って、「そんなコンストラクタはねえよゴルァ」と怒ってくるんですが

この場合、継承クラスに、引数を特定の2個とるコンストラクタを書いてbase(引数1, 引数2)とするしかないんですかね
521デフォルトの名無しさん:2013/01/27(日) 00:29:45.32
別に引数無しコンストラクタを書いても構わんよ
base(a,b)さえ呼んどけば
522デフォルトの名無しさん:2013/01/27(日) 01:03:26.26
その場合、base(null, null)になりませんか?
523デフォルトの名無しさん:2013/01/27(日) 01:13:04.81
またでたよ
524デフォルトの名無しさん:2013/01/27(日) 01:30:52.30
VS2010使ってるけどコードは2005のころのままだけど
ダメ?
525デフォルトの名無しさん:2013/01/27(日) 01:31:20.13
別にbase(1, 0)でもなんでも
正しい引数を派生クラスコンストラクタのタイミングで用意できるなら
526デフォルトの名無しさん:2013/01/27(日) 01:31:43.75
動けばいいんじゃね?
527デフォルトの名無しさん:2013/01/27(日) 01:42:28.20
>>524
メインでメンテしてるシステムはVS2010使ってるけど、
.NET2.0ターゲットにしてるよ。
528デフォルトの名無しさん:2013/01/27(日) 05:15:45.51
同じターゲットで同じコードかいてるのに2010より2012でコンパイルしたほうのが重いんだけどなんで
教えてエロイ人
529デフォルトの名無しさん:2013/01/27(日) 08:35:21.03
寝言はildasmのdiff取ってから抜かせ
530デフォルトの名無しさん:2013/01/27(日) 15:59:17.38
C#で0.001秒感覚でconsoleに文字を表示する事は可能でしょうか?
やっぱり精度はあんまりよくないでしょうか?
531デフォルトの名無しさん:2013/01/27(日) 16:03:31.67
532デフォルトの名無しさん:2013/01/27(日) 16:06:14.12
コンソールの表示速度をいくらだと思ってるんだ
60Hzとかそんなもんだろ
533デフォルトの名無しさん:2013/01/27(日) 16:09:00.24
60Hzって秒で直すと何秒ですか?
534デフォルトの名無しさん:2013/01/27(日) 16:09:33.37
Hz = 1/秒
535デフォルトの名無しさん:2013/01/27(日) 16:11:15.56
表示速度はディスプレイの表示更新速度に依存するだろ常識的に考えて
536デフォルトの名無しさん:2013/01/27(日) 16:30:08.77
consoleに限定せずC#で精度が保障できる最低限の秒ってありますか?
537デフォルトの名無しさん:2013/01/27(日) 16:45:29.87
そもそも Windows がそんなモン保証してないし
538デフォルトの名無しさん:2013/01/27(日) 17:09:22.11
linuxだったら精度いい?
539デフォルトの名無しさん:2013/01/27(日) 17:49:39.69
マルチタスクOSという時点で完璧な精度なんか保証できない。
プロセスのプライオリティをリアルタイムにしてOSから優先的にタスクを回してもらうぐらいしかない。
540デフォルトの名無しさん:2013/01/27(日) 17:54:04.51
>>536
C#の精度は知らないけどそういう要件はリアルタイムOS使った組み込みでもしない限り最低の性能は保証できないんじゃ...
541デフォルトの名無しさん:2013/01/27(日) 19:19:36.95
>>536
そもそもどういう意味で精度と言っているのかはっきりさせないと。
具体的にどういう条件を満たす必用があるのか
542デフォルトの名無しさん:2013/01/27(日) 19:39:29.71
感覚で0.001秒だから、実際にはもっと遅くても関知できないさ
543デフォルトの名無しさん:2013/01/27(日) 19:43:28.90
そもそも日常的な用途で0.001秒精度の表示インターバルが
求められる用途って何だ?
544デフォルトの名無しさん:2013/01/27(日) 19:47:22.27
表示はないだろうな、そもそも人間様が追いつかない。

計測とか制御とかなら、1ms 程度は普通にあるだろう。
545デフォルトの名無しさん:2013/01/27(日) 19:48:16.53
それは外部機器側でバッファするなりして対応するべきことでは
546デフォルトの名無しさん:2013/01/27(日) 19:52:39.19
そりゃ構築の方法はいくらでもあると思うよ。
547デフォルトの名無しさん:2013/01/27(日) 19:54:19.60
くそC#じゃ無理か
548デフォルトの名無しさん:2013/01/27(日) 19:55:25.80
×C#
○PC向けOS
549デフォルトの名無しさん:2013/01/27(日) 20:12:21.88
精度が必要なのはFPSどのくらいでるのかを調べるためです
550デフォルトの名無しさん:2013/01/27(日) 20:13:00.81
FPSを調べてリアルタイムにconsoleに表示したかったんです
551デフォルトの名無しさん:2013/01/27(日) 20:13:33.39
そんなもん1秒くらいの間のフレーム数を数えればいいだけだろ
552デフォルトの名無しさん:2013/01/27(日) 20:15:27.36
>>550
どうせ人間が読み取るんだろ?
そんなもん100ms周期で十分だしきっかり決まったタイミングで更新される必要性が無い
553デフォルトの名無しさん:2013/01/27(日) 20:16:43.72
もうこのさいconsoleに表示できなくてもいいです
100msって0.1ですよね
それは困ります
ゲームのFPSなんですけど制度が1/1000なんですよ
554デフォルトの名無しさん:2013/01/27(日) 20:17:16.44
でもC#じゃできないってわかったのでやっぱり諦めます
555デフォルトの名無しさん:2013/01/27(日) 20:18:17.37
厳密に1ms精度でフレームレートの処理するのってWindowsというか普通のPCじゃ無理だよ
垂直同期に依存するから意味ないし
556デフォルトの名無しさん:2013/01/27(日) 20:27:47.64
ある程度のスパンで見て統計的に辻褄合ってればそれで充分なんだよ
1秒に1000回の処理が必要なら、0.1秒に100回処理できてれば実用上問題ない。
557デフォルトの名無しさん:2013/01/27(日) 20:52:11.40
そもそもFPSなんて調べられるの?
ツッコミが無いってことは俺が無知なだけなのか?
そもそも1ms単位で処理できたとしてその負荷が対象に影響を与えてしまうのでは?
558デフォルトの名無しさん:2013/01/27(日) 21:09:31.39
FPSの計算なんて一瞬だから計算はできるだろうよ
でも表示のタイミングなんてまさにそのFPSに依存するだろ
559デフォルトの名無しさん:2013/01/27(日) 21:19:23.59
FPSの計り方なんて聞いてるような奴がFPSを計る必要性のあるアプリ作れるの?
560デフォルトの名無しさん:2013/01/27(日) 21:27:55.73
答えの提示できない馬鹿が心配することじゃないですよ
561デフォルトの名無しさん:2013/01/27(日) 21:36:22.66
どこに答えの出てない質問があるんだか
562デフォルトの名無しさん:2013/01/27(日) 21:36:55.46
0.001秒単位でFPSが計れるなら
常にFPSは1000だろw
563デフォルトの名無しさん:2013/01/27(日) 21:39:30.55
コンソールだからゲーム画面とは別なんだろう
でもコンソールの描画速度が1000Hz出ないから一緒だが

そんな0.001秒単位なんて保証する必要あるのか?
564デフォルトの名無しさん:2013/01/27(日) 21:40:19.76
1/1000なんて脳内だけだろ
1/30にも届いてないだろうよ
565デフォルトの名無しさん:2013/01/27(日) 21:47:56.09
測り方全然わかんないんだけどどうやるの?
566デフォルトの名無しさん:2013/01/27(日) 21:49:22.61
>>562
バカ現る (w

>>563
まあ、表示とは別にディスクに記録するとかはあるかも。
まあ、計測だけなら Windows でも 1ms ぐらいは楽勝。
567デフォルトの名無しさん:2013/01/27(日) 21:52:27.05
>>565
測るだけならこんなんで十分
if (1秒 <= 最終更新時刻) {
出力(フレーム数);
フレーム数 = 0;
最終更新時刻 = 現在時刻;
} else { フレーム数++; }
568デフォルトの名無しさん:2013/01/27(日) 21:53:45.70
>>565
フレームを描画し終わった時にタイマーの値を記録して、前回の値と比較すればいいだけ。

まずはこの辺から
http://www.sm.rim.or.jp/~shishido/tick.html
569567:2013/01/27(日) 21:55:28.94
ちょっと訂正
if (1秒 <= 現在時刻 - 最終更新時刻) {
出力(フレーム数);
フレーム数 = 1; 以下同じ
かな
570デフォルトの名無しさん:2013/01/27(日) 21:55:30.83
571デフォルトの名無しさん:2013/01/27(日) 22:00:45.94
↑馬鹿
572デフォルトの名無しさん:2013/01/27(日) 22:05:25.43
1/1000でログ取れたとしても実際の処理が延滞するだけだろ
夢見るのは1/100程度にしとけ
573デフォルトの名無しさん:2013/01/27(日) 22:07:35.69
くそC#じゃできないってわかったのでこれ以上馬鹿はしゃべらなくていいです
574565:2013/01/27(日) 22:11:32.44
別プロセスのFPSかと思ってたわ
575デフォルトの名無しさん:2013/01/27(日) 22:15:52.19
はいはい、わかったからアセンブラ言語で実装して
満足行くまで高精度なFPSを作ってくださいねw
576デフォルトの名無しさん:2013/01/27(日) 22:48:23.55
>>572
ログ出力を数回分をまとめて行えばいいだけ
577デフォルトの名無しさん:2013/01/27(日) 22:51:34.53
>>576
もしかしてC#でファイルに書き出す時ってリアルタイムに書き出してると思ってるのか?
OSが良きに計らってるに決まってるだろ
知能が足りてない奴は数回分まとめるとか無駄な事考えずにOSに丸投げしろや
578デフォルトの名無しさん:2013/01/27(日) 23:04:52.75
ここまでさんざんレスが付いてるが、>>542 でカタが付いてるような気がしてならない。
579デフォルトの名無しさん:2013/01/27(日) 23:10:27.42
>>532だろ
580デフォルトの名無しさん:2013/01/27(日) 23:19:06.07
>>577
ログ出力は普通フラッシュするものだ
581デフォルトの名無しさん:2013/01/27(日) 23:29:22.42
次は描画が追いつかないとか言い出すんだろ
582デフォルトの名無しさん:2013/01/28(月) 06:10:40.96
C#以前にPCの仕組みそのものの理解が乏しすぎるだろ
583デフォルトの名無しさん:2013/01/28(月) 07:25:36.66
リソースに実行ファイルを埋め込んでそれを実行したいのですが
以下のように書くとBadImageFormatException例外が出てしまいます。

Assembly asm = Assembly.GetExecutingAssembly();
Stream st = asm.GetManifestResourceStream("mytest.test.exe");
byte[] b = new byte[st.Length];
st.Read(b, 0, b.Length);
Assembly.Load(b);

どうすればよいでしょうか?
584デフォルトの名無しさん:2013/01/28(月) 14:13:39.55
起動時にそのPCに4.0が入ってないとエラーが出ます
これ起動時に入ってるから調べて入ってなかったらメッセージを出して終了するようにしたいのですが
なんとか方法ありませんか?
585デフォルトの名無しさん:2013/01/28(月) 14:15:55.81
Cなどでチェックするプログラムつくりゃええよ
入ってたらC#のプログラムに移ればええ
586デフォルトの名無しさん:2013/01/28(月) 15:25:10.85
そのデフォルトのエラーメッセージがダメなんだよなw
開発者にしかわからないようなメッセージじゃなくて、エンドユーザーにわかるようなメッセージにしとけよと…
587デフォルトの名無しさん:2013/01/28(月) 16:13:26.04
もーちょっと特定出来るエラーメッセージにして欲しいよな
588デフォルトの名無しさん:2013/01/28(月) 17:02:00.79
パズルゲームを作ってみたいのですが
たとえば3×3の9マスで絵を完成させるパズルを作る場合
どうやってマスを用意したらいいですか?
589デフォルトの名無しさん:2013/01/28(月) 17:27:33.73
2次元配列
590デフォルトの名無しさん:2013/01/28(月) 17:28:53.57
??????
591デフォルトの名無しさん:2013/01/28(月) 17:29:51.48
592デフォルトの名無しさん:2013/01/28(月) 17:31:56.61
何がわからないのかがわからないw
593デフォルトの名無しさん:2013/01/28(月) 17:34:03.16
pictureboxに描いてもいいし
panelとかコントロール配置してもいいし
お好きな様に
594デフォルトの名無しさん:2013/01/28(月) 17:37:00.13
?????
595デフォルトの名無しさん:2013/01/28(月) 17:38:00.77
596デフォルトの名無しさん:2013/01/28(月) 17:38:40.95
??????
597デフォルトの名無しさん:2013/01/28(月) 17:40:42.08
?
598デフォルトの名無しさん:2013/01/28(月) 18:27:41.87
エクセルみたいなスクロールすると永遠に続くセル
あれは何のコントロールをフォームに置いたらできるのでしょうか?
599デフォルトの名無しさん:2013/01/28(月) 18:44:24.48
>>450
600デフォルトの名無しさん:2013/01/28(月) 18:53:03.35
コントロールが無いとなにもできないのかよw
601デフォルトの名無しさん:2013/01/28(月) 18:55:22.80
言語以前にコンピューターの最低限の基本的知識が欠落してるな
602デフォルトの名無しさん:2013/01/28(月) 19:00:08.69
お願いしますヒントだけでも
603デフォルトの名無しさん:2013/01/28(月) 19:04:25.77
ヒントも糞もねーよ、それを作るのがプログラマーだr
604デフォルトの名無しさん:2013/01/28(月) 19:07:17.35
RPGツクールでもやってろって
605デフォルトの名無しさん:2013/01/28(月) 19:17:18.15
まず、C#の基礎から勉強しよう
606デフォルトの名無しさん:2013/01/28(月) 20:00:47.97
でもDBアクセスとかRPGツクールのような使い方宣伝してんじゃん
MSも悪いと思うぜ
607デフォルトの名無しさん:2013/01/28(月) 20:18:55.71
自分の非を見ず、人のせいか
608デフォルトの名無しさん:2013/01/28(月) 20:22:03.81
自作するしかねーよ!
609デフォルトの名無しさん:2013/01/28(月) 20:43:38.11
便利になるほどゆとりが増えるな
610デフォルトの名無しさん:2013/01/28(月) 20:47:27.02
ゆとりに合わせてるから便利になってくんじゃね?w
611デフォルトの名無しさん:2013/01/28(月) 20:55:43.48
Excelコンポーネント使えば?
612デフォルトの名無しさん:2013/01/28(月) 21:09:49.16
このレベルの奴にそんなコンポーネントが使えるわけないだろw
機能多すぎとかいって発狂するだけだ
613デフォルトの名無しさん:2013/01/28(月) 21:51:11.33
>>605
C#以前の問題だろ
614デフォルトの名無しさん:2013/01/28(月) 22:05:53.05
デザイナがメインでおまけでコードを追加するような感覚なんだろうな
615デフォルトの名無しさん:2013/01/28(月) 22:25:01.67
デザイナとか補助的なものぐらいにしか考えてないな。
さすがにコードだけで位置や大きさ把握するのは、困難だからデザイナーで調整したりするぐらい。
それ以外は、ほとんどコードエディタで十分だな。

>>614
デザイナがメインの奴のコードってbutton1とかtextbox1みたいな名前のままになってて
生成されたコードとかもbutton1_Clickとかtextbox1_TextChangedみたいなメソッドで難読なんだろうなw
616デフォルトの名無しさん:2013/01/28(月) 23:28:22.31
ゆとりは本当に画面の中でスクロールしたりマウスポインタが動いてると思ってるんだろうな
617デフォルトの名無しさん:2013/01/28(月) 23:31:08.72
まあすべてグラフィックと考えを切り換えればあとは
簡単だ
618デフォルトの名無しさん:2013/01/28(月) 23:45:19.80
スレタイ詐欺
619デフォルトの名無しさん:2013/01/28(月) 23:47:56.36
これは立派な犯罪だ
お前ら通報したからな
620デフォルトの名無しさん:2013/01/29(火) 11:04:59.45
犯罪って、何罪になるのかkwsk
621デフォルトの名無しさん:2013/01/29(火) 11:18:11.53
レスの中身はおいといて
2つ前のレスも読めないほどふぁびょってんのか
読解力のないただの馬鹿か
622デフォルトの名無しさん:2013/01/29(火) 11:20:05.91
まあ、つまんねーもんにいちいちさわんなよ
623デフォルトの名無しさん:2013/01/29(火) 11:28:28.48
なに生産性のない無駄なレスの連続
624デフォルトの名無しさん:2013/01/29(火) 11:33:05.14
マイクから拾った音から周波数を知りたいのですがライブラリありませんか?
625デフォルトの名無しさん:2013/01/29(火) 12:00:00.71
ライブラリ?dll?名前空間?何て呼べばいいの?
626リリン:2013/01/29(火) 12:05:54.71 BE:52373232-PLT(45072)
public class hoge1
{
public int[] Array;

hoge1(){
int[] Arrya = new int[5];
}
}
plass hoge2
{
hoge1 foo = new hoge1()
foo.Arry[0] = 10; //エラーになる

}

これだと、ぬる・りふぁれんすって言われるんだけど、コンストラクター内のnewがクラス・オブジェクトを参照しないの?
コンストラクターで配列を初期化ってやりかたありゅ?
627リリン:2013/01/29(火) 12:06:37.40 BE:87288825-PLT(45072)
plassじゃねぇw
class hoge2{ }
628デフォルトの名無しさん:2013/01/29(火) 12:07:43.88
>>626
> &nbsp; &nbsp; hoge1(){
> &nbsp; &nbsp; int[] Arrya = new int[5];
> &nbsp; &nbsp; }
名前は置いとくとしても
これじゃローカル変数初期化しただけだろ
629リリン:2013/01/29(火) 12:11:10.92 BE:209492238-PLT(45072)
だよねー。どうすりゃいいのさ。
630デフォルトの名無しさん:2013/01/29(火) 12:14:47.05
public class hoge1
{
&nbsp; &nbsp; public int[] Array;

&nbsp; &nbsp; public void hoge(){
&nbsp; &nbsp; &nbsp; &nbsp; // ここでArray使うときはどう書くのさ
&nbsp; &nbsp; }
&nbsp; &nbsp; hoge1() {
&nbsp; &nbsp; &nbsp; &nbsp; // ここでArray使うのも同じこと
&nbsp; &nbsp; }
}
631リリン:2013/01/29(火) 12:32:00.21 BE:418982786-PLT(45072)
>>630
わかったわ・・・ありがとう。
結局コンストラクター内でnewしてもダメなのね。
使い先のメソッドとかでやるのか。
632リリン:2013/01/29(火) 12:37:19.13 BE:104745762-PLT(45072)
いや、わかんねぇ。これなら通った。
using System;

class hoge
{
public int[] a;

public hoge(){
this.a = new int[5];
}
public class hoge1
{
public static void Main()
{
hoge c = new hoge();
c.a[4] = 1;
Console.WriteLine(c.a[4]);

}
}
}
633デフォルトの名無しさん:2013/01/29(火) 12:48:09.67
>>626
まず Arrya を Array にすれば良いと思うよ
そしたら多分警告でるだろうから、その警告みて考えたら
634デフォルトの名無しさん:2013/01/29(火) 12:51:03.69
よくみたらArryも間違ってるな
釣りに思えてきたぜ
635リリン:2013/01/29(火) 12:51:56.67 BE:139661928-PLT(45072)
いや、統一しても ぬる・りふぁれんすって言われる。
636デフォルトの名無しさん:2013/01/29(火) 15:42:12.28
int[] Array = new int[5];

ここの「int[]」のせいでローカル変数扱いされてるんでしょ。

Array = new int[5];

にすればおk。
637デフォルトの名無しさん:2013/01/29(火) 15:59:06.66
フィールドとローカル変数の違いを調べなおしてこい
638リリン:2013/01/29(火) 16:19:06.17 BE:69830742-PLT(45072)
ありがとおーーー。
639デフォルトの名無しさん:2013/01/29(火) 18:07:56.57
教えてください。

Bitmapクラスにポインタを渡すコンストラクタですが、
生成したBitmapからDisposeを呼び出すと渡したポインタ
のメモリも解放してくれるのでしょうか?

具体的にAllocCoTaskMemでメモリ確保した後に、画像
情報をコピーしています。

このメソッドを呼ぶたびにメモリが増え続け。GC.Collectしても
解放されません。

どのようにすれば解放されるのでしょうか?
640デフォルトの名無しさん:2013/01/29(火) 18:13:15.01
>>639
なんでAllocCoTaskMemが必要なのかわからないけど、
それを使うならMarshal.FreeCoTaskMemがいるんじゃない。
641デフォルトの名無しさん:2013/01/29(火) 18:14:15.40
GC.Collect。すなわちガベコレが管理しているのは、マネージのみ。
ポインタなどアンマネージなメモリーは、対象にならない。
どこかのポインタかわからないが勝手に持ってきたポインタなら責任をもって解放するしかない。

方法としては、Bitmapクラスを派生させて、Disposeをオーバーライドして
そこでポインタを解放するコードを書く。

それとGC.Collectしたからと、すぐに解放されるとは限らない。
642639:2013/01/29(火) 18:35:00.31
>>640,>>641

なるほどです。AllocCoTaskMemはDirectshowを使っているためCom用の
メモリ確保が必要なため、使用していました。

現状、いったんAllocCoTaskMemで確保したメモリをマネージドのメモリへコピーして
Bitmapを生成する方法がベターかもしれません。
※Bitmapクラスは派生できませんでした。派生ではなくラップすれば良いかもしれませんが、、、
643デフォルトの名無しさん:2013/01/29(火) 21:02:24.03
質問させてください。

byte配列に対してbyte並びの検索をかけたいのです。
今はバイト単位での比較ループを回していますがもう少しすっきりした書き方はないものかなと……。
(内容が文字であればstringに変換してIndexOf()でいけるのですが、対象が00〜FFの何でもありなので)

STLであれば
vector<char> v1, v2;
・・・
vector<char>::iterator it = search(v1.begin(), v1.end(), v2.begin(), v2.end());
の機能です。

具体的には

byte[] v1 = File.ReadAllBytes("A.bin");
byte[] v2 = { 0xFD, 0xFE, 0xFF };

で、v1中でv2のバイト並びの位置を(存在すれば)返すようなものです。
644デフォルトの名無しさん:2013/01/29(火) 21:39:08.04
>>643
http://www.cplusplus.com/reference/algorithm/search/

こういうのを移植すれば?

それともboyer-moore法クラスの効率が欲しいとか?
645デフォルトの名無しさん:2013/01/29(火) 21:40:47.16
残念ながらないね
配列の部分比較すらないからな・・・

いっその事BM法やKMP法を作ってみたら
646デフォルトの名無しさん:2013/01/29(火) 21:45:27.26
(´・ω・`)
647デフォルトの名無しさん:2013/01/29(火) 22:12:32.94
>>643
http://www.atmarkit.co.jp/fdotnet/dotnettips/045getbytes/getbytes.html
比較する方も比較される方も全部16進数文字化すればいいんでないの?
"00,FF,A5・・・"みたいに
それならIndexOf効くじゃん
無駄?バカっぽい? いいじゃん、動けば
648デフォルトの名無しさん:2013/01/29(火) 22:13:23.15
それは俺も考えたけどもw
649デフォルトの名無しさん:2013/01/29(火) 22:35:46.82
たかだか数十バイト程度ならそれでも良いかもしれないが・・・
データがMBとかだったらどうすんだよwいちいち16進数文字列に変換とかやってられないわw
650デフォルトの名無しさん:2013/01/29(火) 22:39:34.06
そういう時こそ C++/CLI の出番です
std::search で出来るものは std::search にやらせればよいのです
651デフォルトの名無しさん:2013/01/29(火) 22:54:54.87
std::searchってただのゴリ押し線形検索でしょ
そんなもんC++/CLIのプロジェクト用意したりしてる間に自分で書けるわ
652デフォルトの名無しさん:2013/01/29(火) 23:16:44.11
まあなw
653デフォルトの名無しさん:2013/01/29(火) 23:21:46.26
既にC++/CLIを使ったライブラリを持ってる場合は割と有用な手
654デフォルトの名無しさん:2013/01/30(水) 02:11:58.37
\0付けてpinしてDllImportでCRTのstrstr呼んだら
655デフォルトの名無しさん:2013/01/30(水) 02:39:29.81
>>654
ゼロが混ざってるからだめ。
656デフォルトの名無しさん:2013/01/30(水) 06:25:49.47
助けてください。C#の質問です。
Generics制約でTryParseメソッドを実装している型のみを引数に取るようにしたいんですが、
基底のインターフェースがある物と思っていたらどうも各々のクラスで定義している事に今更気付き、困っちゃいました。
逃げ道として実行時にメソッドの有無を調べる方法を考えましたが、
実行効率は悪くなるでしょうしコンパイル時に弾けないのでコーディングルールにも変更が必要になりますし、避けたいです。
何かいい方法はないでしょうか?
657デフォルトの名無しさん:2013/01/30(水) 06:54:26.23
自作型と暗黙変換を使うとか
658デフォルトの名無しさん:2013/01/30(水) 07:16:37.27
>>656-657
ジェネリック制約に求められるのは implicit reference conversion だけど、
implicit operator で定義できるのは user-defined implicit conversion なんだよね。
659658:2013/01/30(水) 07:26:00.93
implicit reference conversion ではインスタンスの同一性を保ったまま型変換をしなきゃいけない。
user-defined implicit conversion では変換時にAのインスタンスが生成されるから同一性が保たれない。

implicit reference conversion の例 -------------------------------------
class A {};
class B : A {};

var b = new B();
var a = b; // a と b は同じインスタンスを参照している。

user-defined implicit conversion の例 -------------------------------------
class A { public static implicit operator A(B b) { return new A(); } }
class B {};

var b = new B();
var a = b; // a と b は別のインスタンスを参照している(変換時にnew A()してるから)。
660デフォルトの名無しさん:2013/01/30(水) 07:56:41.57
public interface IFoo
{
...
}

private class FooImpl : IFoo
{
 public FooImpl( Bar bar ){}
}

とあるとき、

Bar b = new Bar();
IFoo f1 = new FooImpl( b );
IFoo f2 = new FooImpl( b );



f1 == f2 がtrueを返すようにはできませんか?

FooImpで==と!=をオーバーロードしてbarを判定するようにしたら
(FooImp)f1 == (FooImp)f2 はtrueになりますが
f1 == f2 はfalseのままです。

FooImpでEqualsをオーバーライドしたら
f1.Equals( f2 )はtrueを返すようにはなりましたが
661デフォルトの名無しさん:2013/01/30(水) 08:48:51.21
無理。解決策があるとすれば、インターフェースをやめて抽象クラスにするくらいか。
662デフォルトの名無しさん:2013/01/30(水) 10:05:31.32
そうですか。

FooImplのコンストラクタをプライベートにして
キャシュされたインスタンスを返すメソッドを作ることを検討します
663デフォルトの名無しさん:2013/01/30(水) 13:11:57.39
デザイナーに置いた部品のプロパティを帰るときForm1.csのなかに書かないと変えられません
プロパティを変えるのがメインのソフトを作る場合だとForm1.csのコード量が多くなってしまうのですが
先輩方はどうやって書きますか?
664デフォルトの名無しさん:2013/01/30(水) 13:13:54.95
C#で文字列を暗号化して復号化する最強の方法を教えてください
665デフォルトの名無しさん:2013/01/30(水) 15:41:35.70
コントロールや画面上に直接描画する方法は無いでしょうか?

したいこととして、コントロールを引数にとってそのコントロール上に
ビットマップを表示させたいです。1枚だけでなく動画として次々切り替えたいです。
666665:2013/01/30(水) 15:43:26.08
すいません。途中で送信してしまいました。。

ヒントをいただけましたら後はこちらで調べてみます。
よろしくお願いいたします。

>>664 .net3.5以上ならAESで暗号化、.net2.0ならDESじゃないでしょうか?
標準のライブラリに入っているので
667デフォルトの名無しさん:2013/01/30(水) 15:43:46.93
668デフォルトの名無しさん:2013/01/30(水) 15:51:26.71
>>664
RSAで秘密鍵暗記して破棄が最強
669デフォルトの名無しさん:2013/01/30(水) 16:05:52.99
>>666
ど素人は余計なこと答えなくていいから
670デフォルトの名無しさん:2013/01/30(水) 16:10:19.69
>>666
こんな簡単なものもググれない馬鹿が自分で調べるとか強がるな
671デフォルトの名無しさん:2013/01/30(水) 16:16:54.75
二つの画像を用意して間違い探しが作りたいんですが
クリックしたとこの色を比較する方法を教えてください
672デフォルトの名無しさん:2013/01/30(水) 16:20:06.76
ググレカス
673デフォルトの名無しさん:2013/01/30(水) 16:24:51.33
まるっきり全部かよ
少しは自分で調べて急所だけ質問しろゴミクズ
674デフォルトの名無しさん:2013/01/30(水) 16:39:26.57
どこをどうみても急所じゃんw
675665:2013/01/30(水) 18:17:26.54
>>667
ありがとうございます。
申し訳ないのですが、受け取ったコントロール内でOnPaintを実装するのではなく
任意のコントロールを受け取ってそのコントロール上に画像描画することがしたいです。


BitBltなどがそれに近い気がするのですが・・・・
676デフォルトの名無しさん:2013/01/30(水) 18:39:08.59
void KusoHage( Control c )
{
 using( var g = c.CreateGraphics() )
 {
  // SukiniByougaDemoNanndemoShitaraEeYanHageGa();
  g.DrawImage( kusoHageImage, pntNull ); 
 }
}
677デフォルトの名無しさん:2013/01/30(水) 18:41:06.07
>>675
まあそのリンク先をちゃんと読んでないからそういう質問するんだわ
あとOnPaint以外でGraphicsを取得して描画する方法だと
そのコントロール自身の再描画で消えるからねクソハゲが
678デフォルトの名無しさん:2013/01/30(水) 19:32:47.26
ベンチマークをとる方法を教えてください
679デフォルトの名無しさん:2013/01/30(水) 19:45:45.69
内容を理解してないベンチマークって何の意味があるの?
680デフォルトの名無しさん:2013/01/30(水) 21:20:38.91
a@b@c@d@e

こういう文字列があって
最初の@の部分で文字列を分割して
string[] sに
s[0]はa
s[1]はb@c@d@e
という風にいれたい

Splitだと@の数だけ分割するので何か良い方法はありませんか?
アルファベットの部分の文字列の長さは不定です
681デフォルトの名無しさん:2013/01/30(水) 21:23:52.38
>>680
IndexOf
682デフォルトの名無しさん:2013/01/30(水) 21:26:06.05
形式が決まってるなら正規表現でキャプチャしたほうがいいかも
683デフォルトの名無しさん:2013/01/30(水) 21:53:56.82
>>680
Splitのオーバーロード
684デフォルトの名無しさん:2013/01/30(水) 21:57:50.82
オーバーロードはねーだろw
自分でどうにかしろ、としか言ってない
685デフォルトの名無しさん:2013/01/30(水) 21:57:56.17
>>681>>682>>683できました
686デフォルトの名無しさん:2013/01/30(水) 21:58:50.59
textboxにプレースホルダを表示する方法ありませんか?
WPFのは検索で引っかかるんですがWPFは使ってないので困ってます
687デフォルトの名無しさん:2013/01/30(水) 22:03:30.58
構文というか入門書レベルの理解は終わったと思ってるけど、他言語の経験ないから
現実の処理やデータ構造を、c#のクラスやライブラリをどう使うとうまく
実装できるのかがわからないっす。次に読むべき本、ありますか?
688デフォルトの名無しさん:2013/01/30(水) 22:08:48.85
アルゴリズムとデータ構造
689デフォルトの名無しさん:2013/01/30(水) 22:17:10.34
ロジックを作る
っていう表現間違ってるよね?
690デフォルトの名無しさん:2013/01/30(水) 22:17:14.15
>>684
え?
691デフォルトの名無しさん:2013/01/30(水) 23:09:14.20
C#で開発するとき、ソース管理にコミットするファイルはどこまでですか?

.slnは必要ないですよね?
.csprojはXMLですが、これも共有するべきですか?
しないと、特定のクラスを追加したとかそうでないとかが分からないと思うんですが
692デフォルトの名無しさん:2013/01/30(水) 23:12:02.90
bin, obj, .suo, .csproj.user以外
.slnもいるに決まってんだろ
693デフォルトの名無しさん:2013/01/30(水) 23:21:04.58
うちはAnkhSVNが勝手にやってくれてる
694デフォルトの名無しさん:2013/01/30(水) 23:24:03.75
>>692
.slnや.suoもなんですか・・・
ありがとうございました。


>>693
VSSもしくはSubversionなんです・・・
695デフォルトの名無しさん:2013/01/30(水) 23:26:45.36
AnkhSVNが何なのかわかってないのか
696デフォルトの名無しさん:2013/01/30(水) 23:35:21.37
すいません、トータスSVNの間違いでした
各ユーザーでクライアントが違ってもSVNは正常に使えるんですかね・・・
697デフォルトの名無しさん:2013/01/31(木) 00:01:44.46
>>674
色の取得から比較までどれだけの工程があると思ってんだゴミクズ
698デフォルトの名無しさん:2013/01/31(木) 00:05:46.40
.suoはソリューション構成の選択とかが入ってるので
あった方が便利ではあるけど
頻繁に更新されるのでなんとも
699デフォルトの名無しさん:2013/01/31(木) 00:08:04.79
>>686
こういうの?
http://ideone.com/Nke6y0

あれプレースホルダって言うのか。なんか妙な造語だな。
700656:2013/01/31(木) 07:30:09.98
>>657-659
お返事ありがとうございます
暗黙変換の方を少し調べてみましたが根本の解決には至りませんでした。
また、(システムの)構造上、一度走り出したら実行時にこける事は例外で捕まえたとしても容認できない部分でして
共通以外の部分にリスクを散在させる事はもっての他と指導を受けました。
自分が要件をきちんと把握せず質問した事もミスリードになっていたと思います。すみません。
結局、呼び出し側自体がファクトリで作成されるので
その時に適切なパーサーを持たせる様に共通の方で対応してくれる運びとなりました
この件は自分の責任ではなくなりましたが、今回の事は勉強になりました
ありがとうございした
701リリン:2013/01/31(木) 10:27:41.05 BE:471355496-PLT(45072)
手紙みたいだな。
702デフォルトの名無しさん:2013/02/01(金) 12:59:25.26
ローカル変数ってメソッドが呼ばれた時点で割り当てられるんですか?
それとも変数を宣言してる位置までいったら割り当てられるんですか?
703デフォルトの名無しさん:2013/02/01(金) 13:17:20.00
FormにtabControl,tabControlにボタン4つ
これらのbackgroundImageにBitmap、このとき
ボタンの再描画がパラパラ状態。
直したい。。。
704デフォルトの名無しさん:2013/02/01(金) 13:20:16.88
BitmapのちらつきはdoubleBufferdで解消。
suspendLayout,WM_SETREDRAWなど試すも効果なし
使い方か?
705デフォルトの名無しさん:2013/02/01(金) 13:42:02.28
コンボボックスがあって、1〜5までの数値を選択することになっていますが、初期値はSetting.settingsに書いてます。

SettingsにValue=1として、

ComboBox.SelectedText = Properties.Settings.Default.Value.ToString()

にしたら反映されません
どうしてなんでしょうか
706デフォルトの名無しさん:2013/02/01(金) 13:54:09.01
SelectedTextはテキストボックス部分に手入力する際のコピーとかの対象となる選択中の文字列
Text使うとかする
707デフォルトの名無しさん:2013/02/01(金) 14:18:26.97
できました
ありがとうございました
708デフォルトの名無しさん:2013/02/01(金) 14:56:08.38
>>702
スタックを効率よく使おうと考えたら、
戻り値領域をスタックにつんで、ローカル変数を積んで、引数を積んで、
メッソッド内のコードに飛ぶって感じなのだろうか?
709デフォルトの名無しさん:2013/02/01(金) 15:19:07.71
ローカル変数の実装はコンパイラ次第。
少量ならスタックを使わずにレジスタ上で済ませることもある。
710デフォルトの名無しさん:2013/02/01(金) 15:36:02.22
ちょっとした結果の表示に
コンソールアプリケーションだとConsole.WriteLine使えばいいですけど、
フォームアプリケーションの場合は
一々テキストボックスなりメッセージボックスなりに表示しないといけませんか?
デバッグの時だけ中身をみたい場合などみなさんどうしていますか?
711710:2013/02/01(金) 15:40:57.00
すいません。自己解決しました
ありがとうございました
712デフォルトの名無しさん:2013/02/01(金) 15:58:53.26
あーなるほど・・・IDでない板はそうやっていたずらし放題なのね・・・
713デフォルトの名無しさん:2013/02/01(金) 16:20:52.00
でなに結局解決してないの?
簡単にはDebug.Printとか使うと良いよ
714デフォルトの名無しさん:2013/02/01(金) 16:22:52.61
ブレークポイント
715デフォルトの名無しさん:2013/02/01(金) 16:24:05.19
全く困ったもんだな
716609:2013/02/01(金) 16:24:28.19
>>702
基本的にはメソッドを呼んだ時点。ILにコンパイルされた段階ですでに
ローカル変数は全て先頭にまとめられてる。
ただし最適化で消えたりすることはもちろんある。細かいこと言うと
クロージャの中で使われてる変数はその宣言位置でヒープに確保される。
717デフォルトの名無しさん:2013/02/01(金) 16:25:01.21
俺、デバッグなんてしなくてもバグが無いから問題ない。
なぜソースを見ただけでわからないのか不思議だ。
718デフォルトの名無しさん:2013/02/01(金) 16:40:44.82
>>713
ありがとうございます、早速調べてみます。
719デフォルトの名無しさん:2013/02/01(金) 17:09:11.36
どういたしまして
720デフォルトの名無しさん:2013/02/01(金) 17:17:10.35
>>716
なるほど。勉強になりました。
721デフォルトの名無しさん:2013/02/01(金) 18:29:04.09
Intの配列を作る場合、ポインタ変数はメソッドを呼んだ時点で割り当てられ、実体は命令の所で割り当てられる
722デフォルトの名無しさん:2013/02/01(金) 21:45:53.44
C#でおk
723デフォルトの名無しさん:2013/02/01(金) 22:08:50.23
>>710,718
フォームアプリでConsole.WriteLineしたら「出力ウインドウ」に出力される。
724デフォルトの名無しさん:2013/02/01(金) 23:19:32.58
jane styleの板一覧にあるツリーみたいなのってなんてコントロール名をデザイナに置いたらできますか?
725デフォルトの名無しさん:2013/02/01(金) 23:21:35.27
TreeView
726デフォルトの名無しさん:2013/02/01(金) 23:22:47.91
どうもありがとうございます
727デフォルトの名無しさん:2013/02/01(金) 23:24:33.09
すいません前にlistViewのヘッダをクリックしてソートさせたい質問をしたものですがあれからずっと試してみたものの解決できません
どなたかサンプルいただけませんか
728デフォルトの名無しさん:2013/02/01(金) 23:27:14.63
諦めてDataGrid使えばいいと思うよ
729デフォルトの名無しさん:2013/02/02(土) 04:03:53.53
C#というよりVisual Studio 2012の質問なんですが…。
デバッグ実行中にDebug.Assertに失敗したら、ポップアップを出すとか実行を一時停止させることはできませんか?
出力画面にエラーメッセージが出るだけだと、気が付かないことが多いので…
730デフォルトの名無しさん:2013/02/02(土) 07:52:48.14
TraceListenerを継承したクラス自作してListenersにAddすればればいいんじゃね?
731デフォルトの名無しさん:2013/02/02(土) 09:55:54.73
画面にたくさんボタンなどを配置したとき、
ボタンの描画がパラパラとなるんだが、
回避できないのけ?
732デフォルトの名無しさん:2013/02/02(土) 10:08:17.55
ImageAnimatorのソース見ると50ms間隔でスレッド回してるんだけど、なんか理由とかある?
gifの最小delayって10msじゃないの?
733デフォルトの名無しさん:2013/02/02(土) 10:13:35.00
今働いてる案件で、4つぐらいあるサーバーのIPアドレスとポート番号をiniファイルとかに書いてと言われました
それを発言した方はあまりプログラムに詳しい方ではないのでiniファイルというのにこだわりはないはずですが、
とにかく、ユーザーが自分たちで変更できるようにして欲しいそうです
それ変更専用の画面とかテキストボックスとかは作らないようです

settingsファイルは、ユーザーごとにそのIPアドレスとか変えるわけではないので、おかしいと思います。
resourceファイルは、ユーザーが自分たちで変更できないのでおかしいと思います


すると・・・どこに書くべきなのでしょうか
734デフォルトの名無しさん:2013/02/02(土) 10:17:15.24
>>733
XML
735デフォルトの名無しさん:2013/02/02(土) 10:17:27.53
exeと同じ場所にXMLファイルでも置いておけばいいんじゃないか?
XMLならC#だと扱いやすいし、iniは、そもそもサポートされてない。
736デフォルトの名無しさん:2013/02/02(土) 10:50:32.96
>>731
そんな抽象的な質問じゃ心当たりが多すぎて答えようがないわ
しいて言うならそのプログラムが全体的に糞過ぎるってことかな
737デフォルトの名無しさん:2013/02/02(土) 10:53:37.55
答えてるっていう
738デフォルトの名無しさん:2013/02/02(土) 11:00:53.79
>>731
いったい何個置いたんだよ
wpfでも使っとけば

>>732
ここ見ると
http://daredemopc.blog51.fc2.com/blog-entry-712.html
IEが対応してるのが20fps未満までというのと関係ないかな?
いま試してみたらWindows7の64bit版IE9でも20fps間隔以上は正しく表示されなかった
Firefoxは一番下以外は表示された

>>733
フォーマットを決めるならベタテキストでも問題ないが
739デフォルトの名無しさん:2013/02/02(土) 11:05:03.32
>>733
なぜSettingsじゃダメなのか理解できない
設定ファイルをNASにでも置くつもりか?
740デフォルトの名無しさん:2013/02/02(土) 11:24:33.08
iniファイル使いたいっつってんだから、iniファイル使うやり方を回答しろよカスども
http://www.atmarkit.co.jp/fdotnet/dotnettips/039inifile/inifile.html
741デフォルトの名無しさん:2013/02/02(土) 11:25:42.31
×iniファイル
○iniファイルとか
742デフォルトの名無しさん:2013/02/02(土) 11:32:52.45
user-wide ではなく system-wide の設定をユーザが変更しやすいようにするには
どこに配置するのがよいか、というのが>>733の質問の趣旨で、ファイル形式は
問題にしてないんじゃないか。
個人的には、exeと同じ場所に配置してUACに配慮した簡単な設定画面を作ってあげるのが
いいんじゃないかと思うけど。
743デフォルトの名無しさん:2013/02/02(土) 11:44:12.80
c#の質問というよりオブジェクト指向プログラミングの設計についての質問です。
ブロック崩しをc#を使いwindowsフォームで作っています。
とりあえずラケットを動かしてブロックを消すようなプログラムは書けたのですが
せっかくC#で書いてるのだからちゃんとオブジェクト指向の原則に則り
クラスごとに役割を与えて拡張にも強いような設計をしたいと思っています。
考えているクラスが
・ブロック
・ラケット
・ボール
・描画クラス
ぐらいなのですが、もしブロックとボールの衝突判定を考える際
どのようなクラスにどう判定させるのがよいかがイマイチ分かってないので
もしよろしかったらなぜそうするべきなのかという理由も含めて教えていただけると嬉しいです。
744デフォルトの名無しさん:2013/02/02(土) 11:53:24.69
>>733
そのシステムはクライアントは何台くらいなのでしょう。
サーバーが4つなら、クライアントは10や20では収まらないのでは?
サーバーが変更になったとき、ユーザー自身で設定を変更できるようにという意図だと思いますが
設定もれは発生することでしょう。

たまたま私も同じようなことを考えていて
どこかのサーバー(WebでもNASでもデータベースでも)にサーバーのアドレス設定を共通データとして置いておいて、
ユーザー設定で、共通データのありかを指定するようにしようかと考えています。
共通の設定データは、サーバーの変更などがあったときにサーバー管理者が変更する。
クライアントアプリのユーザーは、共通設定を使うかどうかを各自設定する感じ。
開発用や教育用などの本番とは別のサーバーを使うのも容易になると思います。
745733:2013/02/02(土) 12:17:20.39
今作っているアプリケーションは、10名程度のコールセンターのクライアントアプリとなります。
サーバーは4台ありますが、そのコールセンターのどのクライアントからも使えます。

Settings.settingsに書きたくないというのは、
サーバーのIPアドレスとポートの一覧は、コールセンター全体で変わらないはずなので、
本来はアプリケーションスコープで一括して管理すべき事項であり、
ユーザースコープの設定ファイルで各々のユーザーに書かせるのはおかしいと思ったから・・・・・・ですが、

確かに、.xmlにしても.txtにしても.iniにしても、ローカルファイルで更新させる場合は、
ユーザーそれぞれが自分で更新することになってしまいますね・・・。

ただ、user.configは、やや探しにくい階層にあるので、Settings.settingsはやはりあまり使いたくないです。

iniファイルは、VB6時代の遺産らしいですし、今はあまり推奨されてないようなので、
皆さんのご推薦のあった.xmlか.txtを、exeファイルと同じ階層に設置して使いたいと思います。
746デフォルトの名無しさん:2013/02/02(土) 12:17:24.27
>>743
神様(ゲームロジック)クラスが上からまとめて処理する。
ラケットクラスやボールクラスなどに当たり判定メソッドは持たせない。
なぜなら、結局両方の性質を詳しく知らないと処理できないので、
一方のメソッドとして実装しても意味がないし、現実の物理法則だって
どちらがどちらを押し返してるわけじゃなくて対称なんだから一方のメソッドにするのは不自然。
747デフォルトの名無しさん:2013/02/02(土) 12:20:42.35
>>745
app.configはexeと同じ階層だよ
実行時に書き込む必要があるのだけスコープをユーザにしてユーザごとのフォルダに配置される
748デフォルトの名無しさん:2013/02/02(土) 12:21:51.40
シェアウェアにあるようなシリアルを入れると全機能が使えるやつが作りたいのですが
これって何てコントロールを使うのでしょうか?
749デフォルトの名無しさん:2013/02/02(土) 12:30:35.53
>>743
ラケットクラス・ポールクラスなど、何かしら形のあるものは、何かしら形のあるものとして抽象クラスを作っておく。
もしくは、インターフェースを実装して大きさや位置を返すようにしても良い。

実際の当たり判定は、直接ラケットクラスなどに定義するのではなく、別にクラスを定義してそこにまとめておく。
bool Utility.Hit( a , b ); のような感じで a の範囲に b を含むかを判定するようにすることで
判定処理を一元化することができる。ラケット、ボールといったクラスは、自分の位置と大きさだけを実装すれば良い。
インターフェースを使うことでラケット、ボールといった異なるものを同一の性質を持つものとして振る舞うことができる。
750デフォルトの名無しさん:2013/02/02(土) 12:31:35.44
C#と相性のいいデータベースってありませんか?
751デフォルトの名無しさん:2013/02/02(土) 12:31:35.54
>>748
テキストボックスでも設置して指定された文字列が入力されたら、全機能使えるようにすれば良いだけ。
752デフォルトの名無しさん:2013/02/02(土) 12:36:58.37
>>728
見た目がださくて・・・・
753デフォルトの名無しさん:2013/02/02(土) 12:37:16.59
>>745
> 今作っているアプリケーションは、10名程度のコールセンターのクライアントアプリとなります。

同業他社さんだ (w

クライアントの IP アドレスの設定はどうやってるの?
設置時にやってるなら、そのときに一緒に設定するような仕組みにすればいいし。
DHCP とかでやってるなら、DNS 立てて IP アドレスじゃなくてサーバー名を設定しておけば
良いんじゃね?
754デフォルトの名無しさん:2013/02/02(土) 12:39:41.19
>>752
WPFにでもしてろw
755デフォルトの名無しさん:2013/02/02(土) 12:39:45.10
>>752
だったらWPFに乗り換えて好きに弄れよ
泥臭い業務用土方ツールWinFormsなんて使っておいて見た目気にするとかアホか
756デフォルトの名無しさん:2013/02/02(土) 12:46:32.41
画像内の特定の座標位置のRGBを取得するライブラリありませんか?
757デフォルトの名無しさん:2013/02/02(土) 12:56:13.84
>>746
例えばボールクラスに反射メソッドを付けるのはどうなんでしょうか?
それよりもゲームクラスで全てボールの動きを制御してしまっていいのでしょうか?

>>749
そのUtilityクラスはstaticでしょうか?
758デフォルトの名無しさん:2013/02/02(土) 13:05:48.18
>>757
本当にボールの速度の向きを反転させるだけなら ボール.反射(X方向); でいいと思うけど、
実際ゲームとしてはそう単純にはいかなくて他のオブジェクトの兼ね合いとかで
衝突相手ごとに場合分けが必要になるだろうから、神様にお願いするか
逆に ブロック.反射(ボール) の方がいいかも
759デフォルトの名無しさん:2013/02/02(土) 13:25:14.36
>>758
ブロッククラスに反射を導入するということですか?
壁への衝突とは違う方法にしなければならないので
なんとなく統一性がないような気がしてしまいました(壁クラスを作ったらいいのかな?)
ラケットとブロックそれぞれに反射(何か);を付ける必要があるんでしょうか
760デフォルトの名無しさん:2013/02/02(土) 13:32:06.52
>>757
Utilityクラスは、staticクラスで判定処理とか距離計算とか
汎用的な使えるメソッドを定義しておく場所として使う。
.NETのMathクラスのようなものと考えれば良い。
761デフォルトの名無しさん:2013/02/02(土) 13:36:07.35
>>760
オブジェクト指向でやるなら引数でオブジェクト全部受けるより
インスタンス.判定(別のやつ);のほうがそれっぽいかななんて思ったりしますがどうでしょう
762デフォルトの名無しさん:2013/02/02(土) 13:42:18.24
>>761
その場合、拡張メソッドにするのもあり。
static class Utility{
  public static bool HitContents( this ISprite source , ISprite target ){
     // 判定処理
  }
}
こうすることで hoge.HitContents( fuge ) のようにメソッドを呼び出すことができる。
※拡張メソッドは、インスタンスメソッドとは違うことには注意。
この場合、具体的な判定処理を外部に抜き出しただけに過ぎない。
763デフォルトの名無しさん:2013/02/02(土) 13:43:55.81
>>761
それっぽいとかいう問題じゃなくて、当たり判定は本質的に対称な処理なんだから
どちらかに属するべきじゃない。C#で演算子オーバーロードが全部staticなのと同じ。
ただしブロック崩しに限るなら常にボールと他の何かの衝突になるので、その意味では対称じゃないね。
ボールの性質は決まっているとすると、ブロック.衝突しているかどうか(ボール) の方が
場合分けも多態使ってスマートにやれていいかもしれない。
764デフォルトの名無しさん:2013/02/02(土) 13:59:36.72
>>747
確かに、app.configを直接編集させるという手がありましたね・・・

>>753
同業他社といっても私はただの派遣の土方です

既に稼働しているサーバーを使うことになると思います。
IPアドレスでもらえるか、サーバー名でもらえるかはまだわかりません・・・
765デフォルトの名無しさん:2013/02/02(土) 14:10:24.58
>>762
恥ずかしながら拡張メソッドのことを知りませんでした。
記法はこちらの方がよさそうですね

>>763
だんだんイメージが固まってきました

あとついでと言ったらなんですが
以前、ゲーム(例えばチェス)のクラスがあってルールをインターフェイスで追加(?)してるコードを見たことがあります。
曖昧な質問で恐縮ですがルールをIRuleみたいにインターフェイスを使って追加みたいなことってできますか?
そのクラスとインターフェイスの関係性がよく分からないのですが(汗
間違ってるかもしれないんでそこはすいません
766デフォルトの名無しさん:2013/02/02(土) 14:13:02.07
実際使いもしないのに意味もなくインターフェイス作って多態可能にするのは
初心者はよくやるけど有害無益。
767デフォルトの名無しさん:2013/02/02(土) 14:28:37.51
PictureboxのImageプロパティを用いてBitmapを描画したいのですが、pictureboxに描画した際に拡大すると自動で補間処理が行われてしまいます。科学技術計算の結果を表示するので、自動補間されてしまうと都合が悪いです。

出来ればGraphicsオブジェクトを用いずにImageプロパティで処理したいのですが、調べても補間処理を無効にする様なオプションを見つける事が出来ませんでした。

ご存知の方がいらっしゃいましたら教えていただけませんか?
768デフォルトの名無しさん:2013/02/02(土) 14:29:24.34
インターフェースから設計するのは、慣れている人がやること。
クラスを実装していると、どうしても同じようなメソッドが出てきたり、
同じような性質をいくつものクラスで実装することがある。
そういった場面に直面したとき、インターフェースや静的クラスなどに分離してやればいい。
769デフォルトの名無しさん:2013/02/02(土) 14:31:02.22
>>767
言ってることが全体的に意味不明だけど、

>科学技術計算の結果を表示するので、自動補間されてしまうと都合が悪い
特にここが何を言ってるのかわからない。
770デフォルトの名無しさん:2013/02/02(土) 14:31:49.72
>>767
無理
771デフォルトの名無しさん:2013/02/02(土) 14:31:50.91
科学技術計算なんて単語持ち出す割りに小学生レベルの知能だな
772デフォルトの名無しさん:2013/02/02(土) 14:34:23.65
C#保育園(幼児用)に改名しろよ
773デフォルトの名無しさん:2013/02/02(土) 14:37:20.09
朝から晩まで部屋に篭って、PCと性器弄ってるだけの人とは、言語に向き合える時間が違うんですよ。
774デフォルトの名無しさん:2013/02/02(土) 14:43:00.65
>>756お願いします
775デフォルトの名無しさん:2013/02/02(土) 14:44:22.27
そもそもどんなフォーマットの画像だよ
776デフォルトの名無しさん:2013/02/02(土) 14:46:28.13
当たり判定は当たり判定クラスにやらせればよい
オブジェクト指向はただの宗教だから
オブジェクト指向の原則通りにやっても良いコードにはならない
777デフォルトの名無しさん:2013/02/02(土) 14:48:23.11
>>775
pngかjpgでお願いしたいです
778デフォルトの名無しさん:2013/02/02(土) 14:50:22.80
>>777
なら読み込んで画素を取得すればいいだけじゃない
C#なら楽勝でしょ
779デフォルトの名無しさん:2013/02/02(土) 14:54:36.79
>>778
なんて名前空間のをusingすればいいんですあk?
780デフォルトの名無しさん:2013/02/02(土) 14:55:11.53
オブジェクト指向のパターンなんてJava厨が考えたものだから
それをそのままC#に適応するとか無意味だし無駄なこと。
781デフォルトの名無しさん:2013/02/02(土) 14:55:51.55
>>779
流石に基本的すぎるのでググってくれ
検索能力もプログラマには重要な技術だ
782デフォルトの名無しさん:2013/02/02(土) 15:06:37.50
>>767
>出来ればGraphicsオブジェクトを用いずに

なんだよGraphicsオブジェクトさんも使ってやれよ
783デフォルトの名無しさん:2013/02/02(土) 15:07:30.39
オブジェクト指向はスモールトーカーが考えたものでしょ
それを取り入れたおかげでCからはだいぶマシになったけどね
784デフォルトの名無しさん:2013/02/02(土) 15:08:21.33
画像を高速に読み込んで表示する方法おしえて
785デフォルトの名無しさん:2013/02/02(土) 15:08:40.52
>>767
PictureBox のサイズを Image のサイズに合わせればいいだけ
Panel に入れて Panel を AutoScroll にしておけば
大きくなりすぎてもスクロール出来る
786デフォルトの名無しさん:2013/02/02(土) 15:18:03.08
画像を拡大縮小するときGDI+さんだとおせっかいな補完してくれたりエッジがおかしくなるバグがあるんで
GDIでやらないといけない場合があるよな
787デフォルトの名無しさん:2013/02/02(土) 15:24:11.30
>>786
ちゃんとプロパティ設定すればそんなことないはずだけど?
788デフォルトの名無しさん:2013/02/02(土) 15:51:21.89
フォームにぴったり配置したLabelを
フォームのサイズに合わせてLabelの文字の大きさを自動的にフォーム一杯に自動調整する方法を教えてください
789デフォルトの名無しさん:2013/02/02(土) 15:58:43.94
テキスト変更時に
自分で調整するしかなくね
790デフォルトの名無しさん:2013/02/02(土) 16:10:07.89
>>788
Labelを継承してそういうコントロールを作ればいい。
前にまったく同じものを作ったけど5分とかからなかった
791デフォルトの名無しさん:2013/02/02(土) 16:48:38.54
int i = 0; byte b = i; はエラーになり、byte b = 0; が問題ないのはなぜですか?
変数 i も整数リテラルも同じ int だと思うんですが。
792デフォルトの名無しさん:2013/02/02(土) 16:49:37.94
型が違うじゃん
変換しろよ
793デフォルトの名無しさん:2013/02/02(土) 16:50:36.77
b = 0は必ずb = 0だけど、b = iは必ず b = iにはならないから。
794デフォルトの名無しさん:2013/02/02(土) 16:54:53.18
これだからスクリプト脳はw
795デフォルトの名無しさん:2013/02/02(土) 16:56:33.94
byteの0とintの0は違うから
1年1組の木村君と
1年2組の木村君は違うでしょ
796デフォルトの名無しさん:2013/02/02(土) 16:57:16.27
const int i = 0; byte b = i; でも問題は起きないよ
コンパイル時に範囲チェックできるかできないかの差
797デフォルトの名無しさん:2013/02/02(土) 17:09:30.92
>>792
byte b = 0; の場合も、b は byte、0 は int で、型が異なりますよね。
でもなぜエラーにならないのか疑問です。

>>793
float f = 0.0; も必ず 0 と表現できますが、なぜこちらの場合は double を float にできないと言われるんですか?
だったら byte b = 0; の場合も、int を byte にできないと言われないと納得できないんですが。
798デフォルトの名無しさん:2013/02/02(土) 17:12:46.70
あの、'a'と"a"の違いわかる?
799デフォルトの名無しさん:2013/02/02(土) 17:12:56.56
>>797
浮動小数点数の場合は
どんな値なら正確に変換できるかを完全に判定するのが大変だから
サボってんだろう
800デフォルトの名無しさん:2013/02/02(土) 17:13:15.37
>>797
intはbyteに暗黙にはならないし、doubleもfloatに暗黙にはならない。
0はintにもなるしbyteにもなる。
1000はintになるけどbyteにはならない。
801デフォルトの名無しさん:2013/02/02(土) 17:20:17.37
>>797
> float f = 0.0; も必ず 0 と表現できますが、なぜこちらの場合は double を float にできないと言われるんですか?
リテラルの小数点数はdoubleとして扱う決まりだから
0.0はdoubleで、doubleはfloatで表現しきれない
802デフォルトの名無しさん:2013/02/02(土) 17:20:25.91
>>797
あんた0って簡単にいっているけどね
intの0は000000000000でbyteの0は0000なわけよ
803デフォルトの名無しさん:2013/02/02(土) 17:22:52.36
C言語ではint i = 0; char c = iができました。
なんで上位のC#でできないのか、もっと論理的に説明してください。
804デフォルトの名無しさん:2013/02/02(土) 17:24:51.83
宿題ですか?
805デフォルトの名無しさん:2013/02/02(土) 17:25:46.60
お前らに対する宿題です。
806デフォルトの名無しさん:2013/02/02(土) 17:26:03.02
それはCが型に緩いだけ
その処理が最終的にどういう機械語になるか想像すれば
プログラマがどうするか決めなきゃいけないって結論になるはずなんだが
807デフォルトの名無しさん:2013/02/02(土) 17:38:24.17
C#はCに比べて暗黙変換にかなり厳しい

整数のコンパイル時定数の場合は
範囲チェック通ればスルーしてくれるけど
それ以外は元の型の範囲が新しい型の範囲に収まる場合以外は
コンパイル時エラーを出す
808デフォルトの名無しさん:2013/02/02(土) 17:40:02.73
>>803
Cではサボってた型チェックを上位のC#ではきちんとやるようになった。
809デフォルトの名無しさん:2013/02/02(土) 17:40:12.38
間違いやすい書き方を認めるか認めないかで
全然使いやすさが違うよね
810デフォルトの名無しさん:2013/02/02(土) 17:43:04.10
JavaとC#の型づけの強さって最上位なんだっけ
811デフォルトの名無しさん:2013/02/02(土) 17:43:57.97
つまり、C言語では意図を理解したうえで自動的に型変換してくれていたのに、
C#では頭のおかしい開発者がその便利な機能を削除して、わざわざ不便な
オナニー仕様を教えつけた、ってことでいいですか?
812デフォルトの名無しさん:2013/02/02(土) 17:44:14.63
機械語レベルで考えたとき、char i = 0 も int i = 0 も 0 として表現できる。
コンパイルして機械語で扱う時点でそこに型は、存在しない。ただの0と1の羅列だ。
そもそもintやlong、charといった型は、人間にとってわかりやすいように名前を付けただけのことだ。
int a = 0;
char b = a;
単純に考えれば、intは、charの範囲に入るからできると思うが、これは、多くの場合ミスだ。
機械語レベルで表現したとき、範囲に入るからと型が合うとはならない。
C#では、このような場合、プログラマに修正を託すように警告を促すようになっている。

一言で言うならC言語は、よりコンピュータに近く。C#は、より人間に近い。
C言語での経験則上、多くの場合でミスであろう書き方は、警告なりコンパイルエラーが出るように設計されている。
よく変数を宣言したら0で初期化しろ。とは言うがC言語で定義したままの変数を使うとでたらめな値になっているが
C言語では、問題なくコンパイルが通る。C#では、コンパイラで0ないし規定値に初期化されるが、初期化されていない
ローカル変数を使おうとするとコンパイルエラーになる。
813デフォルトの名無しさん:2013/02/02(土) 17:44:43.45
CでできてC#でできないことなんていっぱいあるぞ。
int *p = 0; int i = *p;
とかさ。
814デフォルトの名無しさん:2013/02/02(土) 17:45:34.89
>>811
頭のおかしいおまえは、PerlとかPHPでもいじってろよ。
型気にしなくて良いからおすすめだぞw
815デフォルトの名無しさん:2013/02/02(土) 17:45:40.67
厳し過ぎるので全部stringで
816デフォルトの名無しさん:2013/02/02(土) 17:46:02.08
>>811
おまえのオナニーよりずっとスケールが大きいぞ。すごいね。
817デフォルトの名無しさん:2013/02/02(土) 17:48:49.40
これがめんどくさいとか
一生スクリプトでもやってればいいんじゃないかな
818デフォルトの名無しさん:2013/02/02(土) 17:55:33.27
なんか頭がおかしい低能用の言語だったみたいですね。
僕みたいな高等な人間には相応しくないようなので、
C#を使うのはやめます。
僕はそれなりの立場にいる高等な人間ですので、この先
C#を使う人はどんどん軽蔑し会社からも社会からも排除して
いきたいと思います。
819デフォルトの名無しさん:2013/02/02(土) 18:02:33.75
次の人どうぞ
820デフォルトの名無しさん:2013/02/02(土) 18:07:01.93
namespaceって絶対書かないとだめ?
821デフォルトの名無しさん:2013/02/02(土) 18:07:18.11
はい
822デフォルトの名無しさん:2013/02/02(土) 18:07:25.10
はい、お大事に
823デフォルトの名無しさん:2013/02/02(土) 18:09:45.28
>>820
言語的にはなくても良い
実務的には間違いなく付ける
824デフォルトの名無しさん:2013/02/02(土) 18:34:47.43
>>820
余程小さなコード以外は普通は書くね。

全部自分で書いてる限り実際はまず名前の衝突なんて起こらないんだけど、
型を名前空間で分類することによって、多少は可読性を上げることはできるから。

まあ、ぶっちゃけそんな大した御利益があるわけじゃないが...
825デフォルトの名無しさん:2013/02/02(土) 18:40:30.47
VSが自動的に付けてくれるから
付けないという選択肢なんて考えたことないわ
826デフォルトの名無しさん:2013/02/02(土) 19:42:25.83
Splitの引数は文字の配列ですが
"a,b,c".Split(',');
のように文字そのものを指定しても動作しますよね。
便利なんですけど
"a,b,c".Split(new Char[] {','});
じゃなくても良いのはなぜでしょう。
827デフォルトの名無しさん:2013/02/02(土) 19:45:32.00
可変長引数を取ってるから
828デフォルトの名無しさん:2013/02/02(土) 19:45:57.88
おなじだから
829デフォルトの名無しさん:2013/02/02(土) 19:50:58.06
iPadでmsdnが見れないのは嫌がらせなのか?
830デフォルトの名無しさん:2013/02/02(土) 19:52:44.69
拡張メソッドで対応できるようになったからまあいいとして
なんでこの宣言が無いんだろう

public string[] Split(params String[] separator)

絶対にStringSplitOptionsを指定しなければならない理由がよく分からない
831デフォルトの名無しさん:2013/02/02(土) 19:58:36.99
なるほどオーバーロードの一覧では
Split(Char[])
となってますが、構文では
public string[] Split(
params char[] separator
)

となってますね。パラメーターだから1つでもOKなんですね。
832デフォルトの名無しさん:2013/02/02(土) 20:05:28.11
>>830
後から追加されたメソッドだから互換性を壊さないための配慮だろ
VBのOption Strict OffだとStringからCharへの暗黙の型変換があるから
今までChar[]だったのがString[]の方が使われるようになってしまう
833デフォルトの名無しさん:2013/02/02(土) 20:06:59.08
なるほどお
どこぞの言語は迷惑なもんだなあ
834デフォルトの名無しさん:2013/02/02(土) 20:09:52.48
VBのやろう・・・
835デフォルトの名無しさん:2013/02/02(土) 20:23:07.92
>>832
今確認したけど、VBでOption String Off でもString[]からChar[]へは
暗黙変換されない。
836デフォルトの名無しさん:2013/02/02(土) 20:27:06.73
暗黙変換は String から Char[] への変換だお
String[] の第一引数しか使わないケースの事だお
837デフォルトの名無しさん:2013/02/02(土) 20:28:46.35
だからVBは恐らく関係がない。

ペゾルトの本だったか、Graphics.DrawRectangleにRectangleFを使うバージョンが
ないのは不可解だとか書いてあったけど、それと同じでただの凡ミスでしょ
838デフォルトの名無しさん:2013/02/02(土) 20:32:01.24
string a = "aaa";
String a = "aaa";

どっちがただしい?
839デフォルトの名無しさん:2013/02/02(土) 20:33:10.24
どっちもただしい
840デフォルトの名無しさん:2013/02/02(土) 20:34:38.12
string = 予約語(= System.String)
String = System.String

どちらも正しいが
String のみで書くには using System; が要る
841デフォルトの名無しさん:2013/02/02(土) 21:05:47.85
>>836
試した
http://ideone.com/mmLtga
確かにStringはChar()に暗黙的に変換されるが、それはまあいいとして
String()のオーバーロードがある場合でもChar()版があるとChar()の方が呼び出されるみたい。
なぜかStrict OnにしてもChar()の方が呼ばれる。
なんだこの意味不明なクソ言語は。
ideon上でしか試してないからもしかしたらMonoのバグかもしれないけど
842デフォルトの名無しさん:2013/02/02(土) 21:17:05.56
お薬だしておきますねー
843デフォルトの名無しさん:2013/02/02(土) 21:28:10.37
>>841
今確認 さすがにMSのVBコンパイラはそこまで酷くなかったわ
844デフォルトの名無しさん:2013/02/02(土) 21:32:25.89
そこまでではないが酷かったのか
845デフォルトの名無しさん:2013/02/02(土) 21:37:41.69
>>841
そもそもString⇒Char[]の暗黙変換もないw
Stringが1文字のリテラルの場合に限ってString⇒Charの暗黙変換は働く。
846デフォルトの名無しさん:2013/02/02(土) 21:39:31.98
とりあえず事実を3行でまとめてくれ
847デフォルトの名無しさん:2013/02/03(日) 05:15:46.18
>>841はVB.NETの話だろ
すくなくともVB.NETでOption Strict Offなら暗黙変換できる

Dim x As String = "abcdef"
Dim s As String
Dim c() As Char
c = x
MsgBox(c)
s = c
MsgBox(s)
848デフォルトの名無しさん:2013/02/03(日) 13:08:23.22
float等に使うサフィックスって大文字と小文字どっちが一般的なんですか?
849デフォルトの名無しさん:2013/02/03(日) 13:14:00.58
そりゃあShiftキーが要らん方に決まってる
850デフォルトの名無しさん:2013/02/03(日) 13:16:52.89
lは警告でるけね
851デフォルトの名無しさん:2013/02/03(日) 13:24:49.65
個人的には 0x12ABCDEF 1.0E3f 934m (doubleのd/Dやlongのl/Lは省略する) だな
16進数のABCDEFと指数のEだけ大文字
852デフォルトの名無しさん:2013/02/03(日) 20:40:19.95
textboxからフォーカスが外れたときに特定の処理をさせたいのですが
textboxにフォーカスを持ってきて文字が入力できる状態のときに、Winキー+Dでデスクトップを表示させても処理が実行されません
853デフォルトの名無しさん:2013/02/03(日) 21:12:36.67
何の処理?
854デフォルトの名無しさん:2013/02/03(日) 21:24:43.99
とりあえず何でも良いんですがメッセージボックスを表示するなど
855デフォルトの名無しさん:2013/02/03(日) 21:45:08.73
ウィンドウ単位で見た場合フォーカスが外れる訳じゃないからな
別のウィンドウを一旦アクティブにして戻したらフォーカスが明後日のところにいってたとか嫌だろう
856デフォルトの名無しさん:2013/02/03(日) 22:16:31.84
ウィンドウがアクティブから外れたかどうかっていうのはどうやって調べられますか?
857デフォルトの名無しさん:2013/02/03(日) 22:39:13.15
>>852
Validateは発生しないはずだけどLostFocusは普通に発生すると思ったが...
とりあえずSPY++でどんなメッセージが飛んで来るか見てみたら?
858デフォルトの名無しさん:2013/02/03(日) 22:46:03.61
LostFocusは非推奨、Leave使えって話よ
859デフォルトの名無しさん:2013/02/03(日) 23:30:03.19
無料版しかもってないためSPY++使えませんでした。。。。
private void Form1_Leave(object sender, EventArgs e)
{
MessageBox.Show("Test");
}

private void textBox1_Leave(object sender, EventArgs e)
{
MessageBox.Show("Test");

}

Formとtextbox両方に書いてみたんですがメッセージが表示されませn
860デフォルトの名無しさん:2013/02/03(日) 23:37:12.57
Leaveの解説読めばいいよ
861デフォルトの名無しさん:2013/02/03(日) 23:46:44.13
>>859
だから、今確認したけどLeaaveじゃなくてLostFocusはちゃんと発生するって。

ついでに、こっちは未確認だけどSPY++はWindows SDKについてくるってさ。
もちろんタダ。
http://social.msdn.microsoft.com/forums/ja-JP/vcexpressja/thread/bbf83e96-def0-4445-8b08-681f246819da/
http://msdn.microsoft.com/ja-jp/windowsserver/bb980924.aspx
862デフォルトの名無しさん:2013/02/03(日) 23:51:08.42
>860-861
ありがとうございます
いまからやってみます
863デフォルトの名無しさん:2013/02/03(日) 23:52:55.27
System.Text.RegularExpressions.Match m;
while(xx){
〜〜
}
console.writeLine(m);

こう書くとmが割り当てられてねえ って言われるけど
mはwhileの中で必ず割り当てされますのでエラー判定を無視して欲しいのですが
どうしたらよいでしょうか。

noとかだったら適当な値を入れてやればいいのですが
簡単に代入出来ない形はどうしたらよいでしょうか
864デフォルトの名無しさん:2013/02/03(日) 23:58:22.20
・・・え、初期値にnull入れとけばいいんじゃないの??
なんかトラップがあるのこの質問???
865デフォルトの名無しさん:2013/02/04(月) 00:00:01.43
あれ、nullって普通に入るのか・・・
Null 許容型だとかあるから入らないかと思ってた。
失礼しました。
866デフォルトの名無しさん:2013/02/04(月) 00:02:32.48
なんでbyteとshortintよりintのほうがパフォーマンスいいんですか?
なんでstringよりcharのほうがパフォーマンスいいんですか?
867デフォルトの名無しさん:2013/02/04(月) 00:03:24.58
レジスタの都合
868デフォルトの名無しさん:2013/02/04(月) 00:13:06.41
メモリーの都合もあるんじゃないかにゃ
869デフォルトの名無しさん:2013/02/04(月) 00:13:46.64
メモリーの都合だとサイズ小さいほうがキャッシュに収まりやすくて速い場合もあるけどな
870デフォルトの名無しさん:2013/02/04(月) 00:16:49.54
パフォーマンスに差なんか本当はないに一票。
x86のアーキテクチャ知らんけど、byte命令やword命令ぐらいあると思う。
だとすれば恐らく差なんて存在しない。
構造体とかのパッキングの話と混同されてるような気がする
871デフォルトの名無しさん:2013/02/04(月) 00:24:55.71
データの配置がワード境界に一致しているかどうかでアクセスが
1サイクルですむか2サイクルかかるかの差が出ることがあったりなかったり、
っていうのはCの話?C#だと関係ない?まったくじゃないけど気にするようなことではない?
確か、Cでのintは最も効率のよいサイズじゃなかったかな。
872デフォルトの名無しさん:2013/02/04(月) 00:34:40.12
最も自然なサイズであって、最も効率の良いサイズではないな >Cのint
64bit機でも互換性を重視して32bitのままにしてる処理系ばっかだし

x86にバイト命令はあるけど、
Cには(C#にもだけど)汎整数拡張ってルールがあって
intに拡張されてから演算が行われるので使われない
要するにintに拡張するコストがかかるという事だ
873デフォルトの名無しさん:2013/02/04(月) 00:34:57.40
配列へ連続でアクセスしまくっててメモリアクセスがボトルネックならサイズが小さいほうが有意に速かったりするよ
874デフォルトの名無しさん:2013/02/04(月) 00:40:50.49
CPUバウンドの場合…自然なサイズを使うと速いことが多い
メモリバウンドの場合…読み書きするメモリの量が少ないほうが速いことが多い
一般にはこうだろうな
875デフォルトの名無しさん:2013/02/04(月) 00:43:29.55
ま、そだろね
でも、上の方はそこまで大きな影響ないとは思うけどね
下は結構影響あると思うけど
876デフォルトの名無しさん:2013/02/04(月) 15:26:36.81
C#用の分散処理フレームワークありませんか?
877デフォルトの名無しさん:2013/02/04(月) 15:30:27.57
C#はASP
JAVAはJSP

JAVAのServletに該当するのかC#ではなんですか?
878デフォルトの名無しさん:2013/02/04(月) 16:26:00.71
.ashx かな
WebHandler / IHttpHandler あたりでぐぐる
879デフォルトの名無しさん:2013/02/04(月) 17:11:34.07
既にいくつかのItemが格納されたitems
List<Item> items 要素数30とか

これに、関数で生成した List<Item> otheritems 要素数5とか を後ろに追加したいのですが
一般的な方法としてはどのように処理するものなのでしょうか?
880デフォルトの名無しさん:2013/02/04(月) 17:12:46.15
items.AddRange(otheritems);
881デフォルトの名無しさん:2013/02/04(月) 18:11:41.92
>>880
できました。ありがとうございました。
882デフォルトの名無しさん:2013/02/04(月) 19:24:56.37
Formで最大化・最小化前のサイズってプロパティとかから取得できますか?
それとも最大化・最小化を検知して自前で管理するしかないですか?
883デフォルトの名無しさん:2013/02/04(月) 19:27:54.78
RestoreBounds
884デフォルトの名無しさん:2013/02/04(月) 20:00:18.68
ありがとうございます
885デフォルトの名無しさん:2013/02/04(月) 21:08:31.21
.Net4.0がインストールされてるとVC#って標準で.Net4.0のclientなんちゃらってやつのプログラム前提で作るじゃないですか
それで、.Net2.0で対応している仕様で書いたら(Linqとかそういう上位バージョンの機能を使わない)
.Net2.0しか入ってないPCでも動きますか?
886デフォルトの名無しさん:2013/02/04(月) 21:10:20.05
プロジェクトのプロパティでターゲットを2.0に変更しないとダメ
887デフォルトの名無しさん:2013/02/04(月) 21:10:59.32
4系(4.0, 4.5)向けにビルドすると2系(2.0, 3.0, 3.5)では動かない。逆は動く。VMの仕様が変わってるからな。
ターゲットはプロジェクトのプロパティで変更できるから2.0選べばおk
888デフォルトの名無しさん:2013/02/04(月) 21:15:01.46
なるほど、ということは最初から2.0に変更して作ったらほとんどのPCで動くプログラムが作れますね
本当は新しいもの好きなので4.0がいいんですがネットカフェとか2.0くさいし
889デフォルトの名無しさん:2013/02/04(月) 21:16:47.40
なんかデザイナにメニューを置いたり、タスクトレイを置いて右クリックしたときに表示されるメニューがださいんですが
普通のソフトにある定番のあのデザインにすることはできないのでしょうか?
890デフォルトの名無しさん:2013/02/04(月) 21:17:31.59
定番のあのデザインとか言われてもよくわからないけどw
891デフォルトの名無しさん:2013/02/04(月) 21:20:55.81
>>888 2.0向けにビルドした場合はマニフェストファイルを弄って4.0動作可と宣言しておかないと4.0では動かないから注意しろよ
>>889 MenuStripかWPF
892デフォルトの名無しさん:2013/02/04(月) 21:50:08.01
WPFだと確かタスクトレイ使えないから
結局タスクトレイ使おうとするとフォームと同じになってしまう
893デフォルトの名無しさん:2013/02/04(月) 22:05:12.71
>>889
MenuStripやContextMenuStripじゃなくてOS標準のメニューがいいってことか。
MainMenu, ContextMenu というコントロールを使えば可能だけど、ちょっと面倒。
外観を変えたいだけならToolStripRendererでググればVista風とかOffice風とかいろいろ出てくる。
894デフォルトの名無しさん:2013/02/04(月) 22:58:43.98
C#もしくはVB.NETで作ったアプリケーションの改修があって、
ソースはなくてスクリーンショットだけあるんですが

┌───┬───┬───┬
│     │     │     │ 
├───┼───┼───┼
│     │     │     │ 
├───┼───┼───┼
│     │     │     │ 
├───┼───┼───┼


こんな風にセルが沢山あって、最初の二行だけセルの色がヘッダー含めて青いんです。
他から浮いてるようにも見えます。
それはプロパティ弄ればどうとでも変えられるんですが・・・。

┌───┬───┬───┬
│     │     │     │ 
├───┼───┼───┼
│*    │     │     │ 
├───┼───┼───┼


現状はこんな感じで、※が表示されてしまっているんです
AllowUsersToAddRowsをfalseにしたら、*は消えますが、今度は最初の列が残ったままです
この列を消すにはどうすればいいのでしょうか?
895デフォルトの名無しさん:2013/02/04(月) 23:05:56.29
最初の列ってなによ
カラムか?
896デフォルトの名無しさん:2013/02/04(月) 23:08:47.65
895が言うようにカラムのことなら
DataGridView.ColumnHeadersVisible = false
にすれば消える
897デフォルトの名無しさん:2013/02/04(月) 23:16:43.31
control継承したクラスで、再描画が必要なプロパティ/メソッド内でInvalidate()と、呼び出し側でプロパティ/メソッド実行後にcontrol.Invalidate()って内部の処理とか異なる?
後者だと描画が更新されない

↓こんな感じ
class PictureBox : ScrollableControl {
 public bool PreventInvalidate = false;
 public bool Magnify {
  get { return magnify; }
  set {
   magnify = value;
   〜処理〜
   if( PreventInvalidate ) Invalidate();
  }
 }
}

//前者
pictureBox.Magnify = true;
//後者
picbureBox.PreventInvalidate = true;
pictureBox.Magnify = true;
pictureBox.Invalidate();
898デフォルトの名無しさん:2013/02/04(月) 23:36:22.68
ここ流れが速くてどの番号で質問したか忘れて返事かけません
899デフォルトの名無しさん:2013/02/04(月) 23:38:08.22
そうですか
900894:2013/02/04(月) 23:43:05.55
最初の列、というのは

┌───┬
│     │    
├───┼
│*    │ 
├───┼


  ↑ ここのことでした


RowHeadersVisible = falseで消えました


ありがとうございました。
901897:2013/02/05(火) 00:51:57.33
例のソース間違えた
if( !PreventInvalidate ) Invalidate();
が正
902デフォルトの名無しさん:2013/02/05(火) 01:26:41.65
>>897
pictureBox (先頭小文字) がどこかに定義されているとして、
それは PictureBox (先頭大文字) とは別物だよ。
903897:2013/02/05(火) 07:09:41.79
pictureBoxは、PictureBoxのインスタンスという意図で先頭小文字にしたんだ
904デフォルトの名無しさん:2013/02/05(火) 08:40:53.08
単に後者はループ中に呼んでるとかじゃねーの
905デフォルトの名無しさん:2013/02/05(火) 10:08:56.60
textboxに補完機能を入れたいのですが、単語と連動して説明文を右のほうに出すのはどのようにやるのでしょうか?
ttp://kikyou.info/diary/subdata/sakura_nasm2.png
906デフォルトの名無しさん:2013/02/05(火) 10:10:42.73
>>905
MonoDevelopのコンポーネントを組み込んで終了
907デフォルトの名無しさん:2013/02/05(火) 11:15:58.88
うほっ
908デフォルトの名無しさん:2013/02/05(火) 14:19:06.04
Dispatcher.BeginInvoke()に与えたタスクは、処理がDispatcher.BeginInvoke()が書かれたブロックを抜けるまで開始されないです

仕様ですか?
909デフォルトの名無しさん:2013/02/05(火) 14:28:08.83
UIスレッドから呼び出したらそりゃそうなる
UIスレッドで呼ばれるか他のスレッドで呼ばれるか分からないならInvoke使っとけ
910デフォルトの名無しさん:2013/02/05(火) 14:31:30.22
TCP通信でサーバ側のケーブルを抜いた後の再接続で
接続拒否される問題に対策したいのですが
こちら(クライアント)がTcpClientのGetStreamでとってきた
NetworkStreamのインスタンスをClose
(および、TcpClientのClose)をしたとき
相手サーバとのケーブルが抜けていたとき
自分はFINを送ってFIN_WAIT_1状態になるものの
いつまでも相手サーバからACKが来ないと思いますが
この状態で、Close処理は既に要求したので
TcpClientのConnectをリトライして
ケーブル復旧まで待っていても良いのでしょうか?
ケーブル復旧したときに正しくFINが届きますか?
911デフォルトの名無しさん:2013/02/05(火) 14:36:05.34
それC#の話なのか?
912デフォルトの名無しさん:2013/02/05(火) 14:39:45.13
>>910
C#ユーザーはライブラリの使い方を知ってるだけで
中身は知らないからここで聞いてもわからないと思われ
913910:2013/02/05(火) 14:48:54.41
C#ユーザでも実装内部を知っている人もいると思うんですが。
Close内部でFINをリトライして、Closeが終わったときに、FINもやめるのかな・・。
その後、Connectリトライしてケーブル復旧してもサーバがFINを受け取っていない
ので、接続拒否するとか。
Close自体の成功判定ってないので、Closeをリトライすることもできないですよね。
914デフォルトの名無しさん:2013/02/05(火) 14:56:45.62
jane stypeのスレの内容(1〜1000レス)を表示するところって何のコントロールで表示してるんでしょうか?
915デフォルトの名無しさん:2013/02/05(火) 15:06:46.77
>>909
仰る通りUIスレッドからでした
ただ、Invokeは同期ですよね?
DBアクセスみたいな思い処理を別スレッドにやらせたかったんですが、
Invokeだと、UIスレッドでDBアクセスされちゃいませんか
916デフォルトの名無しさん:2013/02/05(火) 15:10:01.44
>>915
いや元々UIスレッドで実行してんだろ
BeginInvokeは別スレッドからUIスレッドに処理を移譲するときに使うんだぞ?勘違いしてないか
917デフォルトの名無しさん:2013/02/05(火) 15:11:56.30
別スレッドでやりたいならTaskでも使えばいいんじゃね
918デフォルトの名無しさん:2013/02/05(火) 15:32:40.32
>>916
そうだったんですか
壮大な勘違いしてました
ありがとうございました

>>917
ためしてみます
ありがとうございました
919デフォルトの名無しさん:2013/02/05(火) 16:12:27.72
回線の切断をまともに検出しようとすると、面倒だ。
920910:2013/02/05(火) 21:02:59.40
サーバにKeepAliveパケット発行機能があったのですが
クライアントはデフォルトで、サーバからのKeepAliveパケットに
返信できるのでしょうか?それとも、クライアント側でも
SetSocketOptionで、SocketOptionLevel.TcpのSocketOptionName.KeepAlive
を有効にする必要がありますか?
もしくは、有効にしてしまうと、サーバに対してKeepAliveパケットを
能動的に送信してしまう(レスポンスがこないと切断検出)のでしょうか?
921デフォルトの名無しさん:2013/02/05(火) 21:08:17.67
カウンターストライクオンラインみたいなFPSに使われる通信方式ってソケットですか?
なんでリアルタイムに何十人もつなげるんですか?
922デフォルトの名無しさん:2013/02/05(火) 21:13:34.30
そういう用途の通信方式にSocket意外になんかあんの?
それとも何のクラス使ってるかって話?(TCPClientとか・・・)
923デフォルトの名無しさん:2013/02/05(火) 21:15:15.42
UDPで、エラー処理とかを自分で実装するのでは?
924デフォルトの名無しさん:2013/02/05(火) 21:38:03.74
たぶんソケットだと思うけど
それよりローレベルな自作APIな可能性もあるな
リアルタイムにいっぱいつながるのは、パケット受ける口が複数あるから
あとはそれぞれが、素早く順番に処理してるから、人間には複数同時にみえるだけ
925デフォルトの名無しさん:2013/02/05(火) 21:49:24.31
別に物理層を直に扱ってもいいのよ
やれるなら、だけど
926910:2013/02/05(火) 22:12:03.75
910ですが、解決しました。
TCP keepaliveパケットは、シーケンス番号(-1)と空データのACKパケット
なので 、クライアントは、普通に(TCP仕様として)ACK返送するので
サーバのみにkeepalive機能があればよい。ということらしいです。
927デフォルトの名無しさん:2013/02/05(火) 22:14:39.55
>>926
天才だな
928デフォルトの名無しさん:2013/02/05(火) 23:16:39.03
パソコンがネットにつないでいるときにどういうデータを送受信しているか取得したいんですが何を使うとできますか?
929デフォルトの名無しさん:2013/02/05(火) 23:33:32.94
>>928
スニファーって製品があるから買うといいと思うよ

あとここはC#の質問スレだからね
930デフォルトの名無しさん:2013/02/05(火) 23:57:13.33
ちがいます
C#でやりたいんです
931デフォルトの名無しさん:2013/02/06(水) 00:42:36.54
どのレベルの機能が欲しいのかわからないけど
C# raw socket でググれば回答のひとつになるかな。
932デフォルトの名無しさん:2013/02/06(水) 02:59:40.51
WinPcapとかSharpPcapとかを使うという方法もあるみたい
933デフォルトの名無しさん:2013/02/06(水) 07:02:49.68
raw socketはIPレベル winpcapはイーサレベル
934デフォルトの名無しさん:2013/02/06(水) 07:41:15.54
raw socketってVistaからMSがdenyしちゃったから実質pcapの類に頼るしか
935デフォルトの名無しさん:2013/02/06(水) 08:05:16.46
え?俺7で普通に使ってるけど
Vistaの送信側は不具合でキャプチャできないみたいだけど
936デフォルトの名無しさん:2013/02/06(水) 08:09:53.81
メインスレッドでサブスレッドのフラグが立つまで
whileでループしてるとサブスレッドはフラグ立てれないんだね。
937デフォルトの名無しさん:2013/02/06(水) 08:43:36.10
は?日本語で頼む
938デフォルトの名無しさん:2013/02/06(水) 08:47:47.50
どうせサブスレッドと思っていた所がFormsのUIスレッドでブロックしてるというオチ
939デフォルトの名無しさん:2013/02/06(水) 08:53:18.82
いっぽうのスレッドがひたすらフラグを見てると
もういっぽうのスレッドはフラグを立てられないんですね。
初めて知りました。
940デフォルトの名無しさん:2013/02/06(水) 08:53:31.92
>>936
サブスレッドの初期化・処理完了までフラグ監視して待つって事でしょ?
volatileつけた?ループにsleep入れた?
効率悪からMonitorやら使った方がいいよ
941デフォルトの名無しさん:2013/02/06(水) 08:57:05.26
>>940
sleep入れたらいけます。
volatileとやらをつけて試してみます。
942デフォルトの名無しさん:2013/02/06(水) 09:07:23.88
>>940
あら、Monitorというのがいいですね。これでやります。
943デフォルトの名無しさん:2013/02/06(水) 12:06:25.95
ある条件が満たされるまで待機するならこれでいい。
sleepもmonitorもいらない。
SpinWait.SpinUntil( () => hogeflag );
944デフォルトの名無しさん:2013/02/06(水) 12:08:54.25
それやるんならWaitHandleでも使っとけ
945デフォルトの名無しさん:2013/02/06(水) 12:12:25.65
アイワナっていう世界で超有名なゲームがあるんですけど
ゲームを作る定番って言ったらXNAじゃないですか
検索してもXNAが良く引っかかると思うのでそう思うんです
でも作ったゲームは配布目的なのでXNAが入ってない環境だと動かせないんですよね
946デフォルトの名無しさん:2013/02/06(水) 12:20:50.72
sharpDXがいいよ
947デフォルトの名無しさん:2013/02/06(水) 12:28:38.20
そこはMonoGameでしょ
3D使えたかしらんけど
948デフォルトの名無しさん:2013/02/06(水) 13:05:19.35
マイクロソフト、ゲーム開発環境「XNA」の開発を終了
http://www.inside-games.jp/article/2013/02/02/63507.html
949デフォルトの名無しさん:2013/02/06(水) 13:12:05.77
ええええええええええええ
950デフォルトの名無しさん:2013/02/06(水) 13:13:11.49
よかった勉強しとかなくて
951デフォルトの名無しさん:2013/02/06(水) 13:50:05.38
情報がおせえな
952デフォルトの名無しさん:2013/02/06(水) 15:31:28.58
>死にゆく技術を学びたいと思う人はいません。

今のMSじゃC#も近い将来なりうるな
953デフォルトの名無しさん:2013/02/06(水) 15:36:19.44
たった6年で切り捨てるとかありえねぇ
技術者が育ってこれからって時期だろうにマイクロソフト系は怖くてもう無理
C#さようなら
954デフォルトの名無しさん:2013/02/06(水) 15:37:40.41
もう帰ってくんなよ
955デフォルトの名無しさん:2013/02/06(水) 15:38:41.65
MSがつぶれようとどうしようと
C#はMonoを中心に発展していくわな
956デフォルトの名無しさん:2013/02/06(水) 15:41:01.99
Direct3Dの入門にはよかったよ。
おかげでスムーズにsharpDXに移行できた。
957デフォルトの名無しさん:2013/02/06(水) 15:43:17.15
>>955
ないない
あんなんおまけ
わざわざMonoでC#なんて普通に別の言語やったほうがいいわ
958デフォルトの名無しさん:2013/02/06(水) 15:47:27.24
本格的にMSに見切りつける時期が来たか
959デフォルトの名無しさん:2013/02/06(水) 16:00:16.17
Unityがあるしsonyとかも使ってるからゲーム開発じゃ超強いのは変わらんよ
ニーズは多いんだからMSはスマホなどのハイスペ組み込み用のCLRをオープンソースで出すべき
そうすりゃ今や金の亡者と化したMonoなんか即死だわ
MFは制限きつすぎるしMSの商売としてはVSさえ売れれば無問題なんだし
960デフォルトの名無しさん:2013/02/06(水) 16:00:27.79
sharpDXで円を表示するサンプルをお願いします
961デフォルトの名無しさん:2013/02/06(水) 16:15:03.22
C#無くなったらvitaちゃんがとどめ刺されちゃう
962デフォルトの名無しさん:2013/02/06(水) 16:26:13.82
>>957
ほとんどVSと変わらんIDEもある
コンパイラもライブラリもある
ソースも公開されてる
そもそもMSがいらない
963デフォルトの名無しさん:2013/02/06(水) 16:32:12.45
あの粗悪品をVSと変わらんと言えるのなら
もはやnotepadでも十分なレベル
964デフォルトの名無しさん:2013/02/06(水) 16:38:05.26
>>961
あれ一体何がしたかったんだろうな
素直にUnityと契約すれば一瞬でソフト大量に揃うのに
わざわざUnityと同じC#のUnityと似たような開発環境の劣化版作るとか
965デフォルトの名無しさん:2013/02/06(水) 16:43:10.04
WindowsとセットでなくなったC#なんてゴミだろ
MSに捨てられたらそれまで
966デフォルトの名無しさん:2013/02/06(水) 16:48:10.88
>>963
エクリプスとかよりゃ遥かにマシだが
つかったことあんのかホントに
967デフォルトの名無しさん:2013/02/06(水) 16:54:40.86
Mono(Unityも含め)が流行るのは結構なことだが
BCLやCLRやC#の仕様はしっかりMSが単独で支配していてほしい
周りの声聞くと悲惨なことになるのはJavaが証明してくれたからな
968デフォルトの名無しさん:2013/02/06(水) 16:56:30.38
>>965
つかC#は続くだろ。XNAが終了なだけで。
もうすぐ次世代xbox用の開発環境が発表されるだろうが、
C#以外の選択肢はあり得ない。
969デフォルトの名無しさん:2013/02/06(水) 17:17:15.75
C#はすでに10年以上続いてる
970デフォルトの名無しさん:2013/02/06(水) 17:34:31.71
すいませんC#からmonoに移行する場合って、コードの修正は不要ですか?
971デフォルトの名無しさん:2013/02/06(水) 17:39:48.59
そのコードによる以上。

それはさておき、XNAって最近聞かないな…とか思ったら終わってたのかよw
C#自体は、終わること当分ないだろうけど、日本じゃWPFが終わっても不思議じゃないなw
972デフォルトの名無しさん:2013/02/06(水) 17:46:40.53
え、monoって互換性100%じゃないってことですか
973デフォルトの名無しさん:2013/02/06(水) 18:01:13.81
おまえの言う互換性って何?
974デフォルトの名無しさん:2013/02/06(水) 18:07:45.85
c#とmonoで同じコードで動かないんですか
コードによるとはどのようなコードの事を指しているのですか

using System;
class PrintTest
{
public static void Main()
{
Console.WriteLine("test");
}
}
975デフォルトの名無しさん:2013/02/06(水) 18:27:24.52
それぐらいなら問題なく動くだろうが、
System.Windows.Formsとか使ってたら別問題だろう。
976デフォルトの名無しさん:2013/02/06(水) 18:40:33.71
うわあってことはXNAが切られた今C#も切られるかもしれないから
今のうちにmonoに移行するのが最善かもしれませんね
本当XNAは勉強しなくて良かったと思います
977デフォルトの名無しさん:2013/02/06(水) 18:51:00.18
C#も切られる?え?
978デフォルトの名無しさん:2013/02/06(水) 18:54:52.38
無駄な勉強ってないと思うんだ
979デフォルトの名無しさん:2013/02/06(水) 19:06:31.83
Monoに移行した先に待っているのもC#なんだが…
980デフォルトの名無しさん:2013/02/06(水) 20:05:01.54
vitaとかsonyネタ出すと粘着されるってのはほんとだったな
981デフォルトの名無しさん:2013/02/06(水) 20:24:07.70

粘着質の例
982デフォルトの名無しさん:2013/02/06(水) 20:27:49.97
なんの話かと思ったらこれか
>>964
ってかあれもC#だよな
983デフォルトの名無しさん:2013/02/06(水) 20:29:30.78
Microsoftはすごい勢いでUnityを推してるよね
米国だとUnityCampみたいなイベントを主催したりして
984デフォルトの名無しさん:2013/02/06(水) 20:38:37.44
ワカチコワカチコ
985デフォルトの名無しさん:2013/02/06(水) 23:19:35.42
UnityVSが公式になったりして
986デフォルトの名無しさん:2013/02/06(水) 23:21:12.89
ASP.NETの開発チームはjQueryも開発に参加してるらしいからあながち的外れでもないかも
987デフォルトの名無しさん:2013/02/06(水) 23:21:40.15
Unityが今のMonoベースからMS CLRベースに乗り換えたら面白いのに
Monoは調子乗りすぎ
988デフォルトの名無しさん:2013/02/06(水) 23:29:14.31
ASP.NET MVC試してみたらオープンソースのモジュールに依存しまくりでびっくりしたわ
MSらしくないw
989デフォルトの名無しさん:2013/02/06(水) 23:34:04.60
990デフォルトの名無しさん:2013/02/07(木) 01:15:24.08
ASP.NET MVCそのものがオープンソースになったんじゃなかったっけ
991デフォルトの名無しさん:2013/02/07(木) 01:29:44.89
もともとGPLと馬が合わないだけで、
オプソ全体を毛嫌いしてたわけじゃないな。
ライセンスの問題さえ解決できたらOKなんじゃない。
992デフォルトの名無しさん:2013/02/07(木) 06:23:37.97
>>970
>すいませんC#からmonoに移行する場合って、コードの修正は不要ですか?

monoもC#だから質問がおかしい。
「.NETからmonoに移行」って意味ならわかるが。

ちなみにmonoは.NET3.5相当、でもWindows UI関連は
サポートしてない。
993デフォルトの名無しさん:2013/02/07(木) 07:05:58.29
t
994デフォルトの名無しさん:2013/02/07(木) 10:54:43.00
つぎさっさと立てろや
995デフォルトの名無しさん:2013/02/07(木) 16:19:30.84
お前がたてろ
996デフォルトの名無しさん:2013/02/07(木) 17:16:32.10
糞スレ梅
997デフォルトの名無しさん:2013/02/07(木) 17:17:08.46
うめ
998デフォルトの名無しさん:2013/02/07(木) 17:31:23.95
糞スレいらねーだろ
相談室と統合しちまえよ
999デフォルトの名無しさん:2013/02/07(木) 17:35:55.45
きえろ
1000デフォルトの名無しさん:2013/02/07(木) 17:36:53.59
どうせどっちも同じ奴が見てんだろ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。