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

1デフォルトの名無しさん
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問。
質問者自身なんだか意味がよく分からない質問。
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて、他スレ・他板へ行くことを勧められることがあります、ご了承下さい。

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

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

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

■関連スレ
C#, C♯, C#相談室 Part82
http://toro.2ch.net/test/read.cgi/tech/1386763696/

■コード貼るなら↓使ってください
http://ideone.com/
2デフォルトの名無しさん:2014/04/05(土) 22:25:28.14 ID:dnqr6Oke
>>1
3デフォルトの名無しさん:2014/04/05(土) 22:57:18.91 ID:HfzhZYKB
>>1
おつ!
4デフォルトの名無しさん:2014/04/05(土) 23:00:41.23 ID:4PQFLBxx
>>1おっさん
5前971:2014/04/05(土) 23:34:54.89 ID:fZTxo1xf
OnBeforeNavigateで調べたんですがBeforeNavigateはNET1.1ではあるようなんですがC#2010では見つかりませんでした
http://vsug.jp/tabid/63/forumid/45/threadid/9273/scope/posts/Default.aspx
これはVC#2005みたいですが、VC#2010でもNavigatingイベントを使うんですか?
あと基底コンストラクタに渡す引数がないのに明示的に:base()を使う必要ってあるんですか?
6デフォルトの名無しさん:2014/04/05(土) 23:47:54.72 ID:dnqr6Oke
BeforeNavigateは別のクラスAxWebBrowser使うときの話
うん
別にない
7デフォルトの名無しさん:2014/04/05(土) 23:52:08.44 ID:dnqr6Oke
あ、そこに書いてるようにNavigatingで必要な情報足りないなら
やっぱりDWebBrowserEvents2::BeforeNavigate2とか使う必要があるよ
8デフォルトの名無しさん:2014/04/06(日) 12:13:20.73 ID:B8PUb7p+
Visualはもうないんだから外せよ
9デフォルトの名無しさん:2014/04/07(月) 17:50:25.12 ID:6uHQfqYj
フォームが非アクティブになった時に、フォームとその子コントロールの明度を一括で下げたいんですがどうすればいいのでしょうか
10デフォルトの名無しさん:2014/04/07(月) 17:59:07.70 ID:3UJhq+PE
WinFormにそんなシャレオツ機能は存在しない
フォームのクライアント領域内ならともかくタイトルバーとかはシステム側の領域だし
FormをDisableにすれば一部の彩度は下がるけどな
11デフォルトの名無しさん:2014/04/07(月) 20:53:56.62 ID:wKuIb640
シャレオツw
12デフォルトの名無しさん:2014/04/07(月) 23:51:01.19 ID:6uHQfqYj
>>10
透明度下げることで対処しようと思います
ありがとうございました
13デフォルトの名無しさん:2014/04/08(火) 22:15:26.21 ID:cT60U4kI
Form上にコントロールを1000個程度配置してスクロールさせると、フリーズします。
WindowsXP, 7 ではスムーズに動いていたのが、Windows8.1にした途端起き始めました。

1000個というのはPictureBoxなのですが、これをButtonに変更して1000個表示するだけの
テスト用アプリを作ってもやはり発生します。

グラボのドライバを最新にしたり、システムのプロパティの視覚効果などを変更してみても
改善されません。

これが自分のPCの固有の問題か、Win8.1に共通の現象かを切り分ける方法ってありますか?
1000個も配置するという設計がおかしいのでしょうが…
14デフォルトの名無しさん:2014/04/08(火) 22:19:41.79 ID:fmWss6Bj
1000個も配置するのが問題
15デフォルトの名無しさん:2014/04/08(火) 22:58:41.96 ID:cT60U4kI
やっぱりそうですよね
16デフォルトの名無しさん:2014/04/09(水) 01:42:52.07 ID:Ks/JGiSE
わらた
17デフォルトの名無しさん:2014/04/09(水) 01:56:19.82 ID:SM981zJv
>>13 試しに動作確認してしんぜよう。ソース送レ
18デフォルトの名無しさん:2014/04/09(水) 02:40:54.14 ID:4evLHR2U
>>17
普通にフォームのプロジェクト作成して、ロードイベントに以下を書いて、

private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 1000; i++)
{
Button btn = new Button();
btn.Top = i * 24;

this.Controls.Add(btn);
}
}

それからForm1のAutoScrollをtrueにしただけなのですが…。
19デフォルトの名無しさん:2014/04/09(水) 10:40:06.97 ID:+JqWH5tw
>>13
安直だが、FrameWorkを両方4.5で動かしてみるとか
20デフォルトの名無しさん:2014/04/09(水) 15:41:18.28 ID:fBP+BGwa
重くしないとハードが売れない
21デフォルトの名無しさん:2014/04/10(木) 12:20:18.64 ID:HRaWKIoy
WPFならハンドル食わないらしいから試してみれば?
22デフォルトの名無しさん:2014/04/10(木) 15:04:18.17 ID:nYklgNp5
コンボボックスの値を変更したら、もう一つのコンボボックスと値を交換しようとしているのですが、途中からおかしくなります。
参照している値を間違えてしまっているのでしょうか?よろしくお願いします。

ComboBox[] comBox = new ComboBox[2];
private void Form1_Load(object sender, EventArgs e){
comBox[0] = comboBox1;
comBox[1] = comboBox2;
for (int i = 0; i < 2; i++)
comBox[i].DropDownClosed += new EventHandler(comBox_DropDownClosed);

for (int i = 0; i < 2; i++){
comBox[0].Items.Add(i);
comBox[1].Items.Add(i);
}
comBox[0].SelectedIndex = 0;
comBox[1].SelectedIndex = 1;
}

private void comBox_DropDownClosed(object sender, EventArgs e){
int index = -1;
for (int i = 0; i < comBox.Length; i++)
if (comBox[i].Equals(sender) == true){
index = i;
break;
}

int intSel = Convert.ToInt32(comBox[index].SelectedText); // 選択していた番号
int intDest = Convert.ToInt32(comBox[index].SelectedItem); // 変更先

comBox[intDest].Text = comBox[intSel].Text; // 入れ替える
}
23デフォルトの名無しさん:2014/04/10(木) 19:53:41.63 ID:b/gE/MKY
>>21
VirtualizingStackPanelとか使えば、そもそも1000個もいらないんだけどな。
24デフォルトの名無しさん:2014/04/10(木) 20:45:40.51 ID:mP4FkQtt
ナニコレ
WPF?
25デフォルトの名無しさん:2014/04/11(金) 09:09:51.97 ID:+5PGJ+FS
VSのC#です。
26デフォルトの名無しさん:2014/04/12(土) 13:36:56.16 ID:QXbrFFBS
C#で音声認識を扱いたいんですがどれをどう使えばいいのかさっぱりわかりません
おすすめの方法があれば教えて下さい
27デフォルトの名無しさん:2014/04/12(土) 16:51:06.63 ID:K9bTN6Ty
>>26
無料のやつは、認識率悪くて使い物にならんよ。

本気でやりたいなら、
100万とかする業務用のソフト買いな。
28デフォルトの名無しさん:2014/04/12(土) 17:41:14.47 ID:9BhBrkhV
プログラマなら認識率がどれくらいか見当つくよな
IMEの誤変換なんて可愛いもの
そもそも一体何に使いたいのか
29デフォルトの名無しさん:2014/04/12(土) 19:14:54.67 ID:kHAj/7de
>>26
キーワードだけ教えてやる。
2文字目はSだ。
30デフォルトの名無しさん:2014/04/12(土) 19:24:50.54 ID:gqk0H39S
GoogleのAPIを叩く
31デフォルトの名無しさん:2014/04/12(土) 19:53:09.57 ID:kaC5V1Cc
日本版エシュロン。
32デフォルトの名無しさん:2014/04/12(土) 20:35:38.46 ID:rzyqPrtx
モサドに技術供与受けろや
33デフォルトの名無しさん:2014/04/12(土) 22:10:52.95 ID:NOz3Q708
Microsoft Speech Platform
34デフォルトの名無しさん:2014/04/13(日) 05:51:21.92 ID:VrI+9WRO
Microsoft Bob

ネーミングのセンスがさすがマイクロさんやな
35デフォルトの名無しさん:2014/04/13(日) 06:17:44.86 ID:qYmwgSBw
Robert!
Bob: Oh! That's me

Robert の別称
36デフォルトの名無しさん:2014/04/13(日) 11:13:57.20 ID:PYHY3KdE
「C#」は当初かなり違和感のある名前だったけどすっかり浸透しちゃったな
天下のMSがこの名前で出してコケたら大恥だった
D(笑)
37デフォルトの名無しさん:2014/04/13(日) 11:40:41.79 ID:Ughvqkdn
Microsoftはいつもネーミングが糞
comも.netも検索しにく過ぎ
38デフォルトの名無しさん:2014/04/13(日) 19:53:33.31 ID:x/KLDcUY
2009年にもなってGoとか名前をつけるどこぞに比べれば…まあどんぐりの背比べだな
39デフォルトの名無しさん:2014/04/13(日) 22:03:26.85 ID:JRCCH/EO
>>37
VB6の検索しにくさはガチ
40デフォルトの名無しさん:2014/04/13(日) 22:14:24.92 ID:Ughvqkdn
>>39
vb6はそもそも情報自体が少ないからね
さらにvb.netのせいで探しにくくなった
41デフォルトの名無しさん:2014/04/14(月) 03:59:00.92 ID:7M5WCkF4
練習として複数のPictureBoxに、高速で複数の画像を入れ替えまくってみたんですが
private void button1_Click(object sender, EventArgs e)
{
 Thread t = new Thread(new ThreadStart(loop));
 t.Start();
}
void loop(){
 for (int i = 0; i < 1000; i++)
 {
  pictureBox1.Image = mybmp[i % 3];
  pictureBox2.Image = mybmp[(i + 1) % 3];
  pictureBox3.Image = mybmp[(i + 2) % 3];
  Thread.Sleep(50);
 }
}
ときどき下のようなエラーが出ます。
これは、単純にPictureBoxの描画処理が終わらないまま次の描画を始めようとしたためでしょうか?
同一スレッド内の問題だからか、PictureBoxをlockしてみても改善しません。
実際この通りの動作をさせるわけではないですが、高速で画像を更新することはあると思うのでこのままだと気持ち悪い・・・。

>型 'System.InvalidOperationException' のハンドルされていない例外が System.Drawing.dll で発生しました
>追加情報:オブジェクトは現在他の場所で使用されています。
42デフォルトの名無しさん:2014/04/14(月) 04:40:22.32 ID:CBNE2ubH
threadからFormをいじろうとするとそうなるんじゃなかったか?

http://kawakawa2000.jugem.jp/?eid=55

こんなんだったかな
43デフォルトの名無しさん:2014/04/14(月) 05:56:06.53 ID:+kBgZJjN
回答: UIスレッド以外からコントロールに触んなボケェ
44デフォルトの名無しさん:2014/04/14(月) 13:35:26.08 ID:Rj6AhJf8
delegateで描画させた方がいいね
後はとりあえずPallarel.forでコントロール別に分けた方がマルチスレッドになって
タスクマネージャでCPU利用率見た時にとりあえず嬉しいw
4541:2014/04/14(月) 13:39:40.86 ID:7M5WCkF4
ありがとう、デリゲートとinvokeってここで使うのか。
ついでに、サンプルプログラムを見ているとthisが何を指しているかよくわからないことがあるんだけど
thisが何を指すか調べる方法ってあります?
46デフォルトの名無しさん:2014/04/14(月) 13:42:19.94 ID:CBNE2ubH
thisはその関数が走っている時の関数自身じゃないの?
classへの参照のようにも見えるけど、スレッド動いてるとスレッド自身になるよね
47デフォルトの名無しさん:2014/04/14(月) 13:44:54.89 ID:CBNE2ubH
例えばボタンの文字列をスレッドから書き換える
private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(loop));
 t.Start();
}
void loop()
{
//for (int i = 0; i < 1000; i++)
//{
// button1.Text = "new text";
// Thread.Sleep(50);
//}
SetText("New Text");
}
private delegate void SetTextCallback(string msg);

private void SetText(string msg)
{
if (button1.InvokeRequired)
{
Invoke((MethodInvoker)(()=> {
button1.Text = msg; // "Hello, world";
}));

return;
}

// 以下本来の処理
button1.Text = msg;
}
}
48デフォルトの名無しさん:2014/04/14(月) 13:47:28.80 ID:CBNE2ubH
あ、もちろん参照先のページにも書いてあったと思うけど、UIはスレッドセーフじゃないので
マルチスレッドで動かしても、勝手にMutex掛かるよ
49デフォルトの名無しさん:2014/04/14(月) 14:32:41.71 ID:7M5WCkF4
えーと、thisについてよくわからないのは・・・
例えば>>47のInvokeってthisが省略されてますよね?
この場合、thisはFormを指してるのでいいのかな・・・というのを確認する方法ってあるかなと。
慣れると自明に思えるのかもしれませんが、まだ戸惑うことが多いので確認方法があるとうれしいのです。
50デフォルトの名無しさん:2014/04/14(月) 14:33:20.46 ID:+kBgZJjN
>>48
>thisはその関数が走っている時の関数自身じゃないの?
>classへの参照のようにも見えるけど、スレッド動いてるとスレッド自身になるよね

初心者は答えなくていいよ。マジで。
51デフォルトの名無しさん:2014/04/14(月) 14:35:58.41 ID:+kBgZJjN
>>49
クラスメソッド内のthisはそのクラスのインスタンスを指してるんだよ。
52デフォルトの名無しさん:2014/04/14(月) 17:30:10.70 ID:CBNE2ubH
初心者が間違った答えをしてもいいじゃん
お前みたいなでかいツラされて不快になるよりマシ
5341:2014/04/14(月) 17:31:10.51 ID:7M5WCkF4
ありがとう、重ねて質問失礼します。
Invokeを利用することでエラーは回避できました。
ですが、スレッド実行中にフォームを閉じるとエラーが起こるようになりました。
this.IsHandleCreatedやthis.IsDisposedでフォームの存在を確かめてからInvokeを実行させようとしてみたのですがうまくいきません。
どのように回避したらいいのでしょうか。
下は、>>41のloop()内にInvokeを反映させたものです。
ループ実行中にフォームを閉じると、
>追加情報:破棄されたオブジェクトにアクセスできません。
のエラーが出ます。

for (int i = 0; i < 1000; i++)
{
 if(this.IsDisposed)break;
 this.Invoke((MethodInvoker)delegate()
 {
  pictureBox1.Image = mybmp[i % 3];
  pictureBox2.Image = mybmp[(i + 1) % 3];
  pictureBox3.Image = mybmp[(i + 2) % 3];
 });
 Thread.Sleep(50);
}
5441:2014/04/14(月) 17:40:58.42 ID:7M5WCkF4
むしろ、スレッド実行中にフォームを閉じさせない、
あるいはフォームのデコンストラクタでスレッド実行を停止するのが正しい方向性なのかな?
55デフォルトの名無しさん:2014/04/14(月) 17:59:22.80 ID:GRbiX2xU
>>54
スレッド実行を停止させるとデッドロックするな
56デフォルトの名無しさん:2014/04/14(月) 18:58:37.52 ID:+mkYAk9j
スレッドは理解があやふやな奴が使うとバグ発生機になるな
57デフォルトの名無しさん:2014/04/14(月) 19:41:21.08 ID:GRbiX2xU
>>56
ガチで1次元(時間軸)上のスパゲッティコードが出来上がるw
今回の例でもInvokeの仕組み、WindowsのGUIモデル(少々)、volatile、ロックあたり押さえといて欲しい
58デフォルトの名無しさん:2014/04/14(月) 21:11:44.44 ID:xiJSquwx
Windows7 api codepack使って音楽ファイルのタグ拾っていたんだが、
謎のAccess Violationが発生して3日悩んだが
なんとなく32bitでコンパイルしたら治りやがった
59デフォルトの名無しさん:2014/04/15(火) 09:10:47.46 ID:eg/wih/V
x86にしてみるとか最適化を外してみると、謎の不具合が解消されることが稀に良くある
60デフォルトの名無しさん:2014/04/15(火) 09:14:04.10 ID:iSGwDvUA
>初心者が間違った答えをしてもいいじゃん
>お前みたいなでかいツラされて不快になるよりマシ

これは酷い
61デフォルトの名無しさん:2014/04/15(火) 09:52:27.96 ID:b3iAuu/a
モヒカンが聞いたら大変なことになるな
62デフォルトの名無しさん:2014/04/16(水) 09:14:38.36 ID:Wy9kGQMK
WORDの文章にフォームやコントロールを画像として張り付けたいのですが、何か良い方法はありますでしょうか?

http://support.microsoft.com/kb/316384/ja
このサイトを参考に作成したのですが、画像の作成や貼り付けはありません。

http://msdn.microsoft.com/ja-jp/library/ms178792.aspx
msdnになりますと、画像ファイルの読み込みのみあります。

コントロールを一度画像ファイルに保存してから読み込めば良いのでしょうが、
それでは毎回画像ファイルを作成する必要があり、あまりスマートでは無いので
直接画像としてコントロールを張り付け出来るような方法がありましたら、よろしくお願いします。
63デフォルトの名無しさん:2014/04/16(水) 09:39:36.36 ID:8awiXMyd
クリップボード経由とか
docxならOpen XML SDK使うとかで埋め込めるだろうけどまずフォーマット理解するところからになるな
64デフォルトの名無しさん:2014/04/16(水) 09:59:48.79 ID:jh5A/a7z
Word文書じゃないけど

using( Bitmap bmp = new Bitmap( this.Width, this.Height ) )
{
 this.DrawToBitmap( bmp, new Rectangle( Point.Empty, this.Size ) );
 Clipboard.SetDataObject( bmp );
 RichTextBox rb = new RichTextBox();
 rb.Paste();
 rb.SaveFile( @"C:\Users\hoge\Desktop\test.doc" );
}

とか。位置指定とか考えだすと面倒くさくて死ぬるな
65デフォルトの名無しさん:2014/04/16(水) 10:04:25.73 ID:jh5A/a7z
>>62
つか
http://msdn.microsoft.com/ja-jp/library/ms178792.aspx
のリンク先見てにSelectionオブジェクトを取得してPasteすればクリップボード経由で挿入できるな
66デフォルトの名無しさん:2014/04/16(水) 11:45:22.88 ID:wJUsRdtr
>>59
「良く」なのか「稀」なのかはっきりせい!
と、突っ込むところまでが遠足
67デフォルトの名無しさん:2014/04/16(水) 12:10:13.15 ID:Wy9kGQMK
>>63-65
クリップボード経由で出来ました、ありがとうございます。
68デフォルトの名無しさん:2014/04/16(水) 18:41:47.03 ID:o1DhIOoD
VisualC#2010ですが
Form1.cs[デザイン]でフォームのサイズを設定してその数値を
プロパティのSystem.Drawing.Sizeに入れても数値がズレるのは何故なのでしょうか。
ClientSizeをSystem.Drawing.Sizeにバインドしています。
69デフォルトの名無しさん:2014/04/16(水) 18:57:54.81 ID:RT2B6Kf1
>>68
日本語でおk
70デフォルトの名無しさん:2014/04/16(水) 19:23:09.06 ID:4/4/+OZx
ListBoxにマイコンピュータの一覧を表示させる方法ありませんか?
71デフォルトの名無しさん:2014/04/16(水) 19:40:31.94 ID:fX4bKwvJ
あります
72デフォルトの名無しさん:2014/04/16(水) 19:50:27.85 ID:o1DhIOoD
>>69
フォームデザインの画面でフォームのサイズを調節してそのサイズの数値を
アプリケーション設定項目に入力してもフォームのサイズが同じにならないのです
アプリケーション設定項目のサイズの数値とフォームデザイン画面のプロパティのサイズの数値が一致せず、
片方をいじると片方の数値が変化してしまいます
73デフォルトの名無しさん:2014/04/16(水) 19:56:12.90 ID:yQi7dKzk
言わんとしてることは分かるが
ClientSizeってミソなんだろ
デザイナに表示されてるのは非クライアント領域も含んでると
74デフォルトの名無しさん:2014/04/16(水) 20:10:32.77 ID:s5kasKNy
それもあるが>>72はそもそもアプリケーション設定が何なのか分かってないとしか
75デフォルトの名無しさん:2014/04/16(水) 20:40:31.81 ID:jh5A/a7z
>>72
Form.SizeとClient.Sizeの違いとか
76デフォルトの名無しさん:2014/04/16(水) 20:41:11.58 ID:jh5A/a7z
既出だったなごめんなさい
77デフォルトの名無しさん:2014/04/16(水) 22:27:57.36 ID:+VUax7lD
マイコンピュータの一覧って事はマイコンピュータが複数あると
いう謎環境なのか
78デフォルトの名無しさん:2014/04/16(水) 23:02:59.71 ID:4/4/+OZx
分かる人いなさそうだね残念
79デフォルトの名無しさん:2014/04/16(水) 23:07:45.45 ID:+VhpgL3Y
ドライブの一覧とは違う情報を取りたいの?
それならたぶん、API叩かないといけない
80デフォルトの名無しさん:2014/04/16(水) 23:17:51.65 ID:4/4/+OZx
>>79
散々ググった結果ShellAPIを使えば出来るんじゃないかなというのは分かったんだけど
難しくて何かいい方法あったりしないかなと思って質問したんだよね

自分で試行錯誤してみますありがとう
81デフォルトの名無しさん:2014/04/17(木) 00:30:58.60 ID:yVkbU7bN
WMIでいけないか?
82デフォルトの名無しさん:2014/04/17(木) 10:16:41.51 ID:3ZJR1sBx
ここみるよろし
http://msdn.microsoft.com/ja-jp/magazine/dd861346.aspx

SHGetKnownFolderItemでマイコンピューターを表現するIShellItem取得

IShellItem.BindToHandlerでそのIShellFolderを取得

IShellFolder.EnumObjectsでIEnumIDList取得して、IEnumIDListで内容を列挙
83デフォルトの名無しさん:2014/04/17(木) 10:52:57.28 ID:s16FfDLr
NumericUpDownでHexaDecimal=trueにして
小文字のアルファベットを入力中にタイマーなどでその値を取得すると
小文字が大文字に変換されます。

そこまでは良いのですが、同時にカーソルがいちばん左に移動してしまいます。
するとabcdと打ったつもりが、DCBAとなってしまいます。

小文字が大文字に変換されたときにカーソルを移動しないようにするには
どうすれば良いですか?

何かをオーバーライドすれば良いのでしょうか?
84デフォルトの名無しさん:2014/04/17(木) 11:23:17.40 ID:CRM5LnHb
助けてください。

弥○なんかの販売管理ソフトで、伝票入力画面の下部にあるリスト部分って
入力すると自動的に(しかも複数テキストボックス&複数行)追加されますが、
ああいう動作を実現するにはどのコントロールを使えばいいんですか?
85デフォルトの名無しさん:2014/04/17(木) 11:25:43.70 ID:CRM5LnHb
>>84 の言語書き忘れました。C#です。
86デフォルトの名無しさん:2014/04/17(木) 11:25:58.93 ID:gmrG8BhO
標準コントロールには存在しない
87デフォルトの名無しさん:2014/04/17(木) 11:31:42.82 ID:CRM5LnHb
FlowLayoutPanelとかTableLayoutPanelを駆使して、
その中にTextBox配置して、みたいな感じで方向性はあってますかね?

この方法をやろうとして数時間躓いてます。
88デフォルトの名無しさん:2014/04/17(木) 11:44:30.79 ID:CRM5LnHb
>>86
自己解決というか、レスをもらったことで少し理解しました。
こういうのを実現するライブラリが販売されてたんですね。
導入を検討しようと思います。
ありがとうございました。
89デフォルトの名無しさん:2014/04/17(木) 12:09:39.88 ID:cV35zYaX
>>81-82
ありがとう参考にします
90デフォルトの名無しさん:2014/04/17(木) 13:07:07.79 ID:umXeCPzC
>>87
複数テキストボックスをユーザーコントロールにまとめてやればFlowLayout案でも簡単だと思う
91デフォルトの名無しさん:2014/04/17(木) 13:27:22.33 ID:TvKM2fdI
>>84
Visual Basic Power PacksのDataRepeater コントロールはどうだろう
92デフォルトの名無しさん:2014/04/17(木) 19:52:18.24 ID:WDbWaLnY
//コマンドラインを配列で取得する
string[] cmds;
cmds = System.Environment.GetCommandLineArgs();
http://dobon.net/vb/dotnet/programing/commandline.html

フォームとコマンドプロンプトの両方で使えるようにしたいのですが、
フォームは正常に動作して、コマンドプロンプトの時で容量もほとんど使わないのにメモリ不足って出るのは、下のが原因と考えて良いのでしょうか?

大容量の RAM が搭載されていると、メモリ不足を示すエラー メッセージが表示される
http://support.microsoft.com/kb/253912/ja
93デフォルトの名無しさん:2014/04/17(木) 20:14:05.96 ID:3ZJR1sBx
Windows2000以降のコマンドプロンプトの話なら関係ないだろ

他の部分にバグがあるんだろ
ミニマムコードで試してみそ
94デフォルトの名無しさん:2014/04/17(木) 20:51:33.80 ID:BiFRjuqF
http://www.nicovideo.jp/watch/nm6049209
この動画を落としたswfファイルをフォームに貼り付けた
Shockwave Flash Objectで再生できないのはなぜなのでしょうか?
コードはこんな感じです。
axShockwaveFlash1.LoadMovie(0, @"f:\test.swf");
axShockwaveFlash1.Play();
95デフォルトの名無しさん:2014/04/17(木) 21:09:02.94 ID:WDbWaLnY
>>93
ありがとう。
System.IO.Path.GetDirectoryName(strCmd[0]);
で、コマンドプロンプトだとフォルダ名が取得出来無かったから、C:\に書き込もうとしてエラーになってた。
96デフォルトの名無しさん:2014/04/17(木) 21:20:50.59 ID:umXeCPzC
それがなぜメモリ不足になるんだ?
97デフォルトの名無しさん:2014/04/17(木) 21:36:04.77 ID:WDbWaLnY
最初に中の処理だけ外したらメモリ不足ってエラーが出たから、これだと思い込んでた・・・。
あとはコントロール配列にしてたくらいだけど、
イベントの追加とかはコマンドプロンプトでは関係ないからメモリ不足の表示って出る物かな?
98デフォルトの名無しさん:2014/04/17(木) 21:44:36.61 ID:N1Srpcxj
まず、エラーってなんのこと?
例外がでるんなら、どの位置ででてるかわかるだろ
99デフォルトの名無しさん:2014/04/18(金) 06:55:54.45 ID:gGWuEQS3
なぜメモリ不足になる、で思い出したが、Image.FromFileで
ファイルのイメージ形式が有効ではありません。
または
GDI+ はファイルのピクセル形式をサポートしません。
の場合、OutOfMemoryExceptionが発生する
ってのも意味不明
http://msdn.microsoft.com/ja-jp/library/stf701f5%28v=vs.110%29.aspx
100デフォルトの名無しさん:2014/04/18(金) 07:23:17.77 ID:xhIZwZfQ
それはGDI+がE_OUTOFMEMORY返してくるから
101デフォルトの名無しさん:2014/04/18(金) 07:54:35.47 ID:gGWuEQS3
誤解させてすまん
根っこが意味不明なだけでそれは知ってる
102デフォルトの名無しさん:2014/04/18(金) 08:18:16.94 ID:5ZSBe340
そりゃメッセージの通りでGDI+で読み込めない形式のファイルを読もうとしたんだろ
WPFのImaging APIを試してみては
103デフォルトの名無しさん:2014/04/18(金) 09:34:42.55 ID:2myBQDOJ
>>90
ありがとうございます。
実は、なんとかFlowLayoutで実現できちゃいました。かなりめんどくさかったですが。
でもユーザーコントロールって知らなかったので、一つ賢くなりました。
たしかにこれを使った方が簡単そうな気がします。
試してみますね。
104デフォルトの名無しさん:2014/04/18(金) 13:52:00.58 ID:VeXCOOSA
>>99
イメージサイズの算出に関わる部分のヘッダが壊れてて異常値を返すんじゃね
105デフォルトの名無しさん:2014/04/18(金) 16:32:12.19 ID:OieI8ueO
モニタの最大解像度が変わると、フォームのサイズはそのままでコントロールのサイズだけ変わってしまいます。
AutoScaleはFalse、AnchorはTop,Leftになっているのですが、
他に止める為に確認するところはありますでしょうか?
106デフォルトの名無しさん:2014/04/18(金) 18:20:17.89 ID:nOqcQsid
>>105
言ってる事がよくわからんがAnchorをTop left Right Bottomにしてみ
107デフォルトの名無しさん:2014/04/18(金) 19:19:21.02 ID:VWFZLBWt
今のモニタって最大解像度を変更できるのか
なにそれECOモード?w

冗談はさておき、何言ってるか分からないからコード晒してくれ
108デフォルトの名無しさん:2014/04/18(金) 20:20:03.91 ID:xLsMteBI
DPIのことかな
109デフォルトの名無しさん:2014/04/18(金) 20:20:30.41 ID:RJoHb8Nd
DPIの話かな?
110デフォルトの名無しさん:2014/04/19(土) 08:56:53.25 ID:F+1f3Ibj
なんで未だにUI単位系mmにしないんだろう?
111デフォルトの名無しさん:2014/04/19(土) 12:44:18.87 ID:wssCKxB6
そりゃ物理的なDPIが違っても同じ表示にするためだろ
40型FHDと24型FHDとかな
112デフォルトの名無しさん:2014/04/19(土) 13:16:35.70 ID:F+1f3Ibj
DPmmって言いにくいから。
はい、次の方~
113デフォルトの名無しさん:2014/04/19(土) 14:45:37.73 ID:FZlACFeu
下のような配列とListを用意して

var sourceList = new string[] { "a", "a", "b", "c", "a", "b", "c" };
var outList = new List<string[]>();

sourceList の文字列"a"と"b"だけを
下のような感じでoutList に格納したいです。
{ "a", "a", "b", "a", "b" }

for文で地道に検索すれば実現できるのですが、
配列のデータが大きくなると、
配列のインデックスを0から全て突き合わせるので、
結構遅くなっていきます。

何かスマートなやり方はあるでしょうか?
114デフォルトの名無しさん:2014/04/19(土) 14:56:23.05 ID:nSzj8sir
for文使って要素の方がstring[]?
どうせArray.Resizeとか乱射してるんじゃないの?
115デフォルトの名無しさん:2014/04/19(土) 15:16:43.12 ID:wssCKxB6
パフォーマンス問題でサンプルコード貼らないのはなんなの?
一度たりともコーディングでミスしたことがない人なの?
116デフォルトの名無しさん:2014/04/19(土) 15:19:34.36 ID:FN+T31Li
今時のPCで速度が問題になるような処理だと思いにくいし、ベタにやる以上に効率的な
処理があるとも思えんよな。

強いて言えば、(ほとんどありえないシナリオだけど)文字列の比較を参照の比較で
代替して問題がなければかなり効率があがるような気が
117デフォルトの名無しさん:2014/04/19(土) 15:49:38.35 ID:CsG29AJe
>>116
string.Intern使ってやってみたよ
aからzの繰り返し、5000万件のstring[]から、aとbをList<string>へ抽出
配列からリストを作る部分で、Intern250ms、ベタなのは800ms
Internは配列作るのが遅く全体ではベタの方が速かった
ちなみにインターンプールの解放タイミングよく分からないから勧められない
パラレルも試したが(Listの同期のせいで?)2000ms
118デフォルトの名無しさん:2014/04/19(土) 16:45:21.85 ID:eQm7EaOg
並列化処理の手段がいくつもあって理解が追いつきません。

A new Thread( new ThreadStart()):基本的な並列化
B ThreadPool.QueueUserWorkItem():スレッドプールを利用した並列化
C Task.Factory.StartNew():スレッドプールを利用した並列化
D Parallel.Invoke():スレッドプールを利用した並列化。引数としてメソッドを複数入れられる

A以外は常にバックグラウンドスレッド?
どの方法でもAutoResetEventでの待機・再開は利用できるが、A以外ではabort()での強制停止ができず、CancellationTokeを使う必要がある。
以上の理解で合っていますか?
他にも気を付けるべき特徴があれば教えてください。
119デフォルトの名無しさん:2014/04/19(土) 16:48:21.98 ID:nSzj8sir
タスクはUIスレッドでも動かせる
120デフォルトの名無しさん:2014/04/19(土) 16:50:43.65 ID:mBoNBXfe
>>118
その中ではっきり並列化を目的としてるのはInvokeだけだ
他は並列化にも使えるというだけ
特にTaskはParallelの対極に位置するもので、並列化というより非同期処理に使う
121デフォルトの名無しさん:2014/04/19(土) 17:05:43.85 ID:mBoNBXfe
Parallelは呼び出し元をブロックして枝分かれして全部終わったら合流して再開するという
典型的な並列処理のパターン(いわゆるfork-join)に特化してる。
Taskはタスクベースプログラミングといって、ひとまとまりの手続きを纏めて非同期に実行していくパターンで、スレッドを使うとは限らない。
あとの2つは低レベルな制御を必要とする場合以外は必要ない(自分でこういう枠組みを作るときとか)
122デフォルトの名無しさん:2014/04/19(土) 17:08:03.94 ID:wssCKxB6
abortを忘れろ
使うなと書いてあるだろ
123デフォルトの名無しさん:2014/04/19(土) 17:14:46.82 ID:z8Jb6CLl
誰に言ってるんだよこの命令口調バカw
頭おかしいんじゃねえの本当
124デフォルトの名無しさん:2014/04/19(土) 18:29:26.35 ID:2PY1bkDd
>>113
これまさに、LINQの出番じゃね?望むパフォーマンスが出るかわからないけど。
125デフォルトの名無しさん:2014/04/19(土) 18:35:31.19 ID:eQm7EaOg
基本はTaskとParallelでいいんですね。
>>122
MSDNでSuspendやResumeは非推奨でしたが、abortもそうなのですか?
あくまで非常停止として使うべきで、基本はスレッド内で終了させた方がいいというようなことは見かけましたが。
126デフォルトの名無しさん:2014/04/19(土) 19:17:41.81 ID:WYLdWJWU
普通に考えて強制終了にリスクがないはずがないし、外部から終了させることが可能なスレッドを
あえて強制終了する意味があるはずがないと思うんだけど...

abortなんて、稀にデッドロックするバグがあるアンマネージドなライブラリの関数を
呼び出す時以外に使ったことないよ俺は。
127デフォルトの名無しさん:2014/04/19(土) 19:35:06.62 ID:GVfgk0hH
小保方貼子ファンクラブ
http://anago.2ch.net/test/read.cgi/actress/1397313324/
128デフォルトの名無しさん:2014/04/19(土) 19:40:06.51 ID:lky2D+JG
>>124
普通はLINQ使うかな。データ数が多いならベタに書くが
ttp://ideone.com/6rwuVD
129デフォルトの名無しさん:2014/04/19(土) 21:28:01.14 ID:+cER51WV
>>123
死ねよ
130デフォルトの名無しさん:2014/04/19(土) 21:28:45.04 ID:+cER51WV
パフォーマンス求めてLINQを使うわけじゃないっしょ
131デフォルトの名無しさん:2014/04/19(土) 22:26:39.08 ID:F+1f3Ibj
>>129香典くれ
132デフォルトの名無しさん:2014/04/19(土) 22:44:30.17 ID:mBoNBXfe
もしサンプル通り一文字だけなんだったらcharにすれば爆速よ
一文字でなく最大でも数文字程度なら固定長で一つのchar配列に全部並べてもいい
メモリアクセスの効率が大幅に改善される
ビチクソ汚いから本当に本当に速度が必要な場合の最終手段な
133デフォルトの名無しさん:2014/04/20(日) 15:52:05.98 ID:uC0F2C8m
>>116,117,124,128,132
おいみんな>>113をよく見ろ
>>114は気付いていたみたいだが、outListの型はList<string[]>だぞ
どうやら、みんなの考えた方法では113の要求している仕様に合っていないみたいだw
134デフォルトの名無しさん:2014/04/20(日) 16:01:27.98 ID:ylaqUWX4
何をどうよく見ろなのかさっぱり分かりませんがw
135デフォルトの名無しさん:2014/04/20(日) 16:29:48.16 ID:zk/lLqrY
>>118なんですが、
Threadを利用した場合は、スレッドの状態の確認としてThreadStateが利用できました。
Taskを利用した場合は、独自に変数を設定してスレッドの状態を確認するのでしょうか?
スレッドが起動中かどうかを示す変数、スレッドが終了したかどうかを示す変数など。
136デフォルトの名無しさん:2014/04/20(日) 17:17:05.16 ID:ow3IcQU9
Threadなんか気にせずにTaskのプロパティを確認するべきだし、
どうしてもThreadの状態を知りたいならThread.CurrentThreadを見ればいい
137デフォルトの名無しさん:2014/04/20(日) 19:42:31.74 ID:zk/lLqrY
ThreadStatusと同じようにTaskStatusがあるんですね。
どうもありがとうございました。
138デフォルトの名無しさん:2014/04/21(月) 17:28:24.12 ID:ymTJYPUR
VS2013でOpenCVをやろうと思って
http://whoopsidaisies.hatenablog.com/entry/2013/10/25/005953
ここを参考にしてこのように書いて(写して)コンパイルはできたのですが
http://ideone.com/ITS6Ms
var img = OpenCV.Net.CV.LoadImage(@"C:\test\test.jpg", OpenCV.Net.LoadImageFlags.AnyColor);
の所で以下のような例外が出ました

型 'System.TypeInitializationException' の初回例外が OpenCV.Net.dll で発生しました
追加情報:'OpenCV.Net.Native.NativeMethods' のタイプ初期化子が例外をスローしました。

画像はC:\test\test.jpgにあります
どうすればいいですか?
139デフォルトの名無しさん:2014/04/21(月) 17:33:38.20 ID:y0NArLUJ
opencvのdllがみつからないんだろ
140デフォルトの名無しさん:2014/04/21(月) 17:40:48.58 ID:usiNmkk/
>2013/12/15にOpenCvSharpにも使いやすいNuGetパッケージが公開された.この記事で紹介するOpenCV.NetよりもOpenCvSharpのほうがおすすめ

冒頭でOpenCvSharpを勧めてるのに、なんでOpenCV.Netを使ってるのか
141デフォルトの名無しさん:2014/04/21(月) 19:11:53.17 ID:S3aB0oZF
NuGetとかいうケッタイなものは使いたくないのです
142デフォルトの名無しさん:2014/04/21(月) 19:52:37.79 ID:KEGmYWwQ
エビナゲットって最近見ないな
143デフォルトの名無しさん:2014/04/21(月) 22:23:30.19 ID:oS0xRoz1
プロジェクトやソリューションを管理するためのライブラリってありますか?
ExcelみたいにVSのプログラムを作りたいんですが
144デフォルトの名無しさん:2014/04/21(月) 23:11:54.98 ID:d3T4wTxV
今のVSはCOMインターフェイスが廃止されたからExcelのオートメーションと同じことはできない
VSの拡張機能として作れば同じようなことはできるが、VSのプロジェクトってMSBuildに入力するための単なるXMLファイルなのでわざわざVSを動かすまでもない
MSBuildのスキーマだけ持ってきてそれに従ってXMLを吐くのは簡単だし
必要ならMSBuildのAPIも使える
145デフォルトの名無しさん:2014/04/21(月) 23:24:42.06 ID:d3T4wTxV
念のため言っておくがcsprojはxlsxみたいな複雑怪奇なフォーマットとは訳が違うぞ
自分でテキストエディタで開いて見てみるのが早いが、ごくシンプルで普通なファイルだ
テンプレートを用意しといて必要なものだけ動的に突っ込む形にすれば簡単に作れる
146デフォルトの名無しさん:2014/04/22(火) 13:05:37.13 ID:HFvXP4YQ
コンボボックスに似たコントロールで右の部分が▼でなく
□で中に...と書いてあるコントロールの名前は何でしょうか?
147デフォルトの名無しさん:2014/04/22(火) 13:10:05.49 ID:XBfi1btF
単にテキストボックスとボタン組み合わせてるだけじゃないの?
148デフォルトの名無しさん:2014/04/22(火) 14:40:38.90 ID:UaMCQHcx
単にテキストボックスとボタン組み合わせてるだけだな
149デフォルトの名無しさん:2014/04/22(火) 14:50:16.86 ID:gNtRiMca
決め付けはよくない
150デフォルトの名無しさん:2014/04/22(火) 18:02:04.37 ID:UE2PHjX0
>>146
どんなやつよ。
ちょっと想像がつかないからコモンコントロールじゃないっぽいが
具体例がほしいな
151デフォルトの名無しさん:2014/04/22(火) 19:26:39.75 ID:kADKmax/
>>150
わからないとか冗談だろ
ファイル名テキストボックスとファイルダイアログ表示ボタンをくっ付けたやつだろjk
152デフォルトの名無しさん:2014/04/22(火) 23:22:54.33 ID:kRq+wL8H
いまVB.netでプログラミングしてるのですが
C#に移行するとどんなメリットがありますか?
153デフォルトの名無しさん:2014/04/22(火) 23:27:01.60 ID:COSeIpGW
アンセーフなコードが書ける
どんどん差がなくなってきてる
最近は真面目にそれぐらいしか差がない
154デフォルトの名無しさん:2014/04/22(火) 23:28:38.63 ID:w4l4IAka
Roslynの登場でさらに差は縮まる
C#,VB.NETの両方読めるようにしとくと情報が見つけやすい
155デフォルトの名無しさん:2014/04/22(火) 23:30:33.98 ID:qzRdlrJo
>>152
C#でプログラミングする必要はないが、C#が読めるようになると世界が広がる
C#が読めれば数々のオープンソースプロジェクトのソースが読めるしJavaも読める
また、一般にWebに転がってるC#の情報はVBより品質が高い
C#に無い機能は即ちVBでも使ってはいけない機能なので、それが分かっていれば実際使うのがVBだとしても高品質なコードが書けるようになる
156デフォルトの名無しさん:2014/04/22(火) 23:33:58.18 ID:kADKmax/
VB.NetはデフォだとVB6時代の悪しき慣習を引き継いでいるからなぁ
フォームのシングルトンインスタンスにクラス名でアクセス出来るのとかまだあるんだっけ?
157デフォルトの名無しさん:2014/04/22(火) 23:34:08.54 ID:kRq+wL8H
ありがとん
158デフォルトの名無しさん:2014/04/22(火) 23:34:09.41 ID:COSeIpGW
大事なことを忘れていた
情報検索がしやすいメリットは大きいね
下手くそなコード書く人が少ないのも助かる
159デフォルトの名無しさん:2014/04/22(火) 23:35:12.43 ID:kRq+wL8H
とりあえずVBと併せてC#もやってみます
160デフォルトの名無しさん:2014/04/23(水) 00:41:08.86 ID:3zL5Y6EA
>>152
結局出来ることはほとんど違わないけど、VBのラムダ式とかジェネリックとか
AddressOf...とかの冗長さにイラっとしてるならそれから解放される。

あと、このスレでもそうだけどVBに偏見持ってる人は少なくないから、
メンタル的にはその辺も大きいねw
161デフォルトの名無しさん:2014/04/23(水) 00:45:47.04 ID:JkkhAF2N
っていうか、コード書いてみて初めて分かる細かい違いは実は結構あるけど、
移行っていうほど大げさなもんじゃない。

VBが普通に書けるなら1週間でC#もスラスラ書けるようになるはず。
162デフォルトの名無しさん:2014/04/23(水) 01:02:34.08 ID:Jwmg0nMc
>>160
偏見じゃなくて公式だ
MS自身がが先陣切ってVBerを馬鹿にしてるからなあ
163デフォルトの名無しさん:2014/04/23(水) 01:14:29.84 ID:moWamiRQ
>>162
公式だから偏見じゃないとはちょっと…

自分もVBからC#に移ったが、情報やサンプルの多さは本当に助かってる
職場ではVBA使うからたまに混乱するが
164デフォルトの名無しさん:2014/04/23(水) 01:57:22.43 ID:oEVDmUMc
>>160
偏見ってたとえば?
165デフォルトの名無しさん:2014/04/23(水) 03:45:53.21 ID:L+2rWq+F
>>164
MS自身がが先陣切ってVBerを馬鹿にしてる とか
166デフォルトの名無しさん:2014/04/23(水) 07:03:44.22 ID:aQjOrdcV
VB.NETは数値計算とか例外処理で旧VBの仕様を引きずっているのでILが汚い
機能が同等だとしてもあえて選ぶ意味は無い
167デフォルトの名無しさん:2014/04/23(水) 07:27:58.18 ID:B15hE1J5
決裁権持ってる奴はいまだにBASIC(とPHP)は学習コストが低いと思ってるから
あるいは元VBerで信仰心があったり

公平な選択なんて有り得ないんですよ
例えそれが自分の首を締めても
168デフォルトの名無しさん:2014/04/23(水) 08:23:37.10 ID:x9LZX8vX
別にできることはたいして変わらないんだから、好きな方使えばええやんか
169デフォルトの名無しさん:2014/04/23(水) 08:38:33.73 ID:Wz2QSiNm
VB使ってると自分の将来が不安になる
170デフォルトの名無しさん:2014/04/23(水) 09:30:35.84 ID:oEVDmUMc
VBはStrConv使える
171デフォルトの名無しさん:2014/04/23(水) 10:12:07.52 ID:8Svp1K2C
偏見持ってるのは一般人も同じじゃね?
VBで作るって言うと遅くなるとかバカにされるけど、C#で作るって言うと安心するとか尊敬される
知らない人ほど「Basicって名前は遅くてCって名前は速い」と思ってるから性質が悪い
172デフォルトの名無しさん:2014/04/23(水) 12:43:00.67 ID:To415BTT
VC#で新しくプロジェクト作ったりしたら
static void Main(string[] args)
{
}
見たいになってるけど、デフォルトで
static void Main(string[] args) {
}
こうするように出来ますか?
173デフォルトの名無しさん:2014/04/23(水) 12:54:41.59 ID:Wav400Iz
VSのメニューの「ツール」→「オプション」→「テキストエディター」→「C#」→「書式設定」→「改行」

少なくともうちのExpressちゃんだと
174デフォルトの名無しさん:2014/04/23(水) 13:02:10.40 ID:To415BTT
>>173
ありがとうございます
175デフォルトの名無しさん:2014/04/23(水) 13:14:45.44 ID:HlzGISme
C#でつくられたDLLを使うときにVBだと
outのやつとかうまく行かない時ある
176デフォルトの名無しさん:2014/04/23(水) 17:00:14.97 ID:gE6F061n
VBで作られたDLLをC#から呼ぶとき
インデックスつきプロパティとかどうすんだろ
177デフォルトの名無しさん:2014/04/23(水) 18:38:59.62 ID:hEaBYDdC
VB.NetがC#より打鍵量が多いのも、コンパイル後のサイズが大きいのも、
パフォーマンスがC#より悪いのも、ヘルパーメソッド由来の妙なバグがあるのも全部事実であって偏見ではない
178デフォルトの名無しさん:2014/04/23(水) 20:26:11.53 ID:TDgs+IDt
VB の癌は Module
MS にはとっとと切り捨てて欲しい

>>176
get_プロパティ名(インデックス)、set_プロパティ名(インデックス, セット値) でいける
179デフォルトの名無しさん:2014/04/23(水) 22:13:30.39 ID:Wvay+xfF
>>170
VBのメリット、これしか見つからないな。
180デフォルトの名無しさん:2014/04/23(水) 22:17:47.88 ID:9b5aah45
まあStrings.StrConvメソッドはC#からでも使えるんだけどな
181デフォルトの名無しさん:2014/04/23(水) 22:38:48.86 ID:aQjOrdcV
Microsoft.VisualBasic.dllだとFileLogTraceListenerを一番よく使う
182デフォルトの名無しさん:2014/04/23(水) 23:05:07.94 ID:gnPWMjpt
>>179
そんなことはないと思うが、2008の頃からは何を書くにもとにかく冗長という
欠点ばかりが目立つようになってしまった。
183デフォルトの名無しさん:2014/04/23(水) 23:30:13.86 ID:aQjOrdcV
昔からReadOnly PropertyとかAddHandler, AddressOfとかDirectCastとかそんな感じだったでしょ
リフレクション多用するライブラリが増えてきて表面化しただけじゃないの
自動実装プロパティもC#にしかない時期だし
184デフォルトの名無しさん:2014/04/23(水) 23:30:18.44 ID:O6CdnXOc
allocconsole だな
185デフォルトの名無しさん:2014/04/23(水) 23:32:30.95 ID:Jwmg0nMc
>>182
2008からはVBチームがVB嫌いのヘジたんの傘下に入ったからね
186デフォルトの名無しさん:2014/04/23(水) 23:59:59.59 ID:20pXoq+z
>>170
バグ生産機を使うなバカ
187デフォルトの名無しさん:2014/04/24(木) 01:31:15.85 ID:ql05jL4b
>>186
すまん軽率だった
これ見て使ってしまう奴が居ないとも限らんしな
188デフォルトの名無しさん:2014/04/24(木) 20:30:02.51 ID:4wdRys5m
MessageBoxIconに自分の用意したbitmapを表示させるにはどうしたらいいですか?
189デフォルトの名無しさん:2014/04/24(木) 20:44:58.88 ID:YxnFmXEY
無理

それっぽいフォームを自分で作る
文字列を描画したときのサイズを計算してフォームの大きさ変えたりとか楽しいぞ
さあ作れ
190デフォルトの名無しさん:2014/04/24(木) 20:58:57.16 ID:nZNRS/HT
無理ってことはないと思うけど自作した方が早いね。
そうでなくてもOS標準のはモーダルにしか出来ないしいろいろ使いづらい。
191デフォルトの名無しさん:2014/04/24(木) 21:15:44.44 ID:DE2OqBZn
カーソルがピタット止まって気持ち悪い
192デフォルトの名無しさん:2014/04/24(木) 21:20:16.41 ID:DE2OqBZn
誤爆った

public struct A{
public static string str;

public struct B{
public static string str_b1;
public static string str_b2;
}

public class Class{
public string c_str;
}
public static Class C = new C();

public static Class[] D = new D[2]{
new D(),
new D()
};
}

こんな構造体があるとして

A.B.str_b1;
A.B.str_b2;
A.C.c.str;
A.D[0].c_str;
A.D[1].c_str;

foreach的な感じで値取得ってできない?
193デフォルトの名無しさん:2014/04/24(木) 21:20:46.50 ID:YxnFmXEY
>>190
無理ってことはないと思うならやってみろよハゲ
ちなみにあれMessageBox APIを呼んでるだけなんすよヅルムケが
194デフォルトの名無しさん:2014/04/24(木) 21:35:37.91 ID:FFtq7Y66
>>193
正直、お前さんみたいな馬鹿丸出しな奴は相手にしたくない人種なんだが。

恐らくこれと同じ手法でいける。
http://msdn.microsoft.com/en-us/library/ms996463.aspx
195デフォルトの名無しさん:2014/04/24(木) 21:37:47.16 ID:YxnFmXEY
>>192
それらの静的フィールドをyield return で返すIEnumerable<strign>なプロパティを書けばできるけど
意味があるかどうかはおいといて
つかそれ構造体の意味なくね?
196デフォルトの名無しさん:2014/04/24(木) 21:41:48.71 ID:YxnFmXEY
>>194
すこしは自分でコード書いてみたら?
同じ手法でいけるって……全然試してないでしょあなた
197デフォルトの名無しさん:2014/04/24(木) 21:43:57.76 ID:vQpzgEp0
>>192
foreach使うための、インターフェースの実装はわかりますよね?
あとは、イテレータ使えばできるはずです。
198デフォルトの名無しさん:2014/04/24(木) 21:49:14.36 ID:VsJIW2Qh
>>196
馬鹿だろお前。
だったらてめえでやれ馬鹿。
199デフォルトの名無しさん:2014/04/24(木) 22:02:34.00 ID:dPj9fjlZ
メッセージボックスもウインドウだから、フックかければ改造はできる。
ただ、意味はないからやらないだけだ
200デフォルトの名無しさん:2014/04/25(金) 15:25:09.99 ID:IiOsF4m2
昔はC#からEXCEL呼ぶのがとてつもなく面倒だったから、VB使う余地があったんだけどね
201デフォルトの名無しさん:2014/04/25(金) 20:53:42.84 ID:1OgLRHsj
>>200
オートメーションは今でもVBの方が向いてるよ。
Option Strict Offの唯一の見せ場といってもいいぐらい
202デフォルトの名無しさん:2014/04/25(金) 20:59:41.66 ID:H8Us4HAR
>>201
つdynamic
203デフォルトの名無しさん:2014/04/25(金) 21:05:02.54 ID:OpA3+M3d
dynamicとオプション引数でもう完全に遜色なくなったねー
204デフォルトの名無しさん:2014/04/25(金) 21:10:59.66 ID:H8Us4HAR
あとrefパラメータへの値渡しな
205デフォルトの名無しさん:2014/04/25(金) 21:18:49.00 ID:E6t4nrBH
>>202-203
いや、例えばRange.Valueをdoube[,]として出し入れする、なんて芸当はVBしかできない。
206デフォルトの名無しさん:2014/04/25(金) 21:27:17.50 ID:BeYqZeZk
それエラーチェックをサボってるだけでは
207デフォルトの名無しさん:2014/04/25(金) 22:19:49.65 ID:+sbVSSo6
激しくどうでも良いことだけど、Excel形式で出力するライブラリは沢山あるのに
Word形式で出力できるライブラリが殆ど無いのが納得いかない。
208デフォルトの名無しさん:2014/04/25(金) 22:32:43.08 ID:v98LkHcr
2とか知らないけど発売してるの
209デフォルトの名無しさん:2014/04/25(金) 23:05:26.63 ID:K/dO+JDF
そろそろ初心者から脱出したいんですけど、どういうアプリを作ればいいでしょうか?
連番画像ダウンローダー、目覚ましなどは作りましたが、次に作るものが思い浮かばないです・・・
210デフォルトの名無しさん:2014/04/25(金) 23:15:10.41 ID:BeYqZeZk
IQueryable
211デフォルトの名無しさん:2014/04/26(土) 01:10:31.85 ID:L7zgrAvH
C#って何が出来れば上級者なの?
212デフォルトの名無しさん:2014/04/26(土) 01:12:25.53 ID:EJb9DXTR
作りたい物をきちんと作れるなら
213デフォルトの名無しさん:2014/04/26(土) 01:41:03.89 ID:fIjhv7f7
>>209
擬似ウイルス
214デフォルトの名無しさん:2014/04/26(土) 07:48:18.18 ID:tBhXDM1B
足し算する計算機を作った
俺はもうC#上級者
215デフォルトの名無しさん:2014/04/26(土) 09:57:25.18 ID:6xIFFq9Q
>>209
画像レタッチソフト
216デフォルトの名無しさん:2014/04/26(土) 12:06:32.30 ID:we+cBXG7
>>209
マクロにC#を使える軽量高機能テキストエディタ
217デフォルトの名無しさん:2014/04/26(土) 12:39:09.88 ID:4Y2pKqPs
/// <summary>
/// 指定したmdbファイルに対してSQLを実行します。
/// </summary>
/// <param name="sql">実行するSQL文です</param>
/// <param name="dataSource">mdbファイルの絶対パス</param>
/// <returns>0:正常終了 1:dataSource未設定 2:SQL文がない -1:システムエラー</returns>

こういうコメントを、関数仕様書のようにまとめる事ができる
お勧めツールはありますでしょうか?
218デフォルトの名無しさん:2014/04/26(土) 12:51:59.56 ID:Qdi0GyvQ
以下、たかがサンプルに対する本筋から逸れたどうでもいい突っ込みをどうぞ↓
219デフォルトの名無しさん:2014/04/26(土) 13:04:22.85 ID:EJb9DXTR
>>218
1つの関数にopenからsql実行まで全部いれないでもうちょっと別けろよ
220デフォルトの名無しさん:2014/04/26(土) 13:14:14.44 ID:yjIemKHI
Sandcastle
221デフォルトの名無しさん:2014/04/26(土) 13:26:01.94 ID:Fm5sej5/
returnsの書き方に違和感
222デフォルトの名無しさん:2014/04/26(土) 13:49:19.87 ID:4Y2pKqPs
>>219
openからsql実行まで一連の処理を一つの関数にまとめていると
何か不都合が出てくるのでしょうか?

なるほど、という不都合が。
223デフォルトの名無しさん:2014/04/26(土) 15:32:06.24 ID:rj2lEW1Q
エラーなら例外使うべきだな
224デフォルトの名無しさん:2014/04/26(土) 15:36:25.19 ID:Qdi0GyvQ
どうですか?
笑えないほど予告通りですね
225デフォルトの名無しさん:2014/04/26(土) 15:38:21.79 ID:ZzzaXJVH
むしろチミが召喚したという
226デフォルトの名無しさん:2014/04/26(土) 16:28:10.91 ID:we+cBXG7
>>220で答え出てた

>>222
File.ReadXXXなんかもあるし、これで全部賄おうって話じゃなけりゃ問題ないでしょう
それより処理結果をintで返すのは誰に教わったの?そいつぶん殴ったらいいよ
処理結果なんて誰も見ない
SQLがnullだった場合?呼び出す側はこれnullかも・・・って思いつつ呼び出さないよな、だったら事前チェックするから
想定してないのにnullって言われてもどうしようもない
だから対処できるメソッドまで例外を投げるんだよ、回復とか通知とか出来るところまで
ArgumentNullExceptionを投げるようにして、例外説明用のタグもあるからそれ使おうか
227デフォルトの名無しさん:2014/04/26(土) 16:32:22.76 ID:lFCRVMF1
SQL実行しといて行数すら返さないってINSERT専用なの?
228デフォルトの名無しさん:2014/04/26(土) 16:42:25.86 ID:Cr6T5VXg
おしっこも出るよ(´・_・`)
229デフォルトの名無しさん:2014/04/26(土) 17:17:16.99 ID:Gwme6n+H
>>226
>処理結果なんて誰も見ない

それを言うなら、呼び出したメソッドが例外投げるなんて「誰も想定しない」
とも言えるわけでどっちもどっちだと思うよ。

むしろエラーコード方式の方が、そのメソッドではエラーが発生しうることをコード上で
明示できる分優れているとすら言える。

ただ>>217はエラーコードに今時マジックナンバーを使ってる点は問題。
そこはenumか例外オブジェクトを返すようにした方がいいと思う。
230デフォルトの名無しさん:2014/04/26(土) 17:36:23.19 ID:19vcZYji
C#に限った話ではないのかもしれないけど

静的ではないクラスの中に定義したメソッドは
そのクラスのインスタンスを作成するたびに メモリ上に展開されるの?

だとしたら
主にデータを保持するために使うクラスには出来る限りメソッドを定義しないようにして
メソッドはそれを提供する専用のクラスに分割して書いたほうが良いの?

インスタンスの量が増えてくるとメモリの使用量が気にならないかなぁ・・・と
まぁC#でメモリの使用量なんて気にしても仕方ないのかもしれませんがよろしくお願いします.
231デフォルトの名無しさん:2014/04/26(土) 17:40:40.90 ID:9En+Yllw
ポインタしかもたんだろ
232デフォルトの名無しさん:2014/04/26(土) 17:41:26.63 ID:lFCRVMF1
んなわけないだろ
233デフォルトの名無しさん:2014/04/26(土) 18:00:36.35 ID:oIIaUmxU
OOP言語(というか実行環境か)でインスタンスごとに独立した実行コードが
割り当てられるような間抜けな実装してるものなんてあるのか?

誰が考えてもありえない話としか思えないが
234デフォルトの名無しさん:2014/04/26(土) 18:04:16.55 ID:Qdi0GyvQ
vtableでくぐれ
235デフォルトの名無しさん:2014/04/26(土) 18:14:29.64 ID:lFCRVMF1
CLRではメソッドテーブルだ
236デフォルトの名無しさん:2014/04/26(土) 18:26:31.95 ID:NVDEc6dD
>>217
ためしにDoxygen
237デフォルトの名無しさん:2014/04/26(土) 20:31:07.43 ID:+q1cG7mf
>>229
例外オブジェクトを返す?本気?
238デフォルトの名無しさん:2014/04/26(土) 20:34:09.18 ID:GZ073aKT
C#でTwitterクライアントを作りたくて検索したんですが情報が古かったりして出来ません

オススメや参考にしたサイト等あれば教えてください、お願いします
239デフォルトの名無しさん:2014/04/26(土) 20:37:36.64 ID:lFCRVMF1
そのライブラリーはIDが64ビット化したのに対応してないんじゃない?
240デフォルトの名無しさん:2014/04/26(土) 20:42:52.62 ID:7/lzVZ3W
>>237
例外オブジェクトの存在価値が投げられること、ただそれだけだ思ってるのならただの固定観念。
241デフォルトの名無しさん:2014/04/26(土) 21:15:39.82 ID:lFCRVMF1
投げないならExceptionより軽量高速で誤解を招かない選択肢が一杯ある
242デフォルトの名無しさん:2014/04/26(土) 21:21:36.37 ID:iOeXFZ4R
中学生か。
そういう批判のための批判なら要らない。
軽量かどうか、誤解を招くかどうか、どちらもそれが例外オブジェクトかどうかとは無関係。
243デフォルトの名無しさん:2014/04/26(土) 21:26:28.10 ID:lFCRVMF1
あえて使う理由は何?と聞いてるんだけど
244デフォルトの名無しさん:2014/04/26(土) 21:31:09.99 ID:L2eR/wTD
あえて例外オブジェクトを使えなんてどこに書いてある。
俺はマジックナンバーではなくenumか例外オブジェクトを返せと書いた。
要するにただ「使える」と言ってるだけだ。

2chで言ってもしょうがないが本当中学生じみた幼稚な奴だな。
245デフォルトの名無しさん:2014/04/26(土) 21:39:05.02 ID:sw3OTzY3
例外オブジェクトを戻値にする場合って呼び出し側でどうやってハンドリングするの?
Go言語みたいにするの?
246デフォルトの名無しさん:2014/04/26(土) 21:43:07.54 ID:lFCRVMF1
>>244
じゃあ聞くけどマジックナンバーと比較して例外を使うのの何が優れてると思ってるの?
型検査になるから列挙型のように選択肢も絞れないし、動作もマジックナンバーより遅いし
基本エラーを表す型しかないから成功のステータスを細分化できないんだけど

エラーメッセージが付加できる点ぐらいしかメリットがないと思うよ
247デフォルトの名無しさん:2014/04/26(土) 21:49:55.75 ID:yjIemKHI
おとなしく例外を投げろよ
SQLの実行が100%成功するわけないことぐらい誰でもわかるだろ
248デフォルトの名無しさん:2014/04/26(土) 21:53:17.85 ID:UjMxSJz5
エラーコードは戻り側で無視したらそこでおしまい
例外ならば(例外を食ったりしなければ)普通最上位までまき戻る
あと例外を階層的にクラスで扱えばいろいろ便利だね http://ideone.com/Q5h8n1#li_GQnaUK
C++、Java でも例外をとりいれているし、

エラーコードなんて過去の遺物じゃないかな
249デフォルトの名無しさん:2014/04/26(土) 21:58:49.85 ID:Qdi0GyvQ
ここまで燃えるとは予想外ワロタ
250デフォルトの名無しさん:2014/04/26(土) 22:09:27.96 ID:2szqXR0/
>>248
よくある議論だけど、最初から言ってるように、戻り値(エラーコード)ではなく
例外機構を使ったからって、呼び出し側がエラーを想定しなかった場合のリスクに違いはない。

上位まで戻るって、意図的にそうした場合は別として、そうでない場合に
想定されてない例外に対して適切な回復処理なんか出来るわけないでしょ。
251デフォルトの名無しさん:2014/04/26(土) 22:19:49.67 ID:2szqXR0/
突っ込まれる前に言っとくけど、例外を投げることの利点はプログラムを
強制終了させるパワーを持っていることで、だから回復不可能なエラー発生時には
積極的に例外を投げる意味があるけど、それ以外の場合は本来別に例外を投げることに
固執する意味なんてたいしてないんだよね。

むしろエラーコード方式だと他の値が返せなくなるからという程度の理由しかない。
252デフォルトの名無しさん:2014/04/26(土) 22:31:03.25 ID:yjIemKHI
詳しいエラーメッセージをのせられない
追加情報をのせられない
おきた場所のスタックトレースが取得できない
InnerExceptionみたいのができない
エラーの発生しうるメソッドを実行するたびに戻り値を確認する必要がある
回復可能なエラーで失敗を想定しないと停止されないので、そのまま適切でない処理が続行される危険がある

とか
253デフォルトの名無しさん:2014/04/26(土) 22:52:46.46 ID:lFCRVMF1
実行エンジンや他人のライブラリが例外を投げてくる可能性は消えないので例外処理をしないという選択肢がありえない
両方やりたいならお好きにどうぞ
254デフォルトの名無しさん:2014/04/26(土) 23:03:12.36 ID:+q1cG7mf
>>251
その理屈から引数nullとシステムエラー(なんだよそれ)をエラーコードで良いと判断したの?
システムエラーが返された時どうしたらいいの?
俺なら無視しちゃうな
255デフォルトの名無しさん:2014/04/27(日) 00:00:20.60 ID:miy+8Evc
共通関数って、最初に引数チェックしてダメだったら例外投げるよな

引数例外もしくはContractsとか使って
256デフォルトの名無しさん:2014/04/27(日) 00:08:02.95 ID:dy7wqSER
どうでもいいけどHttpWebRequestで404の時とかにWebException投げるのやめて欲しい
もともとネットにつながらないとかホストが見つからないという時だけ投げて欲しい
257デフォルトの名無しさん:2014/04/27(日) 03:24:50.79 ID:oLsNKogN
>>250
想定しないエラーについては上位に投げる(キャッチしない)のがC#の基本的なエラー処理の考え方だぞ
例外投げるのは意図的に捕捉しない限り勝手に上位に伝播する
自分で処理できるエラーだけ捕捉するのはエラーコードでもいいが、それ以外を上位に投げるのにエラーコードは不向きだ
258デフォルトの名無しさん:2014/04/27(日) 10:37:42.14 ID:/A+wJ+qi
★質問したいこと
「default(T)」は値なの?型なの?
(下記のコードがうまくいかない理由は?)

★状況
public class Range<T> where T : IComparable<T>
{
&nbsp; &nbsp; public T Begin { get; set; }
&nbsp; &nbsp; public T End { get; set; }
&nbsp; &nbsp; public bool Contains(T t)
&nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; return (Begin == default(T) || Begin.CompareTo(t) <= 0)
&nbsp; &nbsp; &nbsp; &nbsp; &amp;&amp; (End == default(T) || 0 < t.CompareTo(End));
&nbsp; &nbsp; }
}
Begin == defualt(T)のとこで「演算子 '==' を 'T' と 'T' 型のオペランドに適用することはできません。」
とか、表示されます。

T d = default(T);とか書いてみて、もちろんエラーは出ない。
さらに、if( Begin == d ) {...}とか書いてみると、 上記のエラー。
259258:2014/04/27(日) 10:39:06.66 ID:/A+wJ+qi
>>258
あれっ!HTMLエンコードしすぎちゃった!
260デフォルトの名無しさん:2014/04/27(日) 10:58:40.25 ID:jKbi43u9
>>217
http://blogs.msdn.com/b/sandcastle/

Visual Studio に同梱してもいいと思うんだが。
261デフォルトの名無しさん:2014/04/27(日) 11:05:42.81 ID:PjLFHi1Y
>>258
IComparableでも==は使えない
262デフォルトの名無しさん:2014/04/27(日) 11:22:51.99 ID:LKRXtHDC
Equals使えばいいんじゃねえの
263デフォルトの名無しさん:2014/04/27(日) 12:03:22.28 ID:LKRXtHDC
default(T)がnullだった時に落ちないようにしなきゃいけないとすると
静的メソッドの

object.Equals(object, object) っていうのが使えるのかな

でもdefault(T)との比較は値型のときの動作が怪しいよな
264デフォルトの名無しさん:2014/04/27(日) 12:13:25.13 ID:Yz145qkP
EqualityComparer<T>.Defaultとかそういうのがあって
265258:2014/04/27(日) 12:48:31.67 ID:/A+wJ+qi
>>261-264
とりあえずこうしてみます。
>>263案で。
みんなありがとう。
public class Range<T> where T : IComparable<T>
{
public T Begin { get; set; }
public T End { get; set; }
public bool Contains(T t)
{
return (object.Equals(Begin, default(T)) || Begin.CompareTo(t) <= 0)
&& (object.Equals(End, default(T)) || 0 < t.CompareTo(End));
}
}
266デフォルトの名無しさん:2014/04/27(日) 13:36:23.26 ID:miy+8Evc
Contains の実装間違ってるっぽいが大丈夫?

後、default(値型)は、値型の初期値(≒0)になるよ
267デフォルトの名無しさん:2014/04/27(日) 21:38:52.33 ID:Q9kXtU28
Tでもnullとの==比較だけはできるんだけど
Tが値型の場合は常にfalseになる
268デフォルトの名無しさん:2014/04/27(日) 21:44:11.91 ID:LKRXtHDC
マジで?!

初めて知った・・・
269デフォルトの名無しさん:2014/05/01(木) 08:05:57.00 ID:fMEOKfxX
Actionめちゃくちゃ便利じゃないか
古い情報のデリゲートを使ったり、イベント使ったりして
途中でわけがわからなくなってたがこれ使ってすんげーシンプルにかけるようになった
270デフォルトの名無しさん:2014/05/01(木) 09:52:55.43 ID:tJSAUBZt
ActionとかFuncとかは単なる作り付けのデリゲート
便利なのはラムダ式
271デフォルトの名無しさん:2014/05/01(木) 16:02:15.95 ID:fMEOKfxX
今気づいたけどID出るようになってるね
これでキチガイが暴れなくなったね
272デフォルトの名無しさん:2014/05/01(木) 16:10:50.88 ID:HVeqsQe1
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄
     ̄
273デフォルトの名無しさん:2014/05/01(木) 16:53:11.58 ID:BD8IvZOZ
C#のLinqでは、Like句は使えないのでしょうか?

下のようなVB.NETプログラムをC#で書きたいのですが、
Likeは無いと怒られます。

Dim filter As String = "*マ*"
'データソースの作成
Dim animals = New String() {"ライオン", "ウマ", "ポチ"}
'LINQで処理を定義
Dim results = From animal In animals Where animal Like filter
274デフォルトの名無しさん:2014/05/01(木) 16:57:52.59 ID:uhEglYyp
うん、使えない
275デフォルトの名無しさん:2014/05/01(木) 17:01:22.57 ID:uhEglYyp
あ、Like演算自体はMicrosoft.VisualBasic.CompilerServices.LikeOperator.LikeStringメソッドで実現できるよ
クエリの句として使えないだけで
276デフォルトの名無しさん:2014/05/01(木) 17:12:26.68 ID:BD8IvZOZ
そうなんですか
残念

クエリ式は、VB.NETの方が優れてる気がしますね
277デフォルトの名無しさん:2014/05/01(木) 17:16:43.77 ID:uhEglYyp
よく考えたらLikeはクエリ式とは関係ないただのVBの演算子だった
まあクエリ式なんてついでに乗っけてみた程度だからどうでもいいよ
278デフォルトの名無しさん:2014/05/01(木) 17:19:01.49 ID:Hl+E0h9B
クエリ式見るだけで吐き気がする
どうしてドットで繋がないんだ
可読性下がるだけだろ
279デフォルトの名無しさん:2014/05/01(木) 17:27:43.28 ID:BD8IvZOZ
ちなみに、>>273と同等のコードは、
C#だと、どのように書けるでしょうか?

書くことが出来ないとは
思えないのですが。。。
280デフォルトの名無しさん:2014/05/01(木) 17:29:47.35 ID:HVeqsQe1
VBやってろよ
気を揉まなくて済むぞ
281デフォルトの名無しさん:2014/05/01(木) 17:31:14.67 ID:uhEglYyp
var results = animals.Where(animal => LikeOperator.LikeString(animal, filter));
var results = from animal in animals where LikeOperator.LikeString(animal, filter);
どっちでも好きに
282デフォルトの名無しさん:2014/05/01(木) 17:32:05.24 ID:uhEglYyp
ってそういえばselect必須だったっけ
var results = from animal in animals where LikeOperator.LikeString(animal, filter) select animal;
283デフォルトの名無しさん:2014/05/01(木) 17:34:59.06 ID:Hl+E0h9B
>>279
var results = animals.Where(animal => Regex.IsMatch(animal, ".*マ.*"));

こんな感じ?

これだと正規表現がすごく遅そうでやばそうかな
284デフォルトの名無しさん:2014/05/01(木) 18:01:32.04 ID:BD8IvZOZ
>>282

ご回答ありがとうございます。

ただ、下記のようなコードを書いたのですが、
「動的な式のコンパイルに必要な1つ以上の型が見つかりません。」
と怒られてしまいます。

using Microsoft.VisualBasic.CompilerServices;

string filter = "*マ*";
dynamic animals = new string[] {"ライオン","ウマ","ポチ"};
var results = from animal in animals where LikeOperator.LikeString(animal, filter) select animal;

素人質問で恐縮ですが、
どの辺がいけないのでしょうか?

よろしくお願いします。
285デフォルトの名無しさん:2014/05/01(木) 18:03:34.36 ID:uhEglYyp
なんでdynamicなんだよ
286デフォルトの名無しさん:2014/05/01(木) 18:04:42.61 ID:HVeqsQe1
だから言ったのに
287デフォルトの名無しさん:2014/05/01(木) 18:06:08.51 ID:Hl+E0h9B
ダイナミック
ダイクマー
288デフォルトの名無しさん:2014/05/01(木) 18:49:10.15 ID:BD8IvZOZ
>なんでdynamicなんだよ

あっ、本当だ。
失礼しました。

ただ、下記のようなコードを書くと、
全ての要素がヒットしてしまいました。

var filter = "*マ*";
var animals = new string[] {"ライオン","ウマ","ポチ"};
var results = from animal in animals where LikeOperator.LikeString(animal, filter, Microsoft.VisualBasic.CompareMethod.Binary) select animal;

なかなか難しいなと思いました。
289デフォルトの名無しさん:2014/05/01(木) 19:58:52.39 ID:R3+I0L0F
死ねと思いました
290デフォルトの名無しさん:2014/05/01(木) 20:04:27.43 ID:JPPdbDCn
コードままでウマしかヒットしなかったけど釣りか?
291デフォルトの名無しさん:2014/05/02(金) 00:24:04.56 ID:Z8O9F4B6
すみません、クイックウォッチのソースを見ていました
結果ビューを見たら、ちゃんとウマだけヒットしていました

C#を始めて3日目の超初心者なので、
初歩的な間違いをしておりました

このデータを、どう配列に取り込もうか考え中ですが、
それくらいなら自力解決できると思います

ご教授ありがとうございました
292デフォルトの名無しさん:2014/05/02(金) 00:35:51.86 ID:Z8O9F4B6
クエリ式って、エクセルからオブジェクトを一気に取り込んで
あいまい検索する時とか、凄く便利そうですが、
メジャーじゃないんでしょうか?

エクセルVBAの構文が見難かったので、
C#でやる方法を色々調べている時に、
便利そうだと思ったのですが、
情報がほとんど無かったので。。。
293デフォルトの名無しさん:2014/05/02(金) 00:48:05.73 ID:tBX44kWl
メジャーじゃないですね
294デフォルトの名無しさん:2014/05/02(金) 02:41:15.92 ID:5msgSlqj
今時エクセル絡ませるのはマイナーの部類ですね
295デフォルトの名無しさん:2014/05/02(金) 02:42:06.91 ID:5msgSlqj
データベースに桐を使ってるレベルです
296デフォルトの名無しさん:2014/05/02(金) 10:52:35.09 ID:ht5JWCls
マイナーかどうかはおいといて、結局 C# 経由で VBA のメソッドを使うことにならん? それ。
297デフォルトの名無しさん:2014/05/02(金) 12:13:38.02 ID:4eRBcMfb
Like相当なら
StartsWith()、EndsWith()、Contains() でいいべ
298デフォルトの名無しさん:2014/05/02(金) 16:54:12.21 ID:dSQl/o1w
Visual C# 2013
.NET Framework 4.5

数値と文字列の組を、数値の降順で表示したいのですが
↓より簡単な方法はないでしょうか
https://ideone.com/OmRl1j

数値の重複はあり、重複した数値のソート順は問いません
299デフォルトの名無しさん:2014/05/02(金) 17:01:30.08 ID:ntw0y3bI
組なんだったら一つのクラスにまとめればいいじゃん
300デフォルトの名無しさん:2014/05/02(金) 18:05:33.78 ID:hJb5Y+9v
var DayMon =new List<Tuple<int,string>>{Tuple.Create(31,"Jan"),Tuple.Create(28,"Feb"),.....}.OrderBy(t=>t.Item1);

foreach(var dm in DayMon)
{
Console.WriteLine("{0} {1}", dm.Item1,dm.Item2);

}
301デフォルトの名無しさん:2014/05/02(金) 18:10:50.51 ID:dSQl/o1w
クラスを作るという方法も考えたんですが、もっとお手軽にできないかと

https://ideone.com/wAaleA
↑ちょっとKeyValuePairが長いですが、これで行こうかと思います

>>300
ちょっと検討してみます
302デフォルトの名無しさん:2014/05/02(金) 18:37:49.20 ID:dSQl/o1w
>>300
ideoneではコンパイルできませんでしたが、VC#2013では結果が正しく表示されました
https://ideone.com/qen38H

OrderByは使えなかったのでSortで代用しています
タプルもKeyValuePairも似たような感じですが、若干ソースが見やすくなったかと
ありがとうございました
303デフォルトの名無しさん:2014/05/02(金) 21:16:13.38 ID:lNHwVscw
OrderByは拡張メソッドでUsing System.Linqが無いと使えない
private void Form1_Load(object sender, EventArgs e)
{
var lst = CreateList(new { Id = 0, Name = "" });
lst.Add(new { Id = 31, Name = "Jan" });
lst.Add(new { Id = 28, Name = "Feb" });
lst.Add(new { Id = 31, Name = "Mar" });
lst.Add(new { Id = 30, Name = "Apr" });

foreach (var item in lst.OrderBy(t => t.Id))
{
Console.WriteLine("{0}{1}", item.Id, item.Name);
}
}
private List<T> CreateList<T>(T val)
{
return new List<T>();
}
304デフォルトの名無しさん:2014/05/02(金) 23:44:12.05 ID:FeJk+PKM
>>298
enum
305デフォルトの名無しさん:2014/05/02(金) 23:59:39.01 ID:0wxqsA8J
多少工夫が必要だがDictionaryの初期化子って手も
306デフォルトの名無しさん:2014/05/03(土) 00:03:57.75 ID:KZJ62BJo
>>302
コードが短ければいいってものじゃないと思うけど
>>300みたいなのってパッと見てわかりやすいとは思わないわ
あまりにも抽象的過ぎて

これもさ、例えばlistを別のクラス、プロジェクトで利用したいってなったとき
t.Item1の見た目でどんな意味の値が入っているかわからないじゃない?
一つのメソッド内でしか使わない使い捨てならいいけどさ

public class Month
{
public int Name{get;set;}
public int Days{get;set;}
}

foreach (var mon in months)
{
Console.WriteLine("日数:{0} 月:{1}", mon.Days, mon.Name);
}
コードは長くなるけど、このほうがわかりやすいでしょ?
307デフォルトの名無しさん:2014/05/03(土) 00:17:35.06 ID:KZJ62BJo
>>303
これもさ、例えば曜日などのメンバーを追加したり、メソッドを追加したくなったらどうすんのって話
全部書き換えなきゃいけなくなる
308デフォルトの名無しさん:2014/05/03(土) 00:20:14.92 ID:JUyABsGs
自然に実装するのが一番だね
309デフォルトの名無しさん:2014/05/03(土) 00:29:10.18 ID:KZJ62BJo
暦なんて普遍的なものなんだから十分クラスとしてあってもよいもの
年によって月の日数も変化するし、曜日もほしくなる
カレンダークラスというのがほしくなるかもしれない
容易に拡張すると予測されるようなものを、
その場しのぎで柔軟性のないコードで実現したとしても
わかりやすい、使いやすいにはならないと思う
310デフォルトの名無しさん:2014/05/03(土) 00:44:39.43 ID:axBvBMhe
何か講釈してるけどDateTimeFormatInfoとかCalendarとか知らないのかな
311デフォルトの名無しさん:2014/05/03(土) 01:11:56.28 ID:KHkxCjGP
こういう人には関わらない方が良い
312デフォルトの名無しさん:2014/05/03(土) 02:25:42.67 ID:/0tPcitL
pngをicoに変換するソフト作ってみたくて調べてたら
ToIcon名前空間ってのを見つけたんだけど、こいつのマニュアルがいくら探しても出てきません
どこかに載ってるページとかありませんか?
313デフォルトの名無しさん:2014/05/03(土) 02:40:53.67 ID:zB11sd0u
どこでToIconてのを見つけたんだ?
314デフォルトの名無しさん:2014/05/03(土) 02:55:54.29 ID:/0tPcitL
VisualStudioの候補で出てきた
315デフォルトの名無しさん:2014/05/03(土) 06:04:12.62 ID:XhsVJdhh
ぐぐる様で出てこないということは存在しないということ


画像ファイルを読み込んでIconオブジェクト作成して
Icon.Saveで作れないこともないけど、単一サイズしか作れないし色数も変になるから
実質的には自分で書かないと
316298:2014/05/03(土) 12:32:42.87 ID:0tTnhsBI
いろいろご意見ありがとうございます

https://ideone.com/zEwVxf
整理した結果、汎用方式で行こうと思います

>>303
動かしてみて参考にさせていただきました

>>306
単純に表示する順序を入れ替えたいだけなので、一つのメソッド内でしか使わない使い捨てです
317デフォルトの名無しさん:2014/05/03(土) 13:32:06.08 ID:O1mw8o44
>>316
2度とくん中洲
318デフォルトの名無しさん:2014/05/03(土) 14:12:12.94 ID:7V85CoD7
>>278
何もわかってないんだな
319デフォルトの名無しさん:2014/05/03(土) 23:11:16.87 ID:RQXoEmML
パラメータ化クエリをトランザクション処理したいのですが、上手く動きません。
何が悪いのか、超が付く初心者なので、とんと見当がつかず。。。
ご指摘のほど、よろしくお願いします。
var cmdList = new List<OleDbCommand>();
OleDbCommand command = new OleDbCommand();
var plam1 = new System.Data.OleDb.OleDbParameter("@param", System.Data.OleDb.OleDbType.Integer);
plam1.Value = "2535";
command.Parameters.Add(plam1);
cmdList.Add(command);
command = new OleDbCommand();
var plam2 = new System.Data.OleDb.OleDbParameter("@param", System.Data.OleDb.OleDbType.Integer);
plam2.Value = "2539";
command.Parameters.Add(plam2);
cmdList.Add(command);
using (var cn = new OleDbConnection())
{
 cn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\test.accdb";
 cn.Open();
 OleDbTransaction transaction = cn.BeginTransaction(IsolationLevel.ReadCommitted);
 try
  {
  foreach (OleDbCommand cmdSet in cmdList)
  {
  cmdSet.Connection = cn;
  cmdSet.CommandText = "DELETE FROM t_家計簿 WHERE [No] = ?";
  cmdSet.ExecuteNonQuery();
  }
  transaction.Commit();
  }
}
320デフォルトの名無しさん:2014/05/04(日) 00:10:55.38 ID:QUU6NeMv
とりあえずコマンドのTransactionが未設定じゃないかな
321デフォルトの名無しさん:2014/05/04(日) 00:27:31.63 ID:I+QWjdQ8
まず普通にSQL通すとこからやって、パラメタとトランザクションは
別々に試して両方できてから合わせては?
322デフォルトの名無しさん:2014/05/04(日) 00:52:37.14 ID:WZQbe0KN
>とりあえずコマンドのTransactionが未設定じゃないかな

調べてみたら、まさにその通りでした。
初心者らしい、初歩的なミスでお恥ずかしい。

ありがとうございました。
323デフォルトの名無しさん:2014/05/04(日) 08:07:19.84 ID:zFJPqZSx
.Net4.5から追加されたSystem.IO.Compression.ZipArchive
クラスについてご教授下さい。
http://smdn.jp/programming/netfx/fcl/System.IO.Compression.ZipArchive/
↑サイトなどを参考にさせて頂いて
ファイルやディレクトリの圧縮・展開等ができることは確認しました。

この時、例えば大きなファイルを圧縮するような場合
プログレスバーを表示させたりする事も考えられますが
圧縮や展開の進捗を得る方法というのはありますでしょうか?
フリーのライブラリなどでは可能なものもありますが
あくまで、このクラスを使用する前提の場合
どういった方法が考えられますでしょうか。
よろしくお願い致します。
324デフォルトの名無しさん:2014/05/04(日) 08:16:33.82 ID:izVfMrBs
Stream使って読み書きするんだからそこで適当に通知すればいいだろ
325デフォルトの名無しさん:2014/05/04(日) 08:20:35.08 ID:zFJPqZSx
ありがとうございます。
FileStreamクラスで似たような事をした事があったので
もしかしたら可能かとは思ったのですが
なにぶん初心者サンデープログラマなもので
うまい事できずにいました。
可能だというお墨付きを頂けたので
もうちょい頑張ってみます。助かりました。
326デフォルトの名無しさん:2014/05/04(日) 09:24:10.11 ID:zFJPqZSx
元ストリームのLengthプロパティを取得して、それに対してReadByte・WriteByteメソッド
で書き込む度に進捗を報告するようにできました。助言いただけたおかげです。
ありがとうございます。またよろしくお願いします。
327デフォルトの名無しさん:2014/05/04(日) 10:48:12.54 ID:IPFrsn/P
どういたまして
328デフォルトの名無しさん:2014/05/04(日) 10:58:36.66 ID:y/VTbq9Y
ローカル変数に属性ってつけられない感じ?
329デフォルトの名無しさん:2014/05/04(日) 11:05:12.18 ID:izVfMrBs
うん
というか付けてどうするんだ
330デフォルトの名無しさん:2014/05/04(日) 13:23:29.95 ID:MX2IhFCN
闇属性 外部から不可視になる
331デフォルトの名無しさん:2014/05/04(日) 13:48:25.06 ID:8U+RhpvH
水属性 参照型は値型に、値型は参照型になる
332デフォルトの名無しさん:2014/05/04(日) 16:04:29.40 ID:c3Q0rGbO
ヘンタイ属性 お前ら
333デフォルトの名無しさん:2014/05/04(日) 17:04:07.99 ID:mi+P20vl
なんかキモい流れ
334デフォルトの名無しさん:2014/05/07(水) 11:01:32.36 ID:xSUe5qhE
中ニ病でも.NETがしたい
335デフォルトの名無しさん:2014/05/07(水) 11:25:59.65 ID:6XNtQ4R5
>>207
Excelはやたらとあるのに、Word関係の情報少ないよな・・・
同じ感覚で文章出力出来るかと思って安易に受けたら、ちょっとしたことでもえらく苦労した記憶が
336デフォルトの名無しさん:2014/05/07(水) 22:51:07.44 ID:unuMLq/O
まともな文書になると普通はお好みのスクリプトとTeX使うからね
オフィスなんか使うバカに情報発信はできないからドキュメントが少ないのは仕方が無いよ
337デフォルトの名無しさん:2014/05/08(木) 02:36:28.02 ID:CO6CxSEW
(´・∀・`)ヘー それでそれで?
338デフォルトの名無しさん:2014/05/08(木) 04:15:33.16 ID:prlxKI3U
エクセラとかワールドとかコンマネッツとか
ここは難しいインターネッツですね
339デフォルトの名無しさん:2014/05/08(木) 06:47:52.33 ID:m/3Cotp7
c#Nativeのデスクトップアプリ作れるやつは
いつ頃出るんでしょうか?
340デフォルトの名無しさん:2014/05/08(木) 06:54:20.47 ID:0Ta/ZJrX
我々が生きているうちに拝むことはないでしょう
341デフォルトの名無しさん:2014/05/08(木) 07:08:15.84 ID:m/3Cotp7
>>340
それは確かですか?
c#Native出たら使いづらいc++やめてc#一本で
行きたいんですが。
342デフォルトの名無しさん:2014/05/08(木) 07:59:05.22 ID:FbSc8Swp
>>335
まあ、文章の処理ならテキストでやるし、出力の一部変えたいだけなら差し込み印刷あるし、ちゃんとした組版やるには力不足で色々面倒だし...
昔、Word に入力されてる表を Excel に転記したいと言う依頼で一寸触ったきりだな ⇒ Word VBA
343デフォルトの名無しさん:2014/05/08(木) 08:43:59.98 ID:NviPB3le
.NETの入ってないWindowsはもう無いしWin8ストアアプリなら.NETはネイティブ扱い
もう完全にネイティブだよ
344デフォルトの名無しさん:2014/05/08(木) 19:51:14.67 ID:XvpxJEVk
> .NETの入ってないWindowsはもう無いしWin8ストアアプリなら.NETはネイティブ扱い
> もう完全にネイティブだよ

何言ってんのか全然わからん
誰か訳してくれ
345デフォルトの名無しさん:2014/05/08(木) 19:54:17.27 ID:OiZYTZUA
ランタイムが不要なバイナリはネイティブだ!
って言いたいんだろ。何言ってるのか全然分からんなw
346デフォルトの名無しさん:2014/05/08(木) 20:35:36.17 ID:7Gl9qGxi
ネイティブの定義が曖昧
347デフォルトの名無しさん:2014/05/08(木) 21:26:01.92 ID:wftUG4Xi
OSがサポートしてればネイティブ
ランタイムが必要ならネイティブじゃない
348デフォルトの名無しさん:2014/05/08(木) 21:36:58.45 ID:7Gl9qGxi
msvcrが動的リンクだとネイティブじゃないと
349デフォルトの名無しさん:2014/05/08(木) 21:58:55.52 ID:wftUG4Xi
その通り
350デフォルトの名無しさん:2014/05/08(木) 22:08:47.73 ID:OiZYTZUA
マジにそう思ってそうだな
351デフォルトの名無しさん:2014/05/08(木) 22:23:42.93 ID:01rpyJ3E
IEでサポートされてるからJSもネイティブ
352デフォルトの名無しさん:2014/05/08(木) 22:44:22.12 ID:dPnVK8av
ネイティブインディアン
353デフォルトの名無しさん:2014/05/08(木) 22:50:08.44 ID:dmrdHCKV
世界一周してインドに着いたぞ
土人が居るぜ?きっとインド人だ
残念アメリカ大陸でした
じゃぁネイティブインディアンだね
インド人もびっくり
354デフォルトの名無しさん:2014/05/08(木) 23:35:24.92 ID:wftUG4Xi
ネイティブと否ネイティブの違いなんかないよ
突き詰めれば全てネイティブな命令で動いてるからね
355デフォルトの名無しさん:2014/05/08(木) 23:45:03.13 ID:XvpxJEVk
>>354
コーヒー吹いたw
356デフォルトの名無しさん:2014/05/08(木) 23:54:04.43 ID:unkGA5W+
>>347
OSがサポートするってのとランタイムが必要ってのは排他的な概念なのか?
357デフォルトの名無しさん:2014/05/09(金) 00:24:22.85 ID:uV5nbiP8
ターゲットをWindows7以降と考えると
標準インストールの3.5はもはやOSの一部

システムDLLに依存するかGACのDLLに依存するかの違いでしかない
358デフォルトの名無しさん:2014/05/09(金) 00:28:44.62 ID:iw87ytFg
> ターゲットをWindows7以降と考えると
> 標準インストールの3.5はもはやOSの一部

だから何で無理やり仮定するんだよ
MSの努力を無駄にするなw

.NET自体ネイティブじゃないのにランタイム云々言われても

http://blogs.msdn.com/b/hirosho/archive/2010/01/09/managed-native-net-framework.aspx

しかしネイティブな命令ってどんな命令なんだ?
気になって寝られない
359デフォルトの名無しさん:2014/05/09(金) 00:46:12.13 ID:buRKsp6U
二進数の事だよ
360デフォルトの名無しさん:2014/05/09(金) 00:56:59.62 ID:uV5nbiP8
ああ、Vistaってまだサポート残ってたんだな
ngenサービス起動で実質ネイテイブってことでOK?

>>347
VCのってmsvcrtに依存してるやつ多くね?
あと2008 Redestribute入れろってよく怒られる

ネィテイブ信奉者には
CDとかUSBに書き込んで起動でOS介さずに
動くプログラムを作ってもらいたい。
USB売ってファミコンみたいなビジネスできないかな
361デフォルトの名無しさん:2014/05/09(金) 01:21:56.66 ID:JQaGUgSW
Microsoft .NET Nativeとか出てくるんだから、今の .NET はネイティブじゃないんじゃないの。
362デフォルトの名無しさん:2014/05/09(金) 06:09:37.34 ID:O/hcGSXl
OSがサポートしてればネイティブ論法なら.batはどうなるの
363デフォルトの名無しさん:2014/05/09(金) 06:43:01.93 ID:4zx449Wa
ネイティブってことだろうな
VCでビルドしたもんはほとんどが非ネイティブw
364デフォルトの名無しさん:2014/05/09(金) 07:17:50.07 ID:cCUVEC+A
ランタイムを介さないで、CPUのインストラクションコードで、OSのAPI直接呼び出して実行されるプログラムをネイティブと呼ぶなら、そんなカテゴリは無意味になりつつある。

まず、CPUの速度向上で、ランタイムのオーパーヘッドが問題になることが、無くなった。

ガベージコレクションのように、ライブラリのリンクより、ランタイムで実行した方が効率のいいサービスが一般化している。

OSの低レベルなAPIはランタイムでラップしないと、セキュリティホールが発生しやすいし対応しにくい。

近年は、ブログラムやシステムの複雑化や肥大化が進んでいるから、実行効率より保守性や移植性を優先すべきになった。


つまり、デスクトップ環境においては、ネイティブなコードに拘る意味が無い時代になったんじゃないかな。少しさみしいけど。
365デフォルトの名無しさん:2014/05/09(金) 07:33:46.00 ID:4zx449Wa
>>364
.NETのことも.NET nativeのことも、なんもわかってないなw
366デフォルトの名無しさん:2014/05/09(金) 07:37:23.14 ID:k6RX7FOd
スマホアプリ作りの世界だと
ネイティブ=プラットフォーム依存
非ネイティブ=プラットフォーム非依存
で括られることが多いみたいだね
だからAndroidのJavaモドキはネイティブでUnityのC#は非ネイティブ
367デフォルトの名無しさん:2014/05/09(金) 07:38:44.53 ID:yGvDvFNw
変な希望を捨ててC++使ってればいいんだよ
368デフォルトの名無しさん:2014/05/09(金) 08:29:16.28 ID:giBvEpb/
C++11や14の機能みておもしろくなったなーとは思う
けど、どうせ使うのはC#かと思って手が出せないな
369デフォルトの名無しさん:2014/05/09(金) 12:04:13.73 ID:HTr67Xym
そこでまさかのC++/CLI
370デフォルトの名無しさん:2014/05/09(金) 13:15:40.54 ID:YiLzwXxL
それだけはないわ
371デフォルトの名無しさん:2014/05/09(金) 14:49:24.40 ID:Mr0Sp7Ii
nativeを土着と訳せば >>366 で問題ない
372デフォルトの名無しさん:2014/05/09(金) 19:43:03.89 ID:k6RX7FOd
つまりC#はエイリアンか
373デフォルトの名無しさん:2014/05/09(金) 19:56:12.53 ID:NDcf6f8g
>>366
darvik(VM)上で動くコードをネイティブって言う人見たことないぞ。
>非ネイティブ=プラットフォーム非依存
こんなこと言う人はもっと見たことない。
374デフォルトの名無しさん:2014/05/09(金) 20:18:57.37 ID:v/oaYztB
C#マシンみたいなの作ればええんか?
375デフォルトの名無しさん:2014/05/09(金) 20:22:28.06 ID:7rX/IBWU
AndroidででネイティブっていうとNDKだね
376デフォルトの名無しさん:2014/05/09(金) 21:01:57.37 ID:iw87ytFg
仮に.NETがネイティブだったとしてなんかいいことあるのか
主張自体の意味が分からん
377デフォルトの名無しさん:2014/05/09(金) 21:05:29.92 ID:E9SfM4pV
ネイティブだと時間かけてコンパイルできるから
最適化がカリカリに効いて超早くなるらしいね
378デフォルトの名無しさん:2014/05/09(金) 21:19:32.89 ID:4zx449Wa
難読化が不要になるかもしれない
anycpu向けにネイティブも含むって形のビルドだと不要にならないが
379デフォルトの名無しさん:2014/05/09(金) 22:19:04.91 ID:aGSQbVG9
ネイティブっていうのはもともとのとか生まれたところのとかいう意味だったはず
つまりWindows上でビルドされたアプリケーションはすべてネイティブなのだ!!!
380デフォルトの名無しさん:2014/05/09(金) 23:03:28.43 ID:WJR4c6c3
ΩΩΩ<な、なんだってー!!
381デフォルトの名無しさん:2014/05/09(金) 23:47:40.08 ID:YiLzwXxL
まあ、JIT でコンパイルされたコードとか悩ましいものもあるからなぁ
382デフォルトの名無しさん:2014/05/10(土) 07:43:33.83 ID:rYs4anx5
>>377
ngenは起動時間短縮も含めてかなり高度なAOT最適化がかかるよ
経験があれば感覚的に分かってるもんだが、
ネイティブのコンパイルって時間かけたからってそんなに速くなるもんじゃない
コンパイル時間ってほとんどIOだしな
383デフォルトの名無しさん:2014/05/10(土) 13:47:56.20 ID:m/AO6ufT
実際はおそらくいまだに実現してないと思うけど、.NETが出たときネイティブコンパイルに対する
JITの利点として挙げられたのが「実行環境のCPUの命令セットに対応した最適化が可能になる」
だったのを知らない奴がいるねw
384デフォルトの名無しさん:2014/05/10(土) 14:35:11.11 ID:Om1HfajV
いきなりそんなちんけな知識披露してどうしたいんだ? (w
385デフォルトの名無しさん:2014/05/10(土) 17:29:27.79 ID:libkbDSO
その調子で UCSD p-System を褒め称えてんくれたまえ
386デフォルトの名無しさん:2014/05/10(土) 23:34:14.22 ID:JsdyMFBf
C++14なんて出来たのか
学生で暇だったから11まではなんとか着いて行ったが
仕事で.NETに毒されてもう勉強する気にはなれんなぁ
387デフォルトの名無しさん:2014/05/10(土) 23:44:30.25 ID:+eAN56dx
>>383
そのx86系向け以外の実装がなかなか出てきてくれないのがなー
Xamarinくらいだっけ?実用的なの
388デフォルトの名無しさん:2014/05/10(土) 23:49:21.32 ID:smOEHBq/
IA64とかARM(CF、WP、RT)とかあるだろ
389デフォルトの名無しさん:2014/05/11(日) 01:27:29.19 ID:U/KhMBzc
>>387
いや元々は必ずしもそんな大風呂敷な話じゃないよ。
というのはx86って一口に言っても最大公約数的な部分以外の命令は共通じゃない。
390デフォルトの名無しさん:2014/05/14(水) 00:47:16.22 ID:K0yI8GQ1
C#でブラウザを操作しようとしていますがエラーが出てしまいます。
WebBrowserコントロールではなくIEを直接操作したいです。

以下コードを実行したところエラーが出てしまいました。
IEを直接操作する場合には、 getElementById("***"); の
コードを使う事は出来ないのでしょうか?


≪コード≫
SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer();
mshtml.IHTMLElementCollection mshtml_ec;
mshtml_ec = ie.Document.getElementById("id_test"); ←ここでエラー

≪エラー ≫
型 'mshtml.HTMLDivElementClass' の COM オブジェクトを
インターフェイス型 'mshtml.IHTMLElementCollection' にキャストできません。

IID '{3050F21F-98B5-11CF-BB82-00AA00BDCE0B}' が指定されたインターフェイスの
COM コンポーネント上での QueryInterface 呼び出しのときに次のエラーが発生したため、
この操作に失敗しました: インターフェイスがサポートされていません
(HRESULT からの例外:0x80004002 (E_NOINTERFACE))。
391デフォルトの名無しさん:2014/05/14(水) 00:49:50.84 ID:emzrQeCt
mshtml.HTMLDivElementClass div = ie.Document.getElementById("id_test");
392デフォルトの名無しさん:2014/05/14(水) 01:05:18.64 ID:4vw7qdQU
イメージ的にはこれしてるからエラーになる
int element;
int[] collection;
collection = element;  ←エラー
collection[0] = element; ←エラーではない(初期化されてないのは気にするな
393デフォルトの名無しさん:2014/05/14(水) 03:12:41.94 ID:bi1kolXx
>>391 >>392

mshtml.HTMLDivElementClass div = ie.Document.getElementById("id_test");
     ~~~~~~~~~~~~~~~~~~~~~~
このコードに置き換えたところ

Interop type 'mshtml.HTMLDivElementClass' cannot be embedded.
Use the applicable interface instead.


というエラーが出てしまいます。どうやら HTMLDivElementClass 自体が
認識されていない様ですが皆さんの環境では普通にビルド通るのでしょうか?
394デフォルトの名無しさん:2014/05/14(水) 04:00:10.69 ID:k2UyUu49
>>393
id_testは<div>なのか?
getElementByIdが返してるもの良く確認してみろよ
395デフォルトの名無しさん:2014/05/14(水) 08:38:22.58 ID:ICklhj5Y
IHTMLDivElement辺りのインターフェイス使えば
396デフォルトの名無しさん:2014/05/14(水) 12:08:24.76 ID:lHqltGg+
TからSomeClass<T>に変換するジェネリックなimplicit operatorを作るには
どのように書けば良いですか?
397デフォルトの名無しさん:2014/05/14(水) 12:16:58.20 ID:ICklhj5Y
SomeClass<T>にそのまま書けば良いんじゃない? とりあえず4.5なら通った
398デフォルトの名無しさん:2014/05/14(水) 12:18:55.70 ID:0F7NlhK7
>>394 >>395
mshtml.HTMLDivElementClass div;
//Interop type 'mshtml.HTMLDivElementClass' cannot be embedded. Use the applicable interface instead

そもそもこの定義をするだけでエラーが出てしまいます。
399デフォルトの名無しさん:2014/05/14(水) 12:41:44.92 ID:lHqltGg+
すいません、ミニマムコードを簡略化しすぎました。

SomeClass1を継承したSomeClass2<T>があって、
Tから変換されたSomeClass2<T>をSomeClass1として返すoperatorが
ほしいです。
400393:2014/05/14(水) 13:05:07.85 ID:0F7NlhK7
どなたか >>398 のエラーを解決してくださいm(-_-)m
401デフォルトの名無しさん:2014/05/14(水) 13:10:20.17 ID:4vw7qdQU
402393:2014/05/14(水) 15:53:27.07 ID:0F7NlhK7
>>401
結局、InternetExploreを直接操作する場合には

ie.Document.Getelementbyid();

使えないってことですか?
403デフォルトの名無しさん:2014/05/14(水) 15:58:33.20 ID:ICklhj5Y
>>402
>>395
HTMLDivElementでもいいけど
404デフォルトの名無しさん:2014/05/14(水) 16:00:14.37 ID:4vw7qdQU
使えるって。エラー原因も書いてあるじゃん
405デフォルトの名無しさん:2014/05/14(水) 22:19:20.87 ID:hc7I7FLC
>>403 >>404 ありがとうございます。出来ました!
406デフォルトの名無しさん:2014/05/15(木) 08:23:27.55 ID:yeWrapbB
横からだけど、あれってどういうときに埋め込みCOMを使えないの?
なんとなくクラスじゃなくてインターフェイスにしたら行けたような記憶はあるんだけど
具体的にはどういう仕組なんですか
407デフォルトの名無しさん:2014/05/16(金) 01:13:32.52 ID:i/xGMuQU
指定したIDの取得が出来たかどうかを判定する為に
以下コードを記述したのですがエラーになってしまいます。
この場合、どういう風に記述すれば良いのでしょうか?


【コード】
SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer();
if (ie.Document.getElementById("WS2m") != System.DBNull) ← エラー

【エラー】
'System.DBNull' is a 'type', which is not valid in the given context
408デフォルトの名無しさん:2014/05/16(金) 01:31:59.80 ID:tdv/NjoT
is
409デフォルトの名無しさん:2014/05/16(金) 04:25:55.78 ID:iWose0vD
なぜでこれで大丈夫だと思ったのか逆に聞きたい
410デフォルトの名無しさん:2014/05/16(金) 09:26:59.63 ID:z9IT6DkQ
if (ie.Document.getElementById("WS2m") != null)
じゃないの?
411デフォルトの名無しさん:2014/05/16(金) 09:32:42.61 ID:WHbqzO3I
>>407
DBNullと比較したいならDBNull.Valueだろ
なんでDBNullが出てきたか知らないけど。
キミが書いたコードは値と型を比較してるからコンパイルできないのね
412デフォルトの名無しさん:2014/05/16(金) 11:11:03.95 ID:qpQIOLBV
IEを自動巡回するプログラムでメモリリークする場合の対処法ありますか?
MSが配布している「Windows Server 2003 Resource Kit Tools」というツールの中に含まれている「empty.exe」を実行するように組み込んだのですが、
2~3時間起動させておくとメモリがとんでもないことになっています。
何か対策あれば教えてください。
413デフォルトの名無しさん:2014/05/16(金) 13:33:39.95 ID:VAV/Ywcf
empty.exeでぐぐると頭悪そうなブログが大量に引っかかるな

あなたIEのオートメーションで質問してる人でしょ?
COMオブジェクトを適切にMarshal.ReleaseComObjectしてないとそうなると思うよ
414デフォルトの名無しさん:2014/05/16(金) 13:44:57.44 ID:wDpDXYS0
定期的にプログラム再起動させたらいいw
415デフォルトの名無しさん:2014/05/16(金) 14:28:13.57 ID:WW/l1jAv
ほう、こんなツールがあったのか
しかしこれをメモリ開放ツールと宣伝するのはいかがなものか
416デフォルトの名無しさん:2014/05/16(金) 14:36:51.56 ID:dX1r0FTl
>>410 >>411
if (ie.Document.getElementById("hoge") != DBNull.Value) ・・・(X)
{
  // ie.Document.getElementById("hoge") 指定IDの取得が出来た場合の処理
  ブロック:A
}
else
{
  // ie.Document.getElementById("hoge") 指定IDの取得が出来なかった場合の処理
  ブロック:B
}

上記の様にコードを修正しました。
すると、指定したIDの取得が出来た場合には(X)の部分で次のエラー
メッセージが表示されます。

演算子 '!=' を 'mshtml.HTMLDivElementClass' と
'System.DBNull' 型のオペランドに適用することはできません


出来なかった場合には、エラーはDBNull.Valueで正常に判定され
ブロック:Bに入ります。

以上を踏まえどういうコードを書けばIDが取得出来た場合、出来なかった場合とを
きっちりと判定する事が出来ますでしょうか?
417416:2014/05/16(金) 15:21:57.53 ID:dX1r0FTl
どうしても解決出来ません。
何とかお教えください。
418デフォルトの名無しさん:2014/05/16(金) 15:27:29.07 ID:VAV/Ywcf
DBNullなんてどこから出てきたの?
nullと比較しろって>>410が書いてるけどそれは確かめたの?

きちんと基本から勉強したほうがいいよ
IEとかじゃなくてC#の文法からさ
419デフォルトの名無しさん:2014/05/16(金) 15:28:40.77 ID:VAV/Ywcf
一度変数に受けたらどうよ。。

var element = ie.Document.getElementById("hoge");
if( element != null )
{
 ...
}
else
{
 ...
}
420デフォルトの名無しさん:2014/05/16(金) 15:36:36.90 ID:+9XdxNxU
! DBNull.Value.Equals(...)
421デフォルトの名無しさん:2014/05/16(金) 15:38:49.49 ID:3SEf4bpg
>>419
スクレイピングとかでぐぐれば
422デフォルトの名無しさん:2014/05/16(金) 17:56:19.30 ID:ymohds+z
>>418 >>419 >>420
ありがとうございます。>>419で解決しました!

因みにですが、
var element C#なのに型の宣言をせずに変数を定義する事が出来るのですね。


>>421
スクレイピングでぐぐってヒットするブログですが作者の
オナニーコードだらけで参考になるページがありませんでした。
423デフォルトの名無しさん:2014/05/16(金) 18:08:22.53 ID:MfiAbdMM
隣のスレからvar厨とアンチvarを動員すべき?
424デフォルトの名無しさん:2014/05/16(金) 18:19:25.77 ID:ymohds+z
>>423
よくわからないけど、型定義いらんの?
425デフォルトの名無しさん:2014/05/16(金) 18:23:57.81 ID:gv27ESQ0
>>424
型定義が要らないんじゃなくて、型を指定しなくてよい
コンパイラ様が型を推測して決定してくれる
426デフォルトの名無しさん:2014/05/16(金) 18:54:07.73 ID:oTvEFO9A
>>425
>コンパイラ様が型を推測して決定してくれる
凄く心配です。大丈夫なんですかね。コードの記述方法として
427デフォルトの名無しさん:2014/05/16(金) 19:03:06.75 ID:5Dsd57Kf
相談室の方で侃々諤々やってたから見てくると良いよ
428デフォルトの名無しさん:2014/05/16(金) 19:48:26.77 ID:EwsF+ox0
>>426
DBNullとNullの違いも分からないレベルなら
全く心配する必要ないから安心してください
429デフォルトの名無しさん:2014/05/16(金) 19:55:42.13 ID:XsRxTYeM
varのおかげで彼女が出来ました
430デフォルトの名無しさん:2014/05/16(金) 20:54:47.74 ID:T9bJjjvZ
かなり初歩的な事だと思いますが教えて下さい<m(__)m>
C#です。


private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = ((Button)sender).Text;


ボタンをクリックすると、そこに入力されている文字が
『textBox1』に表示される文だと思うのですが、

((Button)sender).Text;

ここの部分はなぜこのようになるのでしょうか?

(Button)sender => これはsenderをButton型にキャストしている?

((Button)sender).Text; => なぜ().Text このTextの前の括弧も必要なのですか?


長文すいません<m(__)m>
431デフォルトの名無しさん:2014/05/16(金) 20:56:46.78 ID:VAV/Ywcf
ずぶの初心者がIEオートメーションとかやりだして
dynamicだらけになると教育上よろしくないとは思う
432デフォルトの名無しさん:2014/05/16(金) 21:01:50.46 ID:VAV/Ywcf
>>430
>(Button)sender => これはsenderをButton型にキャストしている?

はい。

>((Button)sender).Text; => なぜ().Text このTextの前の括弧も必要なのですか?

メンバーアクセス演算子(.)のほうが演算子の優先順位が上なので
(Button)sender.Text
と書くと
(Button)(sender.Text)
の意味になっちゃうからね。sender(object型)にはTextなんてメンバーはないからこの場合コンパイルエラー。
433デフォルトの名無しさん:2014/05/16(金) 21:09:28.95 ID:5Dsd57Kf
括弧が増えるのが嫌で、キャスト失敗可能性がないところでもつい
(sender as Button).Text
ってas演算子を使ってしまう
434430:2014/05/16(金) 21:11:50.84 ID:T9bJjjvZ
>>432
早速の回答ありがとうございます!
なるほど、そういう事だったんですね!

ここがなぜそうなるのかずっと分らなくて困ってましたw

ありがとうございました<m(__)m>
435デフォルトの名無しさん:2014/05/16(金) 23:33:00.07 ID:H9byKZWo
http://d.hatena.ne.jp/yjochi/20140516#1400218482
AssemblyInfo以外に端末固有で埋め込まれる情報ってないんだっけ?
436デフォルトの名無しさん:2014/05/17(土) 14:00:31.48 ID:QUUNT5cx
>>428
回答するだけの知識が無いのですね。
正直にそうおっしゃっていただければ良いものを。
437デフォルトの名無しさん:2014/05/17(土) 15:51:04.81 ID:bGHl19aa
>>436
そういうパターンもあるが流石にコレは違うだろ
DBNull知っててもなんの自慢にもならんしな
438デフォルトの名無しさん:2014/05/17(土) 19:55:39.06 ID:Sq+cRhDG
質問させてください。

C#でTreeViewとTextBoxを使ったアウトラインプロセッサを作ろうと思っています。
以下の様な設計になると思うのです。

//ノードの内容を保持するクラス
public class myClass
{
public string Title { get; set; } //ノードのタイトル
public string Contents { get; set; } //ノードの内容
}

1 myClassのインスタンスをTreeNode.Tagに代入する。
2 TextBoxを使ってmyClass.Titleが変更されたらTreeViewに表示されている該当ノードのテキストを更新する。

この場合、((myClass)TreeView.SelectedNode.Tag).Titleが変更されるたびに
TreeView.SelectedNode.Text = ((myClass)SelectedNode.Tag).Title;
とする必要がありますよね。
TreeView内ノードのTagのプロパティが変更された通知をTreeViewで受け取ってイベントを起こす、というのは、どういう実装になるのでしょう。
TreeViewかTreeNodeをオーバーライドする必要があるのか?
それぞれを継承したコントロールを作るべきなのか?
あるいは設計が間違っているのか?

ご意見をうかがいたいです。どうぞよろしくお願いします。
439デフォルトの名無しさん:2014/05/17(土) 20:09:47.62 ID:uBMVVO4L
TreeNodeを継承したクラスを作るかな

ちなみに質問なんだけど
ノードは子ノードを持たないのかな?
440デフォルトの名無しさん:2014/05/17(土) 20:12:07.75 ID:LIsFRLLH
イベント通知は
public event EventHandler TitleChanged;
private string _Title;
public string Title{
 get{return _Title;}
 set{
  if(value!=_Title){
   _Title=value;
   if(TitleChanged!=null) TitleChanged(this,EventArgs.Empty);
  }
 }
}

が基本
イベントはINotifyPropertyChangedを使うのが普通だけど
441デフォルトの名無しさん:2014/05/17(土) 20:29:37.40 ID:Sq+cRhDG
>>439
ええっ、持ちます。何か問題があるんですか……?

>>440
どうもありがとうございます。やってみます。
442デフォルトの名無しさん:2014/05/17(土) 23:10:58.28 ID:wL9K2nHt
ゆうちゃん事件で.NETアプリにはコンパイルした環境の情報が知らぬ前に埋め込まれてるって言ってたな
443デフォルトの名無しさん:2014/05/17(土) 23:17:41.09 ID:iBaM0QV5
>>442
それなら、回りくどい立証など必要ないはずだが、コンパイルだってリモートでできるから無意味だよなw
444デフォルトの名無しさん:2014/05/17(土) 23:46:19.11 ID:LIsFRLLH
試しに空exeをコンパイルしてみたら16バイト違う箇所があったからGUID埋めてるんだろうな
445デフォルトの名無しさん:2014/05/17(土) 23:58:33.92 ID:QUUNT5cx
ゆうちゃんかわいそう
446デフォルトの名無しさん:2014/05/18(日) 00:34:23.47 ID:krGu/iNt
>>443
署名してなきゃいくらでも弄れそうだが証拠になんのかな
447デフォルトの名無しさん:2014/05/18(日) 08:27:27.43 ID:8NF5w4j9
GUIDから環境の情報を取り出すのは不可能
今のコンパイラが埋め込むGUIDは完全ランダム
448デフォルトの名無しさん:2014/05/18(日) 08:47:28.12 ID:4DaHWzr8
gui部分だけqtを使いたいのですが一番シンプルなスレットセーフの
作り方を教えてください。

qtイベント周りが馴染めない・・・
449デフォルトの名無しさん:2014/05/18(日) 09:51:39.63 ID:VTr3IL1L
スレチ
450デフォルトの名無しさん:2014/05/18(日) 12:43:55.68 ID:rnQSzLo4
>>447
このPCでビルドしたらこのGUIDが埋め込まれる。だからこのGUIDと同じGUIDが埋め込まれてたらそのPCだ
って判断してたと思うんだけど、毎回GUIDが変わったりしてそれができなくなったのか?
451デフォルトの名無しさん:2014/05/18(日) 16:43:38.42 ID:0bx4PTQ0
そもそも埋め込まれるGUIDって属性とかで指定できるんじゃないのか?
452デフォルトの名無しさん:2014/05/19(月) 00:27:02.82 ID:/VRh8m5q
GUIDなんて自分で簡単に書き換えられるじゃんバカなの?
453デフォルトの名無しさん:2014/05/19(月) 00:41:36.09 ID:vP4RlhBD
そりゃ変更できるよ。変更したもしくはそのまま変更しなかったGUIDが
比較対象のソフトもしくは開発環境と一致する可能性がどんだけあるんだって話だよ。バカなの?
454デフォルトの名無しさん:2014/05/19(月) 05:33:09.82 ID:nxdI4+Ig
変更しなかった、ランダムな値が一致する率は低いだろうけど
指定した値に変更出来るんじゃって話だぞ

一致するように変更して偽装出来るんじゃないかって話だろ、バカなの?
455デフォルトの名無しさん:2014/05/19(月) 07:13:42.59 ID:tIfFnZmg
素人探偵様は晩ご飯の推理でもしてろ
456デフォルトの名無しさん:2014/05/19(月) 17:49:01.81 ID:MpNqRu0Y
これで有罪確定だな。
以前片山の質問に答えたかもしれないから罪悪感あんだよね。
457デフォルトの名無しさん:2014/05/19(月) 22:45:34.31 ID:FLEQJh3I
簡単な画像処理プログラムを作っています。
openFileDialog1.ShowDialog()でファイルから画像を読み込む際、ダイアログ上で画像のサムネイルをダブルクリックして決定すると、
たまたまダイアログの背後に隠れていたpictureBox1のMouseUpイベントが反応してしまいました。
これを回避する方法はありますか?
458デフォルトの名無しさん:2014/05/19(月) 23:39:10.23 ID:ZuQxAEmV
マジだ知らんかったわ
459デフォルトの名無しさん:2014/05/20(火) 01:18:08.42 ID:rgNkrX1X
MouseDown後のMouseUpのみ処理するようにすれば済むけど、
泥臭いし後から意図をくみ取りにくいな。
460デフォルトの名無しさん:2014/05/20(火) 03:08:08.84 ID:l8495QE8
C++使えるのにわざわざC#でウィルス作成する理由なんてあるの?
身分証明書付きで犯行予告送るようなもんじゃんw
461デフォルトの名無しさん:2014/05/20(火) 03:14:41.97 ID:f9YPeLav
コピペだらけでC#を碌に使えない奴がC++でウイルスを作れるわけないだろ。
462デフォルトの名無しさん:2014/05/20(火) 04:23:21.41 ID:7+uR1JPv
ウイルス作り慣れてるならC++なんだろうけど
初めてやるようなもんは、C#の方が開発時間短くすむ
463デフォルトの名無しさん:2014/05/20(火) 07:03:13.53 ID:l/MaaGVr
ここで話さないと死ぬのかてめーは
死ぬか?今
464デフォルトの名無しさん:2014/05/20(火) 09:36:21.71 ID:lETONsi7
>>463
ゆうちゃん乙
465デフォルトの名無しさん:2014/05/20(火) 13:00:25.93 ID:fbMM1sIr
>>457
DobuleClickイベントは2回目のMouseUpを受け取って初めて成立するもんだろ・・・
Windowsの設定を変えてシングルクリック操作に統一してしまえw

MS> バグだけど直せない
https://connect.microsoft.com/VisualStudio/feedback/details/692962/
466デフォルトの名無しさん:2014/05/20(火) 13:30:12.03 ID:7+uR1JPv
馬鹿っぽいけどbuttonup受信用のダミーフォームを下に開いとけば簡単に解決しそう
467デフォルトの名無しさん:2014/05/20(火) 18:03:25.74 ID:lETONsi7
透明フォームはマウスイベント拾わないからダメかと
468デフォルトの名無しさん:2014/05/20(火) 18:31:15.07 ID:lvkbfHG0
ダイアログを表示する前にフラグたてておく

最初のMouseDownでフラグを下げるようにして
フラグがたってるときのMosueUpは破棄

で解決やん
469デフォルトの名無しさん:2014/05/20(火) 18:32:01.00 ID:lvkbfHG0
増江アップ……
470デフォルトの名無しさん:2014/05/20(火) 20:18:32.63 ID:BlDb7c/c
471デフォルトの名無しさん:2014/05/20(火) 20:45:52.40 ID:lETONsi7
じゃあ継承だな
472デフォルトの名無しさん:2014/05/20(火) 21:59:07.61 ID:/BZAV6I+
Rx…
473デフォルトの名無しさん:2014/05/20(火) 22:06:30.13 ID:wdE7nCB8
ステートフルな操作になるのでRxでやることではないだろ
それを言うならasync
474デフォルトの名無しさん:2014/05/20(火) 22:47:04.01 ID:z0N+xEYi
俺もC#でウイルス作っちゃうぞ はい

System.IO.File.Delete("C:\")
475デフォルトの名無しさん:2014/05/20(火) 23:09:16.22 ID:eq9LTubx
最近、C#の継承の仕方が分かったのですが、
ハッカーとして警察に捕まるレベルになったでしょうか?
476デフォルトの名無しさん:2014/05/20(火) 23:15:28.47 ID:brd7BZh9
冤罪のリスクがあるから今すぐVBエンジニアに転職した方がいい
477デフォルトの名無しさん:2014/05/20(火) 23:19:31.02 ID:wdE7nCB8
もしVB製ウィルス被害が問題になったら
世の中のVBドカタは本気でそういうこと言い出しそう
478デフォルトの名無しさん:2014/05/22(木) 03:08:29.96 ID:QIcUg8Dq
Debug.WriteLineですがあくまでもデバッグ時に使うコードですよね?
別にビルドが完了して実行モジュールにする際には
消した方が良いのでしょうか?

動作には関係が無いのでそのままデバッグコードを
残していても問題が無いのかなぁーと思いまして
479デフォルトの名無しさん:2014/05/22(木) 03:12:23.80 ID:6uPwquR0
ほっとくと際限なく増えるから俺は消す
480デフォルトの名無しさん:2014/05/22(木) 09:37:59.45 ID:T9dtrulV
メディカルサイト歯科相模原.日吉サンテラス歯科.藤沢なのはな内科 スマイル歯科.亀有 リリオ歯科.八王子 アクロスみなみの歯科.足立 ハート歯科新宿くろさか歯科熊本ファミリー歯科伊勢原桜台歯科森林公園滑川モール歯科横浜いちょう歯科.小田原めぐみ歯科ホワイトスタイ
481デフォルトの名無しさん:2014/05/22(木) 09:45:06.90 ID:EDjucqfY
>>478
リリースビルドならコンパイルされないから見づらくならない程度にのこしとけ
482デフォルトの名無しさん:2014/05/22(木) 11:48:23.22 ID:jxaWow30
残す理由が無ければ消す
コメントと同じくきちんとメンテされなければ有害
483デフォルトの名無しさん:2014/05/22(木) 11:56:22.32 ID:J69IBQnE
VS2012で作ったプロジェクトをVS2010で開く方法ってあります?
484デフォルトの名無しさん:2014/05/22(木) 19:47:26.98 ID:bw4eV9eT
slnファイルのバージョン書き換えで
485デフォルトの名無しさん:2014/05/22(木) 20:02:54.09 ID:J69IBQnE
>>484
出来ました、ありがとうございます
486デフォルトの名無しさん:2014/05/22(木) 23:21:58.64 ID:M0DqzqG/
C++のテンプレートパラメータのように
ジェネリック引数に数値を使うことはできないのかな?
487デフォルトの名無しさん:2014/05/22(木) 23:26:24.56 ID:ECkRJuZ0
無理
今時そんなことで速くはならんよ
488デフォルトの名無しさん:2014/05/24(土) 20:47:48.22 ID:Fzc1d2cw
プロジェクト構成ファイルを操作するためのライブラリはありますか?
地道にMSBuildの仕様を調べてXML操作するしかないのでしょうか?
489デフォルトの名無しさん:2014/05/24(土) 22:42:15.93 ID:Wl2IpIUu
いやMSBuildというのはそのライブラリそのものだよ
.NETに入ってるMicrosoft.Build.~のDLLと名前空間を使う
まあVSに生成されたXMLをベースにしてXML操作するほうが簡単だと思うけどね
490デフォルトの名無しさん:2014/05/25(日) 15:59:32.50 ID:607flr5t
JaneStyleのスレ欄やスレ一覧はフォーカスがなくてもホイールでスクロールできますが、
このときフォーカスが移動していません
(タブ部分をスクロールした場合はフォーカスが移動するようですが)

これと同様に、任意のControlにあるフォーカスを移動することなく、
別のControlをホイールでスクロールする方法はありませんか?
スクロール対象は今のところ以下のクラス(を継承したクラス)ですが今後増えるかもしれません
 (Rich)TextBox、WebBrowser、TreeView、DataGridView、
 TabControlのタブ及び中身、ComboBox、NumericUpDown、

※ちなみにテキストエディタと専ブラを足して2で割ったようなものを作るのが目的で、
 UIをできるだけJaneに近づけようとしてます
491デフォルトの名無しさん:2014/05/25(日) 16:00:45.02 ID:xRi2p+wu
ある
492デフォルトの名無しさん:2014/05/25(日) 16:27:18.55 ID:607flr5t
即答ありがとうございました
質問する時は時間帯を考えたほうがいいことが分かりました
493デフォルトの名無しさん:2014/05/25(日) 16:36:07.92 ID:+O+pC0c3
>>490
ホイールの移動量をフォームで取得して
コードで直接任意のコントロールのスクロールバーを移動させればいいよ
494デフォルトの名無しさん:2014/05/25(日) 16:42:55.10 ID:b4+7ngHB
IMessageFilter実装してWM_MOUSEWHEELでマウス位置のコントロール探してSendMessage
495デフォルトの名無しさん:2014/05/25(日) 17:01:02.36 ID:4JTDEA8b
>>490
やったことないのでただの言いっぱなしだけど、SPY+で見る限りコントロールの親のフォームは
入力フォーカスがあるコントロールより先にWM_MOUSEWHEELを受け取るようだから、
WndProcでこれを横取りしてマウスポインタの下のコントロールに投げてやればいいんじゃないの?

もちろんこの場合、少なくとも単純な実装では、逆に別のコントロールで入力フォーカスがあるときでも
ホイールのイベントを受け取れなくなってもしまうと思うが。
496デフォルトの名無しさん:2014/05/25(日) 17:13:57.25 ID:607flr5t
>>493
以下の方法で軽く試したら期待通りの動きをしてくれそうです
ありがとうございました

フォームのMouseWheelイベントに次のイベントハンドラを設定
private void Form_MouseWheel(object sender,MouseEventArgs e){
if( targetControl.ClientRectangle.Contains(targetControl.PointToClient(Cursor.Position)) ) {
// targetControlのスクロール処理
}
}
また、他のすべてのフォーカスを取りうるControlには次を設定
private void Control_MouseWheel(object sender,MouseEventArgs e) {
Form_MouseWheel(sender,e);
}

>>494-495
回答ありがとうございます
上記の方法では「すべてのControlに~」の作業が面倒なので、その方法も調べてみます
497デフォルトの名無しさん:2014/05/25(日) 17:20:34.56 ID:xRi2p+wu
フォームとコントロールをそれぞれ継承して処理したほうがスッキリすると思う
498デフォルトの名無しさん:2014/05/25(日) 17:26:09.59 ID:JNcJNPEt
スレッドにフックかけちゃったほうが楽だろ
499デフォルトの名無しさん:2014/05/25(日) 22:34:20.28 ID:ZAxnvFu2
こういうお節介な処理を組み込んだGUIって使いにくいし保守も面倒だよね
GUIは可能な限りシンプルで余計なことをしないものが良いよ
500デフォルトの名無しさん:2014/05/25(日) 22:39:40.33 ID:WRqaympE
それで済んだら世の中のSEPGはほとんど失業するんだけどな
客がクソ細かいことに拘ってSEが無駄に複雑な要件を作り上げることで成り立つ業界だ
501デフォルトの名無しさん:2014/05/25(日) 23:20:54.59 ID:RbuUC3oO
一理はあるけどそれは言い過ぎだな。
それ以前に、>>490のいうような要件は今時のUIとしてはそんなに変則的なものじゃないように思う。
502デフォルトの名無しさん:2014/05/25(日) 23:31:33.60 ID:A1ke70fM
今時とかそんなものはどうでもいい
俺の知らない物は全て「普通」ではないのだ

分かるかいこの意味
503デフォルトの名無しさん:2014/05/26(月) 00:29:29.79 ID:JU7KLL2g
松鶴家千とせ、ですね
504490:2014/05/26(月) 00:51:42.84 ID:jkQwR0J8
>>494を参考に検索ワードを変えて探したところドンピシャな記事を見つけました
ttp://someprog.blog.fc2.com/blog-entry-8.html
おかげで目的を達成できました

遅くなりましたが回答していただいた方、改めてありがとうございました
505デフォルトの名無しさん:2014/05/26(月) 05:01:54.51 ID:Rz2xugPO
>>499
ワンボタンマウスのMacでも使ってろ。
506デフォルトの名無しさん:2014/05/26(月) 09:39:10.38 ID:C5RAjArj
Internet Explorerを自動操作していて特定の条件の際に
ie.Quit();   を実行してもブラウザが閉じない場合があります。
その際には、Internet Explorerのプロセスも生きたままです。

一体何が原因なのでしょうか?


どうしても原因を突き止めることが出来ません。
507デフォルトの名無しさん:2014/05/26(月) 09:41:12.71 ID:QBzBPwJ7
相談室の方で答えたネタなのだが
508506:2014/05/26(月) 09:51:23.52 ID:C5RAjArj
>>507
解決につながる回答を得られなかったのでここでも質問させてもらってます。
509デフォルトの名無しさん:2014/05/26(月) 09:52:38.71 ID:C5RAjArj
>>507
396 名前:デフォルトの名無しさん[sage] 投稿日:2014/05/18(日) 04:22:37.98 ID:gCeF58LB
アウトオブプロセスのCOMサーバプロセスのサーバの寿命が気になるなら
・途中で手に入ったCOMオブジェクトすべてにMarshal.ReleaseComObject
・COMオブジェクト入れてた変数は全部参照を切ってGC.Collect×2
のどっちかが必要


こちらですか?
見落としてました。すみません。
再度試してみます。
510506:2014/05/26(月) 09:57:49.91 ID:C5RAjArj
取り敢えず、GC.Collect(); を使う方法を試したのですがIEが閉じません。。。
ie = null; の実行で参照も切れていると思っているのですが如何でしょうか?

ie.Quit();
ie = null;

GC.Collect() ;
GC.WaitForPendingFinalizers() ;
GC.Collect();
511デフォルトの名無しさん:2014/05/26(月) 10:16:35.99 ID:Rz2xugPO
また遠隔ウィルスでも作っているのか?
512デフォルトの名無しさん:2014/05/26(月) 10:23:13.08 ID:QBzBPwJ7
如何でしょう言われても知らんがな
とりあえずインスタンス作ってすぐQuitするところから始めてみれば
513デフォルトの名無しさん:2014/05/26(月) 10:31:42.35 ID:C5RAjArj
>>511
黙れ片山

>>512
>とりあえずインスタンス作ってすぐQuitす
画面遷移したり、ボタンをクリックしたりと一連のブラウジングを行った後でQuitすると
閉じない場合があります。
514デフォルトの名無しさん:2014/05/26(月) 10:32:53.03 ID:dlApJPlM
>>506
特定の条件で起こる現象なんだから、その特定の条件ってのが原因だろjk
まずその特定の条件ってのを説明しろよ
515コード①:2014/05/26(月) 11:03:16.41 ID:C5RAjArj
以下のコードを実行すると、ブラウザが開き続けてしまいます。
ie.Quit(); をしているので本来は閉じないといけないのですが、、、


SHDocVw.InternetExplorer ie;
mshtml.IHTMLElementCollection mshtml_ec;
do
{
   ie = new SHDocVw.InternetExplorer();
string url = "http://yahoo.co.jp";
ie.Navigate(url, null, null, null, null);
ie.Visible = true;
while (ie.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE || ie.Busy)
{
Application.DoEvents();
}

//検索ワードを入力
mshtml_ec = ie.Document.getElementsByTagName("input");
foreach (mshtml.IHTMLElement i_ele in mshtml_ec)
{
if (i_ele.getAttribute("id") != null)
{
string chk_id = i_ele.getAttribute("id");
if (chk_id == "srchtxt")
{
i_ele.setAttribute("value", "まんこ汁");
break;
}
}
}
516コード②:2014/05/26(月) 11:04:09.70 ID:C5RAjArj
//検索ボタンを押下
foreach (mshtml.IHTMLElement i_ele in mshtml_ec)
{
if (i_ele.getAttribute("value") != null)
{
string chk_value = i_ele.getAttribute("value");
if (chk_value == "検索")
{
i_ele.click();
while (ie.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE || ie.Busy)
{
Application.DoEvents();
}
break;
}
}
}
   ie.Quit();
}while(true);


全くもって原因が不明です。他の方の環境でも再現できる筈です。
517デフォルトの名無しさん:2014/05/26(月) 11:12:10.53 ID:82lch4Bs
それWindows95のときからある不具合だから諦めろ
518515 516:2014/05/26(月) 11:15:12.13 ID:C5RAjArj
>>517
まじっすか、、、どうしようもないですか?
519デフォルトの名無しさん:2014/05/26(月) 11:49:20.08 ID:QBzBPwJ7
DoEventsやってるってことはUIスレッド? なのに無限ループ?
520515 516:2014/05/26(月) 14:40:56.05 ID:C5RAjArj
>>519

>>515 >>516 のコードは
こーいうコードを書いて実行するとブラウザが次々と閉じずに
開き続けてしまう、という事を再現する為のコードです。

なので、ループ処理は気におして頂かなくとも結構です。
521デフォルトの名無しさん:2014/05/26(月) 14:56:36.39 ID:9Q4aKYkp
Marshal.ReleaseComObjectは試したのか低能
522デフォルトの名無しさん:2014/05/26(月) 16:33:04.93 ID:4133VdBN
>>521
 
>>510 これでダメだからいってるのですが。
523デフォルトの名無しさん:2014/05/26(月) 17:40:40.25 ID:va4aBdBW
>>522
そもそもこのコードビルドできないんだけど...

ついでに苦言。
サービス精神なのかどうか知らないが"まんこ汁"とか止めてくれ。
2ch見てる奴が全員こういう幼稚なノリが好きとか思ってるのならそれ勘違いだと思うけど。
524デフォルトの名無しさん:2014/05/26(月) 17:54:03.59 ID:bnFeY7rL
死ななきゃ治らない馬鹿の相手をするより重要なことはないのか君は
525デフォルトの名無しさん:2014/05/26(月) 17:58:49.66 ID:4133VdBN
>>523
検索ワードはプログラムには関係ありません。
ビルド通りますよ。

このコードで100%ブラウザが閉じない不具合を再現出来ます。
誰かこの不具合の対処方法を教えてください。

IEのプロセス削除は最終手段として考えています。
526デフォルトの名無しさん:2014/05/26(月) 17:59:37.67 ID:4133VdBN
絵〇画像を自動でダウンロードするプログラムを速く完成させたいのでお願いします!!
527デフォルトの名無しさん:2014/05/26(月) 18:12:48.06 ID:QBzBPwJ7
とりあえず参照が面倒だったんでType.GetTypeFromProgIDとdynamicに差し替えたけど
無限ループだからそりゃいつまでもiexplore.exeは落ちないよね、としか
528デフォルトの名無しさん:2014/05/26(月) 18:32:59.37 ID:pvygPOwn
>>527
ええと。あのコードを実行すると普通であればInternet Explorerは1つのみ
起動 > 閉じる を繰り返してプロセスは1つのみ
となる筈が永遠と増えて行くんです。


1つ起動していたブラウザが2・3・4・・・etc


これをしない様にしたいのです。
529デフォルトの名無しさん:2014/05/26(月) 18:36:03.98 ID:QBzBPwJ7
じゃあ再現しなかったわ
530デフォルトの名無しさん:2014/05/26(月) 18:42:23.37 ID:82lch4Bs
IEは問題だらけだから、ある程度抑えることはできても完全に防ぐことはできない。諦めるしかないってw
531デフォルトの名無しさん:2014/05/26(月) 19:17:22.27 ID:dlApJPlM
!=と||とどっちが優先度高いんだっけ?
532デフォルトの名無しさん:2014/05/26(月) 19:46:47.58 ID:9Q4aKYkp
GCとMarshal.ReleaseComObjectはなんの関係もないんだが
まあいいっかIDであぼーんするわ
533デフォルトの名無しさん:2014/05/26(月) 19:49:17.32 ID:SINryHCe
>>531
||のが高かったらif(a != b || c != d)がコンパイル通らん
534デフォルトの名無しさん:2014/05/26(月) 20:22:20.31 ID:dlApJPlM
||って思ったより優先順位低いんだな

>>533
var a = true; var b = true; var c = true; var d = true;
if (a != (b || c) != d)
{
Console.WriteLine("TRUE");
}
else
{
Console.WriteLine("FALSE");
}
if (a != b || c != d)
{
Console.WriteLine("TRUE");
}
else
{
Console.WriteLine("FALSE");
}
コンパイルは通りそうだぞ
535デフォルトの名無しさん:2014/05/26(月) 20:44:19.66 ID:mCxtmcL/
>>529
絶対嘘

100%再現するから
536デフォルトの名無しさん:2014/05/26(月) 20:50:34.29 ID:dlApJPlM
>>535
非標準のコンポーネントの詳細も書いてないし
環境もバージョンも書かんと何言ってるんだか
537デフォルトの名無しさん:2014/05/26(月) 20:53:07.43 ID:mCxtmcL/
>>536
ビルドが通らないとか参照の仕方もしらないの?

そこまで説明しないといけないのかなぁ。
538デフォルトの名無しさん:2014/05/26(月) 21:15:50.73 ID:82lch4Bs
>>535
IEのバージョン、セキュリティ設定、実際にDLされるHTML(yahooIDのログイン状態)、BHOインストール状況など
によって変わるのに、
どうして100%再現するって言い切れるんだよ。全環境()で試したのか?
539デフォルトの名無しさん:2014/05/26(月) 21:50:44.66 ID:SINryHCe
>>534
そりゃboolなら通るだろ…
540デフォルトの名無しさん:2014/05/26(月) 22:36:45.64 ID:UuEHX9kM
ie.Quit()の問題は仕事でやってかなり詳細に知っているけど
質問者の態度が気に入らないので教えないことにする
541デフォルトの名無しさん:2014/05/26(月) 22:52:06.10 ID:nOrYSY4c
>>540
奇遇だな
542デフォルトの名無しさん:2014/05/26(月) 22:53:59.00 ID:4FQEHWVJ
>>540
ふぅーん。口だけならだれだって言えるから。
543デフォルトの名無しさん:2014/05/27(火) 07:24:30.04 ID:r/M42T4V
そうだね(笑)
544デフォルトの名無しさん:2014/05/27(火) 09:11:54.76 ID:IeZvrdJj
うちでは再現率は100%ではなかった
545デフォルトの名無しさん:2014/05/27(火) 09:47:08.95 ID:E81Kc0WH
口の悪いやつになんでわざわざ答えなきゃならんのか、
って思うよな。
後からきた経験者が答える機会も潰して損しかしてない質問者
546デフォルトの名無しさん:2014/05/27(火) 11:29:39.78 ID:W5P1i6tp
>>544
嘘付おつ

>>545
では解決方法があったらぜひともお教えください。
547デフォルトの名無しさん:2014/05/27(火) 12:47:16.15 ID:0EhNzMtu
あーあ、コミュニケーションで損するタイプだな…
そんな言われ方して回答を寄せてくれる人がいるんだろうか…
548デフォルトの名無しさん:2014/05/27(火) 12:52:57.93 ID:Oftvh7Y1
半年くらいしてからキャラ変えて出てきたら?
549デフォルトの名無しさん:2014/05/27(火) 12:56:32.14 ID:cxeUEEZL
そもそもなんで素直にWebBrowserコントロール使わないんだろうな
550デフォルトの名無しさん:2014/05/27(火) 13:15:54.93 ID:eBlMd5xN
それ使っても同じだよ。原因そこじゃないから
551デフォルトの名無しさん:2014/05/27(火) 17:02:57.30 ID:+tr3QBuS
>>550
何か良い方法はありませんか?
552デフォルトの名無しさん:2014/05/27(火) 21:51:09.60 ID:mRwKuMKj
WPFのUIが小奇麗なので、
ガントチャートを作ってみたいと思ったのですが、
D&Dでタスク管理の横棒?を伸縮させるには、
どのような方法が考えられるでしょうか?
553デフォルトの名無しさん:2014/05/27(火) 22:00:55.29 ID:DD/vw00f
ガントチャートなんかHTML5なら優秀なライブラリが沢山あるよ
554デフォルトの名無しさん:2014/05/27(火) 22:06:37.31 ID:E81Kc0WH
WPFのD&Dは基本自力実装
一応Thumbとかあるけど
555デフォルトの名無しさん:2014/05/27(火) 22:08:36.61 ID:mRwKuMKj
>>553
会社のパソコンがIE8なので、
HTML5は諦めてます。
556デフォルトの名無しさん:2014/05/27(火) 22:11:25.64 ID:E81Kc0WH
ガントチャートなんて四角だけで表現できるからIE8なら余裕
557デフォルトの名無しさん:2014/05/27(火) 22:20:29.92 ID:6er5Tx/3
質問に答えられないなら黙っとけよ
558デフォルトの名無しさん:2014/05/27(火) 22:34:41.94 ID:DD/vw00f
答えるもクソも「そういう風に作る」としか答えようがないからな
Adornerでハンドル作るのが正攻法だけど、それはあくまでWPFの設計に則った方法ってだけで
低レベルな仕組みなのでやっぱり面倒だよ
WPFのフレームワークはあまり気にしないで使い方を限定してゴリゴリ自力実装しちゃうのが結局一番簡単
559デフォルトの名無しさん:2014/05/27(火) 23:31:39.53 ID:mRwKuMKj
WPFはXMLで動きのあるアプリが作れそうなので、
D&Dに対応したガントチャートも簡単に作れると思ったのですが、
やはり難易度は高いのですね。

せっかくなので、精進したいと思います。
560デフォルトの名無しさん:2014/05/28(水) 01:00:29.59 ID:8Whh6uVJ
精通してから来てね
561デフォルトの名無しさん:2014/05/28(水) 04:14:47.97 ID:SHrGmvrs
ここは初心者用のスレです
562デフォルトの名無しさん:2014/05/28(水) 04:54:12.51 ID:bnZ7463i
WPFはオワコン。
563デフォルトの名無しさん:2014/05/28(水) 15:02:28.64 ID:lHhqz9Ih
pdfからテキストデータを抽出する方法を教えて下さい
564デフォルトの名無しさん:2014/05/28(水) 15:13:22.62 ID:hTKClsRx
昔、生データから検索するやつ作ったときはかなり大変だった気が。
ググったらこういうのあるんだな

PDFをテキストファイルに変換する
http://d.hatena.ne.jp/veveve/20100111/1263208458
565デフォルトの名無しさん:2014/05/28(水) 15:15:48.07 ID:EmUl6u0+
>>563
PDF作成と違って、非常に難易度が高い。俺は自力の画像認識以外で読んだことない
PDFの権限設定、PDFのレイアウト、PDFのバージョン、実際のPDFの複雑さなんかによって
どの方法で実現できてどの方法が効率いいのかが決まる

・自力でPDFファイルからてごりごり読む
・PDFを扱うライブラリから読み出す
・adobeのSDK使って読みだす
・変換できるソフトや開けるソフト、変換サービス使う
・adobe reader画面から直接コピペ
・OCRソフトなどを使って読む
・自力の画像認識で読む
566デフォルトの名無しさん:2014/05/28(水) 18:12:42.05 ID:zVPVrg22
popplerで無理なら費用対効果に見合わないから諦める
誰かが開発費払ってくれるならともかく
567デフォルトの名無しさん:2014/05/28(水) 20:27:28.04 ID:bRRFYvET
C#で現在起動しているエクスプローラーを全て閉じるには
どういうコードをかけば良いでしょうか?


例えば、 
c:\hoge_1
c:\hoge_1\hage_1

c:\hoge_2
c:\hoge_2\hage2


と4つのエクスプローラーが起動しいてる場合に4つともプログラムで終了させたいです。
568デフォルトの名無しさん:2014/05/28(水) 20:37:58.29 ID:CRVEx+G9
EnumWindows APIでトップレベルウィンドウを列挙して
ウィンドウクラス名が"CabinetWClass"なウィンドウにWM_CLOSEを投げるとか
昔はExploreWClassなんてクラス名もあったようだが

別の方法: IShellWindows::FindWindowSWでSWC_EXPLORERなウィンドウを見つけて閉じまくる
569デフォルトの名無しさん:2014/05/28(水) 20:44:40.52 ID:bnZ7463i
またウイルスでも作ってるのか。
外からエクスプローラ閉じるとか悪意あるプログラムしか思いつかんわ。
570デフォルトの名無しさん:2014/05/28(水) 21:05:12.21 ID:bRRFYvET
>>569
片山お前と一緒にすんなボケ

>>568
ありがとうございます。試してみます。
571デフォルトの名無しさん:2014/05/28(水) 22:08:52.10 ID:bRRFYvET
>>568
ありがとうございます!やりたい事が出来ました!!
572デフォルトの名無しさん:2014/05/28(水) 22:53:23.98 ID:Z+ReeR99
C#でandroidアプリ作りたいんですけど
無料で作る方法はないですか?
573デフォルトの名無しさん:2014/05/28(水) 23:01:25.73 ID:llUj2n/x
Unity
もしくはASP.NET MVCでWebベース
574デフォルトの名無しさん:2014/05/28(水) 23:18:59.39 ID:EmUl6u0+
Xamarin使ってるけどC#で作るのはマゾいよ。ほぼすべてjavaと同じだけど資料が少ないから疲れる
ほかのプラットフォームとソース共有したいのでなければ素直にjava使った方がいい
575デフォルトの名無しさん:2014/05/28(水) 23:33:11.15 ID:llUj2n/x
Xamarinセコいんだよ
せめてUnityみたいなライセンス体系にすれば間違いなくスタンダードになれるのにな
OSS文化から生まれた組織は今やすっかりプロプライエタリに傾倒して見る影もない
576デフォルトの名無しさん:2014/05/28(水) 23:34:52.10 ID:9p7tg2Sa
Xamarin for VSって無料じゃないの?
577デフォルトの名無しさん:2014/05/29(木) 00:46:01.42 ID:REuu9koM
10万円ぐらいだっけ?
578デフォルトの名無しさん:2014/05/29(木) 06:27:28.72 ID:ZtWTRp16
ID:C5RAjArj
ID:bRRFYvET

警察に通報しておこう。
579デフォルトの名無しさん:2014/05/29(木) 09:18:55.61 ID:iAYH6GXX
エクスプローラの閉じ方を教えています、って通報すんの?
580デフォルトの名無しさん:2014/05/29(木) 10:49:48.16 ID:BtOWecue
>>578
それは気づかなかったw
581デフォルトの名無しさん:2014/05/29(木) 10:52:58.62 ID:SN8diILy
今回のは証拠隠滅のやりかた聞いてたのか
582デフォルトの名無しさん:2014/05/29(木) 11:42:50.85 ID:Mo2aVKPk
ウィンドウ閉じたら消える証拠って……
583デフォルトの名無しさん:2014/05/29(木) 11:58:44.38 ID:BzM20fyM
えろ画像フォルダってことか・・・
584デフォルトの名無しさん:2014/05/29(木) 14:05:48.90 ID:mvy8YiUU
自分で試すと、閉じるのが面倒だから教えろってことでしょ
585510:2014/05/29(木) 14:37:24.44 ID:wSZPgil+
578 名前:デフォルトの名無しさん[] 投稿日:2014/05/29(木) 06:27:28.72 ID:ZtWTRp16
ID:C5RAjArj
ID:bRRFYvET

警察に通報しておこう。



↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
 
 やましい事は、一つもねーから警察別に来ても良いからさっさとやれwwwwwwwwwwwww

 お前が悪戯通報でぱくられるリスクの方が高いと思うぞwwwwwwwwwwwwwwwwwwwwwww

 早くやれwwwwwwwwww


↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
586デフォルトの名無しさん:2014/05/29(木) 14:52:44.67 ID:ZtWTRp16
ID:C5RAjArj
ID:bRRFYvET 

こいつらマジヤバイと思う。安心してネットもできねーよ。
587デフォルトの名無しさん:2014/05/29(木) 14:55:07.02 ID:ZtWTRp16
ID:ZtWTRp16 

こいつサイコパスだよ。こいつには何も教えるなよ。
588デフォルトの名無しさん:2014/05/29(木) 14:59:44.03 ID:BtOWecue
おまえは基地外w
589デフォルトの名無しさん:2014/05/29(木) 15:19:01.07 ID:ZtWTRp16
いやおまえがキヂカイだよ。一体どういう用途でアプリがシェルを殺す必要があるんだ?
そこまで言うなら ID:BtOWecue が教えればいいのに何で教えてあげないの?

低スキルの低脳初心者だから?w
590デフォルトの名無しさん:2014/05/29(木) 15:34:11.10 ID:Mo2aVKPk
591デフォルトの名無しさん:2014/05/29(木) 16:12:39.02 ID:BtOWecue
>>589
>>568-571って言ってんじゃん。つまり終わってるんだよ。頭も悪いな
しかもウインドウを閉じる処理であってシェル殺すんじゃないんだよ。どんだけ初心者?
592デフォルトの名無しさん:2014/05/29(木) 16:43:55.67 ID:wSZPgil+
バカ同士仲よくしろよ
593デフォルトの名無しさん:2014/05/29(木) 16:44:50.80 ID:sB+QOSLF
\           /     /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\       \      /
_  争  も  _   /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、      _   争   _
_  え  っ  _     . .:´: : : : : : : ≠:7: : : : : : : : : : : : :ヽ、 ヽ| : i : : :,     _    え   _
_   : . と   _   /.: : : : -‐: :7´: : /:,ハ : : : :ヽ : : : ゝ-- :\ | : :! : : : ,   _    :   _
_  :      _ /, -‐/.: : : : :i : : /ィ:爪: : :\ :\ : : :\: : :`ト : !: : : :′   _   :    _
             〃  /. : : : : : : |.:イ :ハ:| \: .、\: : xィ¬ト、: :| : : ! : : : : :,
/          \   /.: :/.: : : : /l : |/Гト、       / |_,ノ0:::ヽ : : :i : : : : :′ /        \
 /  |  |  \    | .:/.:/. : : :i: i : | |ノ0:::ト :::::::::::::   |: :∩::::::ト: : : !: : : : : : :,  / | | \
              ∨i: |: : : : |: :ヽ| |::∩::| ::::::::::::::::  !.::∪::::::| |: : :i : : : : : : ′            ,ィ /〉
                |: |: : i : :', : |  |::∪::| ::::::::::::::::  !: : : : : :||: : i : : : : : : : :,          / レ厶イ
                 ヽハ: : :、: :ヽ|  l : : : |:::::  ,  ::::└――┘ ! : : i : : : : : : : ′        /   ⊂ニ、
                い、: :\/   ̄ ̄                 ', : : i : : : : : : : : ,     _, -‐'    ⊂ニ,´
    r 、  _          ヽ: :〈        <  ̄ フ         |: : : ! : : : : : : : :′,.-‐T   _,. -‐'´ ̄
    くヾ; U|           | : \                   /| : : :i : : : : :_, -‐'    |  /
   r―'   ヽ、             | : : : \               イ: : :| : : :i_,. -‐       |/
    `つ _   ̄ ̄Τ`ー―-- L: : : : : `: : . . .  __    .:〔: : :|: : :r┬'              |
594デフォルトの名無しさん:2014/05/29(木) 17:07:47.60 ID:0wOQzE5z
昼間から元気な奴ら…
595デフォルトの名無しさん:2014/05/29(木) 22:32:28.17 ID:fB/59IAE
           ∧_∧
        ,-、<    >    さてと・・・
       <ヽと  屑 )    お札を乾かすニダ・・・
       `´ (__○_ノ
596デフォルトの名無しさん:2014/05/30(金) 01:10:51.26 ID:VMFeJkpe
サイコパスだらけだな。
597デフォルトの名無しさん:2014/05/30(金) 05:05:43.41 ID:iU8Ve7Yv
>>596
サイコパスは作られた概念‥
598デフォルトの名無しさん:2014/05/30(金) 11:12:19.94 ID:ccygLrmY
サイコパスって言ってみたかっただけだろ
599デフォルトの名無しさん:2014/05/30(金) 16:47:31.26 ID:5UP+ewz2
C#で http://2ch2ch222.com/


という風にURLを指定してプロセススタートを実行すると
Cromeで開かれてしまいます。本来はInternet Explorerが起動する事を想定しているのですが
何が原因なのでしょうか?
600デフォルトの名無しさん:2014/05/30(金) 16:49:52.79 ID:wfWItD3D
デフォルトのブラウザ
601デフォルトの名無しさん:2014/05/30(金) 17:26:50.98 ID:5UP+ewz2
>>600
それがデフォルトのブラウザをIEに設定済みです。


IE > ツール > インターネットオプション > プログラム > 規定に設定する(D) を押下 > OK
602デフォルトの名無しさん:2014/05/30(金) 17:34:54.60 ID:33zRk0od
603デフォルトの名無しさん:2014/05/30(金) 17:40:00.83 ID:+E8tZH7v
VSのデバッガ設定でターゲットの種類ごとに実行ファイルの設定があるはず
604デフォルトの名無しさん:2014/05/30(金) 18:43:31.85 ID:ccygLrmY
Winキー + R → ファイル名を指定して実行
でURL入れてエンター押してみろよ
605デフォルトの名無しさん:2014/05/30(金) 18:52:10.14 ID:a6q98UW4
どうせ「プログラムのアクセスと~」でIEへのアクセスを有効にしてないとかだろ
606デフォルトの名無しさん:2014/05/30(金) 19:19:33.16 ID:HCAkyCZp
似たような2つの案件があって、別の顧客だからUIは別にする必要があるからプロジェクトも別々、
共通部分がかなり多いゆえその共通部分だけは別で開発したい
dllにするのがいい方法だとは思ったが、出来ればdllの数はこれ以上増やしたくないのと、それぞれのプロジェクトで同じコードが使われている事をなるべく知られたくない
逆コンパイルされやすい言語なのはわかっていますが、そこは今回は無視して、なんとか一つのexeに纏める方向でいきたいと思っています
いい方法はありませんか?
607デフォルトの名無しさん:2014/05/30(金) 20:21:28.76 ID:KBJU+Uyd
ILMergeでマージすりゃいいんじゃねぇの?
608デフォルトの名無しさん:2014/05/30(金) 20:43:58.47 ID:ccygLrmY
ソースコードを コ ピ ペ
609デフォルトの名無しさん:2014/05/30(金) 20:59:53.40 ID:BLHBUUhB
共通だろうがちゃんとできてれば気にせんだろ
610デフォルトの名無しさん:2014/05/30(金) 21:14:02.80 ID:sHCeS5mr
リソースにして動的読み込みとかいくらでも方法はあるが、.NETアプリでアセンブリが一個しか無かったら逆に怪しいだろ
611デフォルトの名無しさん:2014/05/30(金) 22:00:15.84 ID:ccygLrmY
クライアントのPCのGACにナイショでインストールしちゃう
612デフォルトの名無しさん:2014/05/30(金) 22:53:00.75 ID:oGbKTTxi
ソースコードの共有管理ソフトで、2つのプロジェクトで共有しとけば?
613デフォルトの名無しさん:2014/05/31(土) 08:20:53.23 ID:hcRtMx6V
VSにリンクファイルって機能があったはずだが
614デフォルトの名無しさん:2014/05/31(土) 08:31:32.83 ID:gddrhR3Z
>>613
あんなもん手動で1つずつ管理してたら無茶苦茶になるぞ
615デフォルトの名無しさん:2014/05/31(土) 08:36:12.38 ID:l4Ub8RqP
開発時は普通にプロジェクト分けて、InternalsVisibleToとかで誤魔化しといた方が良いと思う
616デフォルトの名無しさん:2014/06/01(日) 07:35:28.64 ID:krrR/Uu8
両方の顧客がお互いのバイナリを入手しないと比較は無理なんだから
気にする必要はないでしょ。
それとも契約上問題があるのか?
617デフォルトの名無しさん:2014/06/01(日) 11:26:11.97 ID:QkPUxmRU
だよなぁ。

共通部分プロジェクト
A社向け部分プロジェクト
B社向け部分プロジェクト
で作っといて、共通+A、共通+Bで実行ファイルを1つにして難読化でも掛けとけば問題ないと思うけど。
618デフォルトの名無しさん:2014/06/01(日) 11:48:37.36 ID:ScNkgOZ/
cのincludeがC#で使えれば一発解決なんだろうけどな

俺だったら共通部の開発テスト用プロジェクトと、
その共通部のプロジェクトからビルド前イベントか何かでソースをコピーしてきて使うA社B社用プロジェクト
の3プロジェクト構成にするかなー
619デフォルトの名無しさん:2014/06/01(日) 11:48:47.78 ID:q7lY0P5T
契約に逆コンパイルするなって書けばいいだけと思うが...
620デフォルトの名無しさん:2014/06/01(日) 12:42:57.66 ID:N9uAtY7j
動機も「何となく」って感じで必要に迫られてそうに見えない
621デフォルトの名無しさん:2014/06/01(日) 12:54:52.03 ID:iF6nhgL2
>>619
それは知的所有権を侵害している条項という説もある
逆コンパイル/リバースエンジニアリング禁止条項は近々違法認定される運命にある
622デフォルトの名無しさん:2014/06/01(日) 13:06:31.89 ID:q7lY0P5T
>>621
成立してから言ってくれ
623デフォルトの名無しさん:2014/06/01(日) 13:19:54.97 ID:9f7qCFve
質問者不在でよーやるわ
624デフォルトの名無しさん:2014/06/01(日) 15:31:04.52 ID:iF6nhgL2
>>622
欧州ではすでに成立している.
SAS社 (あの有名な統計ソフトの販売元ね,最近 R 言語に負けつつあるあれ) vs World Programming 社の訴訟で EU 司法裁判所が 2012年5月2日に判断をくだしているよ.
625デフォルトの名無しさん:2014/06/01(日) 15:34:34.93 ID:q7lY0P5T
>>624
こ こ は 日 本 で す よ
626デフォルトの名無しさん:2014/06/01(日) 15:38:38.86 ID:ScNkgOZ/
>>624
その訴訟は逆コンパイル/リバースエンジニアリングに直接は関係ない
間接的には関係あるが本質的にはまったくの別件
627デフォルトの名無しさん:2014/06/01(日) 15:53:11.84 ID:iF6nhgL2
>>626
>間接的には関係あるが
>本質的にはまったくの別
いっていることが矛盾しまくりなんだが‥‥

まあ説明してくれよ
628デフォルトの名無しさん:2014/06/01(日) 16:11:53.74 ID:ScNkgOZ/
>>627
解析した結果を使ってソフトを作ったことが侵害かどうかっていうのが争点であって、
解析する行為自体が侵害かどうかを争っていたわけじゃないってこと
http://www.quinnjapan.com/news/pickout/121101_01.html
629デフォルトの名無しさん:2014/06/01(日) 16:50:48.26 ID:BSkhQo2q
何にしろ、リバースエンジニアリングの禁止が法的根拠を持つかどうかという話と、
契約でそれを禁じることが可能かどうかはそもそも全く別問題じゃないのかと。

リバースエンジニアリングの禁止に根拠法があろうがなかろうが、
契約で相手(ユーザーだったり発注側だったり)を縛ることは普通にできるでしょ。
出来なきゃ困るよ。
630デフォルトの名無しさん:2014/06/01(日) 17:35:17.06 ID:q7lY0P5T
>>629
> 契約で相手(ユーザーだったり発注側だったり)を縛ることは普通にできるでしょ。

いや、その契約が有効かどうかの話。
契約すれば、なんでもできる訳じゃないよ。
例えば、大企業が中小企業からもの買う時に支払いを納入の3ヶ月後とする契約結んでも無効になる。
631デフォルトの名無しさん:2014/06/01(日) 17:41:54.46 ID:S+dqQ+3T
>>629
違法であれば後で裁判になったときに負けるっしょ
今のところリバースエンジニアリングの禁止も禁止すること禁止もどっちも根拠法なんてないだろうけど

納期に間に合わなかったらPの生首を3つ届けること みたいな契約してみようか
632デフォルトの名無しさん:2014/06/01(日) 17:54:19.43 ID:BSkhQo2q
>>630-631
違法な契約ができないのは当たり前。
それ以外の契約は自由。
これを契約自由の原則というんだよ。
633デフォルトの名無しさん:2014/06/01(日) 18:05:35.75 ID:S+dqQ+3T
はぁ……そうですよね……
634デフォルトの名無しさん:2014/06/01(日) 18:11:19.40 ID:q7lY0P5T
契約自由とか最近覚えたのかな (w
635デフォルトの名無しさん:2014/06/01(日) 18:16:45.97 ID:ScNkgOZ/
違法な内容でも契約できるよ。ただ無効になるだけ
これは言い換えると「違法な契約はできない」と受け取れるけど、そうじゃなくて違法と判断されたら契約に有効性や効力がなくなるってだけ
636デフォルトの名無しさん:2014/06/01(日) 18:25:08.19 ID:QkPUxmRU
質問者不在でよーやるわ
637デフォルトの名無しさん:2014/06/01(日) 19:04:25.10 ID:krrR/Uu8
そもそも本件で想定されるバイナリエディタで比較する程度をリバースエンジニアリングというのもどうかしている
プログラムのノウハウを盗む訳じゃないからね

プログラムの朴李裁判とかで普通にやっていることだし、検査結果は正当な証拠として扱われているだろ
638デフォルトの名無しさん:2014/06/01(日) 19:16:12.29 ID:9f7qCFve
そういうのは専用スレ立ててそこで話し合ってくれや
おれも色々勉強させてもらうんで
639デフォルトの名無しさん:2014/06/01(日) 22:34:24.95 ID:PhfrXEQQ
価値解析ですバリューアナリシスです断じてリバースエンジニアリングではありません(すっとぼけ
640デフォルトの名無しさん:2014/06/01(日) 22:42:52.85 ID:+qQOEbo6
もうぜんぶオープンソースにしちゃえよ
.NETなんてILSpyで丸見えなんだし
641デフォルトの名無しさん:2014/06/01(日) 23:19:43.19 ID:+l0bTBtz
丸見えですが、難読化くらいさせて下さいよ。
642デフォルトの名無しさん:2014/06/01(日) 23:52:06.73 ID:yI6mtpiy
ngenの結果ファイルのようなものを配布とかできんもんかねー
環境最適化ったって32/64とコア数くらいじゃないの?
643デフォルトの名無しさん:2014/06/02(月) 00:37:16.40 ID:s/t3maig
お前ができるようにしたら?
別に誰も止めやしないと思うけど
644デフォルトの名無しさん:2014/06/02(月) 00:50:37.45 ID:mxZHC2yK
警察に通報するとかいってたヤツまだか?

さっさとしろw
645デフォルトの名無しさん:2014/06/02(月) 01:01:47.05 ID:s/t3maig
ああ、そのネタまだ続いてたの?
646デフォルトの名無しさん:2014/06/02(月) 06:17:02.56 ID:CcFEgmj6
よっぽど悔しかったんだろ
なんの話題だったかも覚えてないけど (w
647デフォルトの名無しさん:2014/06/02(月) 07:25:20.19 ID:QdddxbiG
構造体に明示的なパラメーターのないコンストラクターを
含めることはできません。
と出るのですが、適当にダミーのパラメータ int i とか引数に
指定したコンストラクタ作ればエラー回避できるのですが、
そういう方法しかないでしょうか?
648デフォルトの名無しさん:2014/06/02(月) 07:29:28.70 ID:1ePnwiTf
staticメソッドでCreateとか作っとけ
649デフォルトの名無しさん:2014/06/02(月) 11:29:52.56 ID:/hVdfyU3
警察に通報するよぉおおおお(←涙目www)
650デフォルトの名無しさん:2014/06/02(月) 11:59:49.96 ID:j7CDofP7
>>647
何がしたいの?
651デフォルトの名無しさん:2014/06/02(月) 12:05:18.82 ID:QdddxbiG
>>650
構造体がnewで作成された時に、その中のList<string>型のメンバ変数
もついでにnewで作成しておきたいだけです。
652デフォルトの名無しさん:2014/06/02(月) 12:11:17.24 ID:rrE1ANJW
デフォルト引数にしておけば見かけ上は引数なしにできるがw
653デフォルトの名無しさん:2014/06/02(月) 12:16:37.06 ID:j7CDofP7
>>651
なるほど。

じゃあ>>648の言うとおりするか、そもそも本当にstructである必要があるか
再考するかかね。

List<T>をフィールドに持つなんてクラスにした方がいいような気がするけど。
654デフォルトの名無しさん:2014/06/02(月) 12:39:07.36 ID:tefrIQhm
そういう誤った設計を除くために >>647 のエラーが仕込まれている
655デフォルトの名無しさん:2014/06/02(月) 15:05:11.92 ID:qcZBA5tM
C#の構造体は特殊な事情がない限り使わない方がいい
656デフォルトの名無しさん:2014/06/02(月) 15:34:56.56 ID:BrwHy299
なぜ?
657デフォルトの名無しさん:2014/06/02(月) 15:44:02.66 ID:kyFbnmGq
値型にしたい場合というのが限られるからじゃね?

P/Invokeに渡す構造体のポインタもクラスで実は表現できるし
658デフォルトの名無しさん:2014/06/02(月) 16:04:19.94 ID:EnrTfjKI
構造体が構造体であるために払ってる代償が小さくないからでしょ。
659デフォルトの名無しさん:2014/06/02(月) 16:36:21.09 ID:iDAGOv33
よくあるゲームのIDもようなもので
AAA-ZZZまでの文字列をアルファベットで組み合わせて作ったとします

AAAの次はAAB、AABの次はAACといったように順にアルファベットを繰り上げたい場合、
数字の++;のように簡単に記載する方法はありませんか?
事前に配列等に組み込んでおいて切り変えるか、細かいメソッドを自作するしかないでしょうか
660デフォルトの名無しさん:2014/06/02(月) 16:49:11.86 ID:7mewxn2c
単純に26進数のクラスを作れば?
661デフォルトの名無しさん:2014/06/02(月) 16:50:43.99 ID:4e64FceI
>>655
なぜ?

>>658
> 構造体が構造体であるために払ってる代償
662デフォルトの名無しさん:2014/06/02(月) 16:54:12.72 ID:iDAGOv33
>>660
26進数のクラスを作るとはどういう意味でしょう
とりあえず今、26進数の数字を変換しようかなと思ってメソッドを作り始めてはいました
663デフォルトの名無しさん:2014/06/02(月) 18:42:48.72 ID:kyFbnmGq
class ID
{
 private int id;
 private const int max = 26 * 26 * 26;

 public void Increment()
 {
  id++;
  if( id > max )
  {
   throw new OverflowException();
  }
 }

 public string ToString()
 {
  var c1 = id % 26 ;
  var c2 = ( ( id - c1 ) / 26 ) % 26;
  var c3 = ( ( id - c1 - ( c2 * 26 ) ) / 26 / 26 ) % 26;

  return ( (char)( c3 + 'A' ) ).ToString() + ( (char)( c2 + 'A' ) ).ToString() + ( (char)( c1 + 'A' ) ).ToString();
 }
}
664デフォルトの名無しさん:2014/06/02(月) 18:49:48.40 ID:iDAGOv33
>>663
ありがとうございます
参考にさせていただきます
665デフォルトの名無しさん:2014/06/02(月) 18:58:02.29 ID:IG8hmN6a
http://msdn.microsoft.com/ja-jp/magazine/dn683793.aspx
>インデックス付きメンバーと要素の初期化子
なかなかどうでもいい
>自動プロパティと初期化子
便利っちゃあ便利だが、10年遅い
>プライマリ コンストラクター

>静的 Using ステートメント
ああJavaのやつね
>宣言式
ほぼ使いそうにない
>例外処理の強化
これは助かる
>数値リテラル形式の追加
え、これだけ?
666デフォルトの名無しさん:2014/06/02(月) 19:07:22.86 ID:KrssmG2N
いや、TryParseパターンのきもさが解決できるのはありがたいだろ
667デフォルトの名無しさん:2014/06/02(月) 19:15:13.27 ID:HhhwPDoe
プライマリコンストラクタは、乗っけた理由や構文の理由は理解できるが気持ち悪いなぁw
668デフォルトの名無しさん:2014/06/02(月) 20:10:02.72 ID:kyFbnmGq
プライマリコンストラクタ = 宣言部のキモいやつ + 自動プロパティ初期化子

ってこと?
少々のタイプ数削減のために最凶にキモい構文を導入するのか
しかもフィールド初期化子としても使える?
669デフォルトの名無しさん:2014/06/02(月) 20:14:25.96 ID:kyFbnmGq
宣言式もキモいけど合理的だから受け入れられそう
670デフォルトの名無しさん:2014/06/02(月) 20:40:19.00 ID:6RTa3BvD
スレ違いぎみのネタを続けるほうがキモいわ
あっちでやれ
671デフォルトの名無しさん:2014/06/02(月) 21:18:51.42 ID:HodAIEbv
Roslynの機能まんまだな
672デフォルトの名無しさん:2014/06/02(月) 21:39:21.44 ID:1ePnwiTf
TypeScriptとJavaの上位互換って感じだな
673デフォルトの名無しさん:2014/06/03(火) 00:10:48.52 ID:kn0pj0UJ
静的 Using ステートメントってVBでできる奴だろ…いらねえ
674デフォルトの名無しさん:2014/06/03(火) 01:34:57.80 ID:HZMoQlBX
[TestMethod]
public void DictionaryIndexWithDotDollar()
{
Dictionary<string, string> builtInDataTypes =
new Dictionary<string, string> {
$Byte = "0 to 255", // Using indexed members in element initializers
// ...
$Boolean = "True or false.",
$Object = "An Object.",
$String = "A string of Unicode characters.",
$Decimal = "±1.0 × 10e?28 to ±7.9 × 10e28"
};
Assert.AreEqual("True or false.", builtInDataTypes.$Boolean);
}

やべえダサい
675デフォルトの名無しさん:2014/06/03(火) 02:05:50.60 ID:HZMoQlBX
しかし俺はプライマリコンストラクタも宣言式もプロパティ初期化も静的usingも
待ち望んでいたよ
676デフォルトの名無しさん:2014/06/03(火) 11:02:22.84 ID:1KdjHZaT
ほかはともかく静的usingは拡張メソッドと同時に導入されるべきだったレベルだな
677デフォルトの名無しさん:2014/06/03(火) 14:15:37.67 ID:D/9V5d8o
>>674
PHPに見える
678デフォルトの名無しさん:2014/06/03(火) 16:27:21.25 ID:MpjkSQ5x
コンストラクター初期化子について

public Person(string str)
{
//strに対してある処理をする
this(str,0);
}
こういう感じにしたいけどできない
679デフォルトの名無しさん:2014/06/03(火) 16:31:36.18 ID:1KdjHZaT
staticメソッド併用で初期化子使うこったな
680デフォルトの名無しさん:2014/06/03(火) 22:48:23.69 ID:UlLiQv6s
UIがカッコいいので、WPFをかじってみたのですが、
ListBoxの選択したItemのコンテンツを取りたくて
下記のようなコードを書きました。

・WPF
<ListBox x:Name="listbox1" HorizontalAlignment="Left" Height="100" Width="100">
<ListBoxItem>test</ListBoxItem>
</ListBox>

・C#コード
string listStr = listbox1.SelectedItem.ToString().Replace("System.Windows.Controls.ListBoxItem: ", "");

一応、コンテンツは取れるのですが、
Replace("System.Windows.Controls.ListBoxItem: ", "")の書き方が、
苦しいです。

普通は、どのように書くのでしょうか?
681デフォルトの名無しさん:2014/06/03(火) 22:54:04.81 ID:YA7KJA+J
SelectedItem.Value
とかなかったっけ?
682デフォルトの名無しさん:2014/06/03(火) 23:02:08.84 ID:6eq/rVAo
var item = (ListBoxItem)listbox1.SelectedItem;
var content = (string)item.Content;
683デフォルトの名無しさん:2014/06/03(火) 23:03:55.38 ID:kHnJtq7G
>>680
びっくりするかもしれないが、WPFではそういうことはしないのが基本
ItemsSourceとSelectedItemをバインドする
扱うのは(たとえば名簿画面なら)あくまで名簿クラスや社員クラスのインスタンスであって、
リストの中のコントロールはWPFが勝手に作るもので直接触らない
684デフォルトの名無しさん:2014/06/03(火) 23:04:22.53 ID:bLzh8t6O
var厨しね
685デフォルトの名無しさん:2014/06/03(火) 23:20:59.75 ID:UlLiQv6s
>>681
Valueは出てきませんでした

>>682
非常に綺麗に値を取れました。
ありがとうございます。

>>683
バインディングというやつですね。
どのようなものか、良く理解出来ていないので、
色々調べてみようと思います。

>>684
なんでvarを使うと嫌われるのですか?
短くて良い気がするのですが?
686デフォルトの名無しさん:2014/06/03(火) 23:29:24.43 ID:Y/MlbrO/
ただの発作だから流していいよ
687デフォルトの名無しさん:2014/06/04(水) 00:58:09.14 ID:KWyGL2f/
うーんvar積極的に使うべきだと思うけどな
最近は明示的にわかるやつ以外は使わないようにしてるが
688デフォルトの名無しさん:2014/06/04(水) 01:11:23.20 ID:xpNlfCv7
俺は使わないが
basic的に変数使えるから初心者スレ的には有りだと思う
689デフォルトの名無しさん:2014/06/04(水) 01:57:46.92 ID:qX172Hpq
var と Variant の区別が出来ていないバカがいるのか
690デフォルトの名無しさん:2014/06/04(水) 06:55:36.52 ID:cv7ZTq9m
したくないだけだから放置でいいよ
691デフォルトの名無しさん:2014/06/05(木) 00:10:50.35 ID:+ehjLDFB
ペイントソフトを試作中です
アルファチャンネルのような透明度情報は今回必要なく、マスクを利用した透過処理だけで十分です
この場合に適当なメソッドはなんでしょうか?
検索した限りではwin32APIのBitblt関数くらいしか見つかりませんでした
Bitbltを使わない場合、結局はピクセルごとの合成処理を書くことになりますか?
692デフォルトの名無しさん:2014/06/05(木) 00:19:42.13 ID:vfq72CYR
directdrawとかあるけど同じようなもんだから結局そうなるよ
693デフォルトの名無しさん:2014/06/05(木) 00:44:47.05 ID:NIUtCBh4
っていうか、質問してるのが「適当なメソッドはないか?」なのに
実現したい目的に「マスクを利用した透過処理」なんて大雑把なことしか
書いてないのは突っ込んじゃだめだろうか。

俺にはチグハグなようにしか思えないが...
694デフォルトの名無しさん:2014/06/05(木) 00:56:08.78 ID:+ehjLDFB
「Bitbltのような、マスク画像と対象画像のor演算やand演算ができるメソッドがC#にないか?」
という意味でした。不明瞭ですみません
695デフォルトの名無しさん:2014/06/05(木) 07:48:41.30 ID:Mp/yoNCj
GDI → APIでちまちま
GDI+→ System.Drawings名前空間その他でお好きに
WPF → ( ゚皿゚)ガォーッ!!
696デフォルトの名無しさん:2014/06/05(木) 07:58:34.87 ID:/PoXdjmc
ガオー
697デフォルトの名無しさん:2014/06/05(木) 13:51:25.85 ID:/qL5ncUa
面倒ならOpenCVSharpとか使えばいいんじゃね
自分でピクセルごとの演算やっとけば、後で色々と応用効くけども
698デフォルトの名無しさん:2014/06/05(木) 15:53:54.68 ID:W2Wu02Nv
最近Windows API Code Packというのを知りました
MSの公式HPがなくなってるようですがもう公開終了してしまったのでしょうか?
まだどこかでダウンロードできるところはありますか?
(ExpressなのでNuGetは使えないです)
699デフォルトの名無しさん:2014/06/05(木) 16:13:24.78 ID:/PoXdjmc
ExpressでもNuGet「は」使えますよ
VS2008とか言われると手も足も出ませんが
700デフォルトの名無しさん:2014/06/05(木) 16:48:19.02 ID:Mp/yoNCj
Windows API Code PackのShellのやつで今遊んでるけど
けっこういい加減なコードがあるな
書いてるヤツはプロだろうにちょっとそれ違うっしょみたいなところが多々
701デフォルトの名無しさん:2014/06/05(木) 23:39:22.37 ID:KqY/r4Jl
expressで使えるコードを自動ソートしてくれるようなのはないかな
702デフォルトの名無しさん:2014/06/06(金) 00:31:05.98 ID:9xE499Hy
「使える」がどっちにかかるのさ
703デフォルトの名無しさん:2014/06/06(金) 01:03:22.13 ID:g0EXviKA
自然言語って曖昧だよな
704デフォルトの名無しさん:2014/06/06(金) 01:26:15.12 ID:cWRGpuDH
>>702
どっちでもいいので教えて下さい
705デフォルトの名無しさん:2014/06/06(金) 07:57:12.26 ID:slyOrLRP
コードの自動ソートってなんぞ?
706デフォルトの名無しさん:2014/06/06(金) 09:29:57.20 ID:UcUEUerQ
自動的にランダムにソートしてくれる機能
707デフォルトの名無しさん:2014/06/06(金) 09:33:03.55 ID:j3uepfFp
ランダムとソートって相反するんだが。
708デフォルトの名無しさん:2014/06/06(金) 09:41:25.51 ID:pSAew24Y
ランダムにソート
709デフォルトの名無しさん:2014/06/06(金) 09:45:18.93 ID:0xBB7/ZV
ランダムがソート
710デフォルトの名無しさん:2014/06/06(金) 09:51:11.58 ID:Yda6Fviz
ガンダムがソート
711デフォルトの名無しさん:2014/06/06(金) 09:51:19.77 ID:b2MTGrQW
ガンダムがニート
712デフォルトの名無しさん:2014/06/06(金) 10:10:15.68 ID:BvDrvDh3
俺がニートだ
713デフォルトの名無しさん:2014/06/06(金) 10:59:48.39 ID:LO0pC3+W
俺は・・・ソートにはなれない・・・
もう一度、ソートになるチャンスを・・・
714デフォルトの名無しさん:2014/06/06(金) 11:25:25.34 ID:QXIVHHdj
login.aspxから作成したパスワードってどこに保存されてましか?
検索してもみあたりません
715デフォルトの名無しさん:2014/06/06(金) 12:13:55.06 ID:fmQEBeoh
誰かエスパーを頼む
716デフォルトの名無しさん:2014/06/06(金) 14:04:31.78 ID:nBXq1INX
とりあえずweb.configの中身全部張って
717デフォルトの名無しさん:2014/06/06(金) 17:03:48.67 ID:bkY7VEvb
ApplicationDbContextインスタンスのなかに
718デフォルトの名無しさん:2014/06/06(金) 21:33:17.12 ID:5aTUsUzW
ASP.NET MVC 3縛りの環境で使えるASP.NET Identityみたいなライブラリありませんか?
719デフォルトの名無しさん:2014/06/06(金) 22:48:11.40 ID:On/2IT9O
SPAテンプレートのプロジェクトがさっぱりわからないんだけど、どこを手掛かりにして読んでけば
プログラム全体の流れ追えるのこれ。

てかみんなこれ普通に分かるの?
720デフォルトの名無しさん:2014/06/07(土) 00:37:59.22 ID:ajtBvrGW
マネージドメモリってマニュアル管理出来んの?
c++で言うところのplacement newをしたいのだが無理かな
721デフォルトの名無しさん:2014/06/07(土) 00:38:46.94 ID:I26RBxeW
無理無理無理よ
722デフォルトの名無しさん:2014/06/07(土) 01:02:29.89 ID:+qjp2fUr
>>720
プールしたいだけならnewの代わりにstaticメソッドで勝手にやればいい
メモリの配置を制御するのは無理だし一般にGC任せのほうが効率いい
723デフォルトの名無しさん:2014/06/07(土) 07:23:16.31 ID:ylifU+oO
http://pastebin.com/qGsLgJvv

nullや未定義的なことができたら、
最後のif(isValid)をif(null != type)みたいにしてisValidを無くしたいです。

型のある言語に慣れてないせいかもしれませんが、
変な書き方をしちゃってると思っています。
どう書くのがいいんでしょうか?

ちなみにUnity用のコードで、usingやクラス定義は省略してます。
724デフォルトの名無しさん:2014/06/07(土) 07:33:24.69 ID:lZcAOcUL
default:
じゃあかんの?
725デフォルトの名無しさん:2014/06/07(土) 07:38:18.64 ID:lZcAOcUL
微妙に読み違えてた
Nullableならこんなの
PrimitiveType? type = null;
if (type.HasValue) {
&nbsp; &nbsp; GameObject.CreatePrimitive(type.Value);
}
でもisValidで良いと思うけど
初期値trueにしてdefault: isValid = false;にしておけば手間もない
726デフォルトの名無しさん:2014/06/07(土) 07:50:41.30 ID:ylifU+oO
>>725
あざます。
.HasValueと.Valueってのがあるんですね。
初期値をnullにできました。

isValidの初期trueでdefalut:でfalseにするのも、確かにそのほうがいいですね。
今回は、switchの中で決まるはずのtypeに、警告つぶすために2行目で

PrimitiveType type = PrimitiveType.Sphere;

しちゃってたのが気になるので、

PrimitiveType? type = null;

にしてisValidは消そうと思います。
727デフォルトの名無しさん:2014/06/07(土) 17:49:42.01 ID:6s6s+6fm
いや、そんなことしなくてもdefaultだけでいいだろ
今回だと、defaultに入ったらなにもせずにreturnすればいい

あとは、文字列から列挙体にしたいならEnum.TryParseの使用を検討するとか
728デフォルトの名無しさん:2014/06/07(土) 19:18:05.15 ID:qwZo7tiL
C# でInternetExplorerを使ってPDFを開こうとしていますが
Adobe Readerが起動してしまいます。

Internet Explorerの中でPDFを開いて閲覧したいのですが
どうすればよいのでしょうか?

もしくは、こちらはC#というよりはPCの何か設定による問題なのでしょうか?

例)

http://get-lemon.com/funny-news.pdf
にC#でIEを開きアクセスします。

この時にAdobe Reader上で開くのではなくIE上で開くようにしたいです。
729デフォルトの名無しさん:2014/06/07(土) 19:18:29.79 ID:ylifU+oO
>>727
2行目のPrimitiveType type = PrimitiveType.Sphere;はあまり気にしなくてもいいんですかね・・
まぁ確かに動きとしては問題ないんですけど。

C#のことぜんぜん分かってないんですが、そんなことをしなくてもってことは、
Nullableはあまり積極的に使わないほうがいい感じなんですか?

列挙体をググってみたんですが、valueが数値系に限定されたkey valueな何かという理解であってますか?
もしそうなら、PrimitiveType.Sphereなどの中身が数値なら、使えそうですね。
730デフォルトの名無しさん:2014/06/07(土) 19:19:05.85 ID:Wo+bMmIy
C#関係ねーじゃん
731デフォルトの名無しさん:2014/06/07(土) 20:27:54.34 ID:Y4C/YAA7
728ですが自己解決しました。


>>730 ← この垢に質問しなくてもよかった×2
732デフォルトの名無しさん:2014/06/07(土) 20:30:59.81 ID:I26RBxeW
自慰の結果は報告しなくていいです
よく飛びましたとか言わないでしょ
733デフォルトの名無しさん:2014/06/07(土) 20:34:24.04 ID:97tIzKLA
>>728
普通に.pdfをシェルに渡すとAdobe readerが開いちゃうから、IEのインスタンスを作って、file://~を開くようにしたらダメかなぁ

…と全くテストすらしてないが言ってみた
734デフォルトの名無しさん:2014/06/07(土) 20:36:32.92 ID:XNTWDZc7
>>729
>Nullableはあまり積極的に使わないほうがいい感じなんですか?

べつに使っても問題ないけど
もともとはデータベース関係で使うことを想定した機能だわな
個人的には使う場所がないので使わない。

列挙体を自分で定義してるならInvalidとかNoneとか無効を意味する値を0で追加するかな
ビルトインな列挙体なら>>723みたいなフラグで管理しても問題ないと思う


>列挙体をググってみたんですが、valueが数値系に限定されたkey valueな何かという理解であってますか?

いや数値そのものに名前がついただけ
コンパイラ的にタイプセーフにしてくれるだけというのに近い
キャストすれば常に元の数値に戻せるし、列挙型として無効な数値もキャストできちゃう
735デフォルトの名無しさん:2014/06/07(土) 22:41:24.66 ID:ylifU+oO
>>727 >>734
あざます。
C#っぽいというか、C#ではこうするといった感覚もまだ持ててないので助かります。

列挙体は、まだいまいち飲み込めてない感じですが、実際に使って慣れないと分からなさそうな気がしています。

enum fooEnum{ foo = 5, bar = 10 };
Enum.Parse(typeof(fooEnum), "foo") // たぶんenum型? fooEnumもenum型?
(int)Enum.Parse(typeof(fooEnum), "foo") // 5

ただ、Enum.TryParse()は、Unityが乗っかってるmonoのバージョンが2.6.5で、どうやら使えないみたいです。
736デフォルトの名無しさん:2014/06/07(土) 22:42:39.68 ID:ylifU+oO
http://pastebin.com/Ph7JksAf

もうひとつ質問させてください。
薄々、慣れているJavaScriptとか他の言語での考え方にとらわれてる気がしてますが、
C#でならこう書くというのが分かりません。

やりたいことは、fooメソッドの引数によって、作るオブジェクトの名前と、設定するTypeが変わるので、
それをハッシュテーブルに定義して置きたいというものです。

Dictionary<string, Dictionary<string, string>> のようにして多次元Dictionaryができる見たいですが、
2次元目はstringとintが混ざるので、匿名型にしてみたところでつまずいてます。
737デフォルトの名無しさん:2014/06/07(土) 22:45:47.32 ID:I26RBxeW
素直にobjectに入れとけば
738デフォルトの名無しさん:2014/06/07(土) 22:51:41.42 ID:vP0F1EA/
NameとTypeを持つクラスを作ってDictionaryにする
739デフォルトの名無しさん:2014/06/07(土) 23:20:04.95 ID:ylifU+oO
レスあざます。

>>737
http://pastebin.com/bRKcDjjG

objectに入れるってこういう感じですか?
いわれてnew objectできる事を知ったんですが、
ググってみたところ、複数の値を持たせるにはobjectの配列になるみたいなので、やってみました。
が、fooメソッド内では配列として認識されてないっぽいエラーメッセージが出ました・・・

>>738
ちょっとした使い捨てのデータのつもりだったんですが、
クラス作るしかないんでしょうか?
C#では作っていくのが自然なんですか?
740デフォルトの名無しさん:2014/06/07(土) 23:24:44.12 ID:msQmokNs
dictionary["Name"]に名前が入っていて、dictionary["Age"]に年齢が入っているような作りは、通常避けたほうがよい。
一つのDictionary内のvalueはすべて同じ意味のものにするべき。
名前しか入ってないDictionaryとか、年齢しか入ってないDictionaryとか、Personしか入ってないDictionaryとか。
なので>>738のようにNameとTypeを持ったクラスを作って、Dictionary<string, そのクラス>形式にする。

一応、Dictionary<string, Tuple<string, SomeType>>とする手もあるが、
そのDictionaryがどう考えても戻り値専用で一時的にしか使わないなどの状況でない限りお勧めしない。
741デフォルトの名無しさん:2014/06/07(土) 23:25:03.01 ID:6s6s+6fm
匿名クラスはobjectに変換すると一般的な方法では扱えなくなる
基本はLinqとかでの一時生成物用の機能
>>738 のとおり、素直にクラスを定義すればよい

そもそもstringとintが混じるとか、string型の引数で分岐とか変な気もする
設計を見直すべきかも
742デフォルトの名無しさん:2014/06/07(土) 23:36:52.45 ID:6s6s+6fm
>>739
JavaScriptのオブジェクトにいろいろぶっこんで返すというのは静的な言語ではやらない
それをやると、コンパイル時に型が決定できなくて、速度と安全性を失っちゃう

もっと詳しく目的がわかれば別解があるかもしれないけど、クラスを作った方がいい

あと、匿名クラスの一時的という範囲は同じメソッドの中の話で、それを外に漏らしちゃいけない
743デフォルトの名無しさん:2014/06/07(土) 23:59:38.62 ID:ylifU+oO
>>740 >>741 >>742
あざます。
C#、というより静的な言語難しいですね。
JavaScriptなどのスクリプト言語しか経験がないので、C#の考え方を身に着けないと、
設計の見直しもままならなさそうですね。
これは、じっくり考えないといけなさそう。

一応、やりたいことは、>>723 とほぼ同じ何ですが、オブジェクト名とタイプの2つが必要になって、
今回の試行錯誤を始めました。

GameObject gObj = new GameObject(obj.Name);
gObj.type = obj.Type;

ざっくり書くと、
用意されたパターンの中から、ユーザー入力でパターンを指定してGameObjectを生成したいです。
744デフォルトの名無しさん:2014/06/08(日) 18:06:18.81 ID:AeT851+t
起動後、初回のHttpClientのレスポンスが異常に遅い
ググってもWebRequestの頃の記事しか出ないからそれを参考にしてProxyをnullにしてみたんだけど改善されない
HttpClientHandler handler = new HttpClientHandler();
handler.Proxy = null;
HttpClient hc = new HttpClient( handler );
HttpClientってWebRequestラップしてるだけだよね?
他の原因なのかな
745デフォルトの名無しさん:2014/06/08(日) 18:20:17.31 ID:9o67lThF
>>744
それ環境のせいだよ
他のPCでやってみたりしてみな
746デフォルトの名無しさん:2014/06/08(日) 18:28:13.87 ID:bhbNS/bW
>>744
OS起動後の1回目が遅いの?
747デフォルトの名無しさん:2014/06/08(日) 18:33:49.02 ID:AeT851+t
>>745
本当ですね、仮想環境のOSインストール直後のwin7では一瞬でした
ホスト側のwin7ではすっっごく時間掛かります…
プログラム側に不備がないのがわかったのはいいのですが、開発環境で初回のみ20秒30秒掛かってしまいイライラします
何が悪いんでしょう…

>>746
いえ、アプリケーション起動後の初回です
アプリケーションを起動しなおすとまた1回目は遅くなります
748デフォルトの名無しさん:2014/06/08(日) 18:35:43.08 ID:9o67lThF
>>747
それvmwareじゃない?
vmwareスレで聞けば解決するよ
749デフォルトの名無しさん:2014/06/08(日) 18:37:31.10 ID:AeT851+t
>>748
環境のせいだと聞いて、vmware側でテストしてみると一瞬だったんです。
普通にパソコンを起動した時にbootされるホスト側のOSだと30秒近く掛かってしまいます
750デフォルトの名無しさん:2014/06/08(日) 18:39:10.28 ID:9o67lThF
>>749
vmwareをアンインストールすると直るよ
vmwareインストールするとネットワークドライバとか入るでしょ?
あの辺が悪さするんだ。
751デフォルトの名無しさん:2014/06/08(日) 18:46:56.60 ID:9o67lThF
752デフォルトの名無しさん:2014/06/08(日) 18:47:12.41 ID:AeT851+t
>>750
なるほど
VMwareをアンインストールするわけにはいかないのでVMwareすれで聞いてきますね
753デフォルトの名無しさん:2014/06/08(日) 18:47:42.28 ID:AeT851+t
>>751
ありがとうございます
見てみます
754デフォルトの名無しさん:2014/06/08(日) 18:57:48.23 ID:AeT851+t
ネットワーク接続のVMnet1とVMnet8を無効にしたらなおりました
まだVMware側の一瞬に比べると遅いけど、3秒で結果が帰ってくるようになったので一先ずよしとします
755デフォルトの名無しさん:2014/06/08(日) 19:31:37.96 ID:srCrxwJ4
>>748-754
おまえらには感謝しきれない
756デフォルトの名無しさん:2014/06/08(日) 20:38:33.63 ID:e+2yydW9
VS2013Express C# Windows Form Applicationでマインスイーパーを作ろうとしています
爆弾の有無、クリック済みか、周りの爆弾を数える、みたいな感じの状態や関数を持ったクラスをつくり
そのインスタンスが各要素に登録された2次元配列をつくり、その状態が反映させられるフォームを探しています
どういったフォームを使えばいいですか?
それとも、インスタンスを2次元配列的に登録できるようなフォームがあれば教えてください。
757デフォルトの名無しさん:2014/06/08(日) 20:41:07.82 ID:Qfp6xw+G
自分で描画するのが一番楽だし正解
758デフォルトの名無しさん:2014/06/08(日) 20:42:27.47 ID:7AL9B6MX
OnPaintで描けば何でもいけるぞ
759デフォルトの名無しさん:2014/06/08(日) 20:43:17.93 ID:graFfHTB
WPFならItemsControl+UniformGridって手もあるけどFormsにそんなものはない
DataGridView魔改造ぐらいか
760デフォルトの名無しさん:2014/06/08(日) 20:43:46.71 ID:+g6Fv1Q4
PictureBoxがいいだろう。
761デフォルトの名無しさん:2014/06/08(日) 21:00:26.41 ID:e+2yydW9
何か面倒くさそうなことしようとしてるっぽいですね。。
自分で描画は一度調べてみようと思うのですが、他に何かマインスイーパー作ってみようってなった時の
一般的な実装方法とかあるなら教えてもらえると嬉しいです
762デフォルトの名無しさん:2014/06/08(日) 21:04:34.14 ID:7AL9B6MX
ゲームを作るって面倒くさいですよ
なぜみんな揃いも揃ってゲームを作ろうとするのか全く理解できない
763デフォルトの名無しさん:2014/06/08(日) 21:06:08.07 ID:NuPTB7vo
マインスイーパーの画面が思い出せないんだけど。
普通に forms のチェックボックスのボタン化状態で、ボタンの描画に適当なビットマップを貼り付けるとかじゃダメなの?
764デフォルトの名無しさん:2014/06/08(日) 21:08:13.42 ID:+g6Fv1Q4
自分で描画するのが楽。線引いて、*、Fと数字だけだろ描くのは。
演出こらなければ調べながらでも2時間もかからないだろう。

今日中に完成するということだ。
765デフォルトの名無しさん:2014/06/08(日) 21:15:06.45 ID:Qfp6xw+G
>>763
コントロール配列でできるけど、コントロールは本来そういう使い方をするもんじゃない
数が増えると重くなるし、メモリは食うし
WPFならいいのかもしれないけど、WinFormsでは自分で描画すべき

なお、クリックされた座標からどのマスをクリックしたのかの計算は簡単
766デフォルトの名無しさん:2014/06/08(日) 21:20:03.40 ID:tckyHTUl
http://www.atmarkit.co.jp/ait/articles/0610/21/news014.html
連載:.NETグリッド・コントロール大研究:第2回 DataGridViewコントロールでマインスイーパ
767デフォルトの名無しさん:2014/06/08(日) 22:03:50.35 ID:SjxXj1KS
>>762
UI あって、ロジックがたいして難しくないから、練習にはちょうどいいんだろ。
つーか、他に適当な題材あるなら教えてやれよ。
768デフォルトの名無しさん:2014/06/08(日) 22:10:09.05 ID:graFfHTB
ゲームだとGDI+とかそういう方面の知識しかつかないからなあ
新人にはいつもデータ処理+グラフ描画やらせてるわ
769デフォルトの名無しさん:2014/06/08(日) 22:10:40.05 ID:+g6Fv1Q4
定番はテトリスだろう。
770デフォルトの名無しさん:2014/06/08(日) 22:57:42.19 ID:81o4BWeL
テトリスもああ見えて要件が直感的じゃないからあんまり
771デフォルトの名無しさん:2014/06/09(月) 01:18:09.27 ID:tLI7qWCB
>>768グラフ描画もいろいろ。どういうのやらしぃてんの?
772デフォルトの名無しさん:2014/06/09(月) 10:05:34.61 ID:jIvVB3Mo
TextBoxでテトリスを作った思い出・・・
GDI+関係ねぇw
773デフォルトの名無しさん:2014/06/09(月) 10:12:41.01 ID:rLie7rN8
WinFormというかWindowsのウィンドウ描画まわりがどういう仕組になってるかとか
今から教えても/学習しても無駄知識になりそうな気がして仕方ない
つーかx86/64に未来はあるの?
774デフォルトの名無しさん:2014/06/09(月) 10:17:39.10 ID:WQD38f8Z
せめてLabelで作ろう
775デフォルトの名無しさん:2014/06/09(月) 10:18:12.27 ID:KtJl+Qui
未来あるなしは関係なく現に今主流だし、細かい挙動なんかはC#じゃ実現できずwinapi使わざるを得ないこと多い
その状況はこれからもC#使う限りは10年以上続くと思うよ
だからwindowsプログラミングするならある程度知っていた方がいい
776デフォルトの名無しさん:2014/06/09(月) 12:46:58.33 ID:1ALghbTb
線を引いて塗りつぶして数字を描画するくらいやっつけで作っても、
3日もすれば忘れるので無駄知識にはならないよ。
777デフォルトの名無しさん:2014/06/10(火) 01:21:56.67 ID:8vGiYuGT
C#覚えて初めのゲーム作りで、馬鹿な質問かもしれんが教えてくれ
ソートとかも楽だしsqliteでデータを扱ったらいいのかと思って途中まで作ってふと思ったんだ
sqliteで作成したデータベースって普通に読めてしまうよな?
ゲームデータ覗く奴なんてそうおらんしどうせたいしたゲームでもないだろ気にするな、と言われたらその通りなんだが
一般的?なゲームデータ保存方法とデータベースの扱いってどうなってるんだろうかと
隠したいデータがあれば単純に難読化、暗号化とか?
フリーゲームや同人ゲーだと普通にそのままsqliteのデータベースファイルだったりする?
商業ゲームでも結局は解析されてしまってたりするが、データベースソフトは自前で作ってたり他の商用ソフトだったり?
778デフォルトの名無しさん:2014/06/10(火) 01:35:55.21 ID:8vGiYuGT
言わずともわかるかもしれんけどちょっと補足
隠したいというのは単純に見られたくない隠しデータというだけでなくて、
例えばアイテムのパラメータが書かれたファイルを普通に読まれたら、その書き換えも容易だよなと

海外だとMODとかが一般的だから逆に分かりやすく作ってあったりして?
779デフォルトの名無しさん:2014/06/10(火) 01:47:26.05 ID:bjbUofEp
sqliteってパスワード設定できなかったっけ?
780デフォルトの名無しさん:2014/06/10(火) 01:59:23.45 ID:8vGiYuGT
本当だ知らんかったありがとう
781デフォルトの名無しさん:2014/06/10(火) 03:23:48.13 ID:04iW/dqM
金庫の上に鍵が置いてある状態でセキュリティについて真剣に考えてみるスレ
782デフォルトの名無しさん:2014/06/10(火) 06:10:47.27 ID:DoT4XX20
簡単に持ち去れる手提げ金庫のセキュリティがそんなに気になるか?
783デフォルトの名無しさん:2014/06/10(火) 06:52:49.61 ID:M/GEUruD
残念 それはミミック
784デフォルトの名無しさん:2014/06/10(火) 08:49:19.98 ID:fSq5srf6
>>777
利用者がアクセス・改竄しにくいようにするのが基本。
昔ならUSBドングル。
今だと、サーバとの通信で認証とか。
785デフォルトの名無しさん:2014/06/10(火) 09:00:01.31 ID:CNFWIsCC
>>784
その系統はコピープロテクト向け
改竄向けに使えないことはないけど普通は使わない
786デフォルトの名無しさん:2014/06/10(火) 09:19:21.09 ID:oTSeTiPz
フリーゲームや同人ゲーだってるのにドングルとかサーバで認証とか言ってる人ってかっこいい
787デフォルトの名無しさん:2014/06/10(火) 09:37:03.69 ID:P/u2hLqu
気にするまでも無いと思うけどな
やっても適当なバイナリファイル作って自分で簡単な暗号化と圧縮で十分かと
788デフォルトの名無しさん:2014/06/10(火) 09:51:15.06 ID:8vGiYuGT
>>781
絶対に改ざんされない方法を知りたいわけではなく、
ゲームのデータはどう扱われることが多いのか気になっただけなんだ
sqliteなら手軽だからよく使われているのか、それともまともな開発者ならsqliteなんて使わないよね、なんて状況なのか
遊びで作る程度のゲームでそんなこと気にする必要ないという突っ込みは置いといてくれ

>>784
業務用ソフトウェアならともかく、ゲームにUSBドングルなんて一般的ではなかったと思うんだが・・・
サーバ認証はsteamとかだとあるのか?
789デフォルトの名無しさん:2014/06/10(火) 10:00:38.92 ID:2sY7VkH2
ふっかつのじゅもんをsqlにつっこめ
790デフォルトの名無しさん:2014/06/10(火) 10:16:26.77 ID:EKnfAxMx
普通はこれを使うんじゃないかな
http://dobon.net/vb/dotnet/string/protectedmemory.html
791デフォルトの名無しさん:2014/06/10(火) 10:22:58.83 ID:2sY7VkH2
792デフォルトの名無しさん:2014/06/10(火) 10:46:48.01 ID:CNFWIsCC
どのくらいデータがあるのか、どんな使われ方するのか知らんが、
sqlite使うよりもデータの使われ方に合わせた独自の管理形式にしたほうが速度的にも有利だと思うけど・・・

今のゲームは知らないが、昔のなら
FD、CDがドングル代わりになってるのもあった(コピー対策)
データ類は生、生+チェックサムや電子署名、独自ファイル、暗号化。暗号化はビットひっくり返すだけみたいな簡易的なのが多かった
ドングル類も強度の高い暗号も解析しようと思えば簡単にできる。ただそれを実装したり解析するのにかかる時間の違いがあるだけ

>>790
その系統はセーブデータの暗号化に使えるけど配布ファイルの暗号化には使えない
さらにプレイするPCと解析するPCが同じだったら手間が少し増える程度
793デフォルトの名無しさん:2014/06/10(火) 11:44:44.92 ID:Lfcv+1fq
sqlite暗号化すればいいんじゃないのか
794デフォルトの名無しさん:2014/06/10(火) 12:23:32.33 ID:IQXrTSSv
改ざんチェック用のチェックデジットもあったほうがいいね
おれつえーはすぐ飽きるしなw
795デフォルトの名無しさん:2014/06/10(火) 14:47:52.53 ID:vjIkGW5S
3DES使っとけ的な
796デフォルトの名無しさん:2014/06/10(火) 14:50:21.81 ID:8vGiYuGT
いろいろ参考になった、ありがと
797デフォルトの名無しさん:2014/06/10(火) 15:11:01.90 ID:65Dw8cbQ
>>795
何故あえてTripleDES? 中途半端すぎないか?
798デフォルトの名無しさん:2014/06/10(火) 20:56:47.77 ID:30o2Vi8t
>>777で思い出したけど昔同人ゲームの実行ファイルの中を見たらゲームデータの解凍パスがそのまま載ってた事があった
799デフォルトの名無しさん:2014/06/10(火) 21:45:30.03 ID:cPxsx92l
>>798
final なんか red++ とmifes の悪口がてんこ盛り
800デフォルトの名無しさん:2014/06/11(水) 18:18:05.10 ID:HzvCFVQ8
>>797
MSDNにサンプルコードあるから
801デフォルトの名無しさん:2014/06/11(水) 18:22:00.19 ID:LANa9yoQ
大して重要ではないデータの暗号化はXOR。
地デジのスクランブルにも採用されているくらい単純で速い
802デフォルトの名無しさん:2014/06/11(水) 21:10:29.54 ID:AjRud+88
その言い方は語弊があるだろ
803デフォルトの名無しさん:2014/06/12(木) 09:23:49.51 ID:swwsjqzZ
int a[] = { 2, 5, 7, 1, 5 }; があったとして

aの要素同士をランダムに掛け合わせて新しいリストを作り、
決め打ちした要素数(たとえば15)まで増えてきた時点で打ち切り

ってことをやりたいんですが、
これをLINQ使ってサクっとやりたい場合どうやればいいでしょうか?
それともfor使ってゴリゴリ書くしかないのでしょうか?
804デフォルトの名無しさん:2014/06/12(木) 10:11:25.54 ID:uYyWzI4f
Random rand = new Random();
Func<int> getRand = () => a[rand.Next(0, a.Length)];
Enumerable.Range(0, 15).Select(_ => getRand() * getRand()).ToList();
805デフォルトの名無しさん:2014/06/12(木) 10:27:23.35 ID:M8h4NdWX
(from x in a.OrderBy(_ => Guid.NewGuid())
from y in a.OrderBy(_ => Guid.NewGuid())
select new { x, y }).Take(15)

重複しない他の方法ってあるかな
806デフォルトの名無しさん:2014/06/12(木) 12:56:11.78 ID:rwjoBljd
クエリ構文は眼が拒否するので(^_^;)
807805:2014/06/12(木) 12:59:02.46 ID:M8h4NdWX
あ、これ駄目だw
808デフォルトの名無しさん:2014/06/12(木) 13:29:40.42 ID:GqYTxgzr
それをLINQで書きたい理由がわからん
LINQで書いたからサクッと実行されるとは思わんし
自分でサクッと書けない時点でLINQでやる意味無いと思うが
809デフォルトの名無しさん:2014/06/12(木) 13:58:37.23 ID:lqy+PIxA
LINQ信者に何をいっても無駄
810デフォルトの名無しさん:2014/06/12(木) 14:00:16.23 ID:M8h4NdWX
どうやるのって聞くだけでLINQ信者なのかw
811デフォルトの名無しさん:2014/06/12(木) 14:14:06.80 ID:bsEn+gS5
【VB.NET】LINQ友の会【C#, C♯, C#】
ttp://peace.2ch.net/test/read.cgi/tech/1202568694/

ここで聞くよろし
812デフォルトの名無しさん:2014/06/12(木) 14:16:56.14 ID:icjii/oU
ウィンドウの枠のサイズの取得方法を教えてください。
SystemInformation からは以下のように値が取得できました。
BorderSize {Width = 1 Height = 1}
Border3DSize {Width = 2 Height = 2}
FrameBorderSize {Width = 4 Height = 4}
しかし実際に表示されている枠のサイズは {Width = 8 Height = 8} が正しいようなのです。
どうすればこの正しい値を取得できますか?
一応、(Width - ClientSize.Width) / 2 とすれば正しい値を取得できるのですが、
できればウィンドウを表示する前に取得したいのです。
813デフォルトの名無しさん:2014/06/12(木) 16:36:17.47 ID:ccc0WdqI
>>812
MSDN読んでもどれが何のサイズを表してるのかさっぱり分からんねw

FormBorderStyle = Sizableの場合、SizingBorderWidthに3を足した値か?
3って値がどっから出てくるのか分からないけどw
814デフォルトの名無しさん:2014/06/12(木) 16:47:47.77 ID:bAJS1Sms
>>813
FixedFrameBorderSize
815デフォルトの名無しさん:2014/06/12(木) 16:48:28.07 ID:uYyWzI4f
LoadイベントでClientSizeとか参照すれば表示前かつ正しいサイズ取れない?
816デフォルトの名無しさん:2014/06/12(木) 17:22:57.10 ID:icjii/oU
>>815
確かにLoadイベントで (Width - ClientSize.Width) / 2) すれば表示前に取得できました。
なんとなく気持ち悪いですが、これが確実そうですね。
817デフォルトの名無しさん:2014/06/12(木) 20:30:55.07 ID:rwjoBljd
MSDNの歯切れが悪いのは
XPで導入しかかったスキンのせいだと思うね

ビジュアルスタイルがユーザーによって変更されている場合(7とか8の場合はより可能性が低いが)
値が違ってくるから。

結局サポートコストとかセキュリティとかのせいで廃止されたんたと思うが
818デフォルトの名無しさん:2014/06/12(木) 21:37:35.11 ID:3rnVvsOv
いやカスタマイズ可能であってもそのカスタイマイズされた値が取得できれば問題ないわけで、
それは理由にならないでしょ。
819デフォルトの名無しさん:2014/06/12(木) 21:53:30.70 ID:3rnVvsOv
ルナがあまりに悪趣味だったおかげかどうか、Aquq風に改造するのがそういえば
一部で流行ってたなあ。
820デフォルトの名無しさん:2014/06/14(土) 02:18:31.50 ID:YGWjcU/Q
標準C#入門2版(2008年発行VC#2008対応)を買ったのですが、VC#2012で勉強しても問題ありませんよね?
2.0と3.0で追加されたものは巻末に30ページほどまとめられて載っていますので、本編講座内では使われてないと思います

友達が業務のために勉強したJavaの本2冊をくれるっていうので、
Javaのほうがいいのかとも思ってるんだが
Rubyは最初だけ囓ったことがある、
821デフォルトの名無しさん:2014/06/14(土) 02:19:29.01 ID:YGWjcU/Q
>>820
すいません、下記のJavaが云々は別スレで聞くつもりの内容で、消していませんでした
無視してください
822デフォルトの名無しさん:2014/06/14(土) 08:29:48.37 ID:gL6RkEql
終わったら
はじめてのVisual C# 2012 初音 玲
ttp://www.amazon.co.jp/dp/4798038148
がお勧め
はじめてのC#じゃなくて
C#はとっくにわかってるが2012ははじめて
っていう人対象のサギみたいなタイトルだから
>>820のご要望には合致してると思う
823デフォルトの名無しさん:2014/06/14(土) 09:17:59.60 ID:Dhxkjofs
IDEの変更はいじってれば便利になったなってなんとなくわかるけど
C#4.0/.NET 4で今まで煩雑だったのが楽になったりしてるから
ネットでチェックしとくといい

あと
WinFormsは進化がしてないからそのままいけるけど
WebFormやMVCは結構進化してるからこれもチェック

入門を脱したらプログラミングC#の第7版は良書よな。
第6版と比べて格段に読みやすいがあれも初心者は無視してるな
824デフォルトの名無しさん:2014/06/14(土) 09:45:13.92 ID:AmjudbHd
>>822
>>823
ありがとうございます
標準~のほうで初心者脱して、はじめての~に移るというプランでいきます
825デフォルトの名無しさん:2014/06/15(日) 10:57:45.72 ID:Au4zqesJ
今からWebFormなんてやる意味あるか?
826デフォルトの名無しさん:2014/06/15(日) 16:01:32.26 ID:EpTzcfjl
listboxの改行ではなくこういうリストはどのように作っているのでしょうか
ttp://download.cnet.com/i/bto/20090922/digsby_67_twitter_timeline.png
やりたいことはTwitterではないのですが異なるフォントサイズ/カラー等が混在するListです
827デフォルトの名無しさん:2014/06/15(日) 16:04:34.55 ID:EfrMGo9G
WPFを使うのが一番おすすめ
WinFormsなら全部自作するんじゃないだろうか
828デフォルトの名無しさん:2014/06/15(日) 16:06:49.81 ID:EpTzcfjl
ありがとう
業務系は一通りこなせるとは思ってましたがWPFは未踏領域でした
そちらを調べてみます
829デフォルトの名無しさん:2014/06/15(日) 16:07:45.91 ID:VN8vOqQy
どのフレームワークを使うのか書かないと

Forms→組み込み機能使わずに色々コントロールを組み合わせれば出来なくもない
WPF→ItemTemplateで普通に出来る
ASP.NET(MVC)→CSSで出来る
830デフォルトの名無しさん:2014/06/15(日) 16:07:46.69 ID:TqsT3gd0
WPFを勉強するよりWinFormsで自作のほうが早そう
831デフォルトの名無しさん:2014/06/15(日) 16:13:26.54 ID:EpTzcfjl
>>829
デスクトップアプリでFormsでやろうと思っていました
某ERPからCSVでダラダラデータ取得するという仕事を楽にするアプリを以前にForms(3.5)で作ったのですが
部内で見栄えがもうちょっとなんとかならん?と相談されたのでTwitterクライアントみたいだったらいいなーと
社内趣味みたいなものでお金がでないので自前で出来たらと思って質問しました
832デフォルトの名無しさん:2014/06/15(日) 16:23:34.37 ID:VN8vOqQy
FormsでもデータバインドとかObservableCollectionとの同期とか考えないのならそれほど難しくない
パネルの中にFlowLayoutPanelでも入れてスクロールできるようにして、コードで生成したアイテムをガンガン入れてくだけ
各アイテムをUserControlにしとけばコードのボリュームもかなり減らせる
833デフォルトの名無しさん:2014/06/15(日) 16:25:25.20 ID:EfrMGo9G
いっそWebBrowserコントロールに表示するとかもありか
834デフォルトの名無しさん:2014/06/15(日) 16:41:13.80 ID:O96DeclS
>>832
コレ
割と簡単
835デフォルトの名無しさん:2014/06/15(日) 16:45:00.99 ID:wTZdDnna
せやな
文字を描画したときのサイズ取得して箱の大きさ決めるあたりが面倒臭いが
FlowLayoutPanel使えばそこらへんも勝手にやってくれるかも
836デフォルトの名無しさん:2014/06/15(日) 16:52:02.79 ID:EpTzcfjl
ここで出てきたキーワードで調べて書いてみたいと思います
ありがとうございました
837デフォルトの名無しさん:2014/06/15(日) 22:08:11.83 ID:9Vq05/27
>>833だよなぁ
838デフォルトの名無しさん:2014/06/16(月) 02:09:58.58 ID:V2SLoCL3
フォントと色ぐらいならオーナードローでいけるんじゃないか
いや、頑張ればそれ以上でもできるんだろうけど
839デフォルトの名無しさん:2014/06/16(月) 02:22:25.75 ID:MjUoPksE
WebBrowser使うぐらいなら頑張ってWPF覚えようよw
840デフォルトの名無しさん:2014/06/16(月) 02:37:49.11 ID:GvXD/dq8
初心者用に質問し直します。


画像に文字列を入れるプログラムを「どぼん」を参考に作成しています。
パターンAでは正常に文字がレンダリングされるのですが
MSのDocumentを見て自分で指定したパターンBではなぜか文字が入りません。
どこに問題がありますか?

パターンA
Brush b = new SolidBrush(Color.FromArgb(128, Color.Yellow));

パターンB
int i_alpha = 0;
int i_red = 10;
int i_green = 20;
int i_blue = 30;
Brush b = new SolidBrush(Color.FromArgb(i_alpha,i_red,i_green,i_blue));
841デフォルトの名無しさん:2014/06/16(月) 03:57:32.07 ID:T0Mv8WNA
>>826
昔作ったのを見なおしたら、ListViewのViewをTileに指定して、OnDrawItemをオーバーライドして
アイテムをオーナードローしていたな
ListBoxは作ったこと無いけど、基本は同じやり方で出来るんじゃないかな

オーナードローって言うほど難しくないからチャレンジしてみたらいいよ
842デフォルトの名無しさん:2014/06/16(月) 07:54:57.12 ID:QqCnpvcy
>>840
>int i_alpha = 0;
843デフォルトの名無しさん:2014/06/16(月) 08:15:59.69 ID:e2UtTTDJ
indexofに「【」が上手くヒットしないのですが
似たような文字があるのでしょうか?
844デフォルトの名無しさん:2014/06/16(月) 08:42:18.82 ID:5R7st4As
>>843
.IndexOf( "xx", StringComparison.Ordinal )
845デフォルトの名無しさん:2014/06/16(月) 08:44:08.67 ID:LSNe5S3g
普通に引っかかるなぁ
.ToCharArray()してその文字の数値はどうなってる?
846デフォルトの名無しさん:2014/06/16(月) 09:00:40.99 ID:5R7st4As
>>844 は.NET2.0系の場合ね。.
「々」「○」「、」「。」この辺の文字でいろいろ問題が出てた。

NET4.0でFix
847843:2014/06/16(月) 10:51:03.46 ID:e2UtTTDJ
ごめん
複数の「【」があっただけだった
ひと括り削除してもうひと括りが残ってようです
848デフォルトの名無しさん:2014/06/16(月) 14:01:36.88 ID:CZY7bRoU
スレ見てたら急にWPFに興味がわいてきた
849デフォルトの名無しさん:2014/06/16(月) 14:05:34.12 ID:dnWKdgM0
まだやってないのか
850デフォルトの名無しさん:2014/06/16(月) 14:25:07.24 ID:8HoR0lnT
wpfはblendがないとイライラするよ
UIそのまま使うならいいけど
色変えるだけでもめんどくさい
851デフォルトの名無しさん:2014/06/16(月) 17:07:35.33 ID:p5ph7Usx
winformで何も困ってないし、WPFである必要性がおれには何もないんだよな。
852デフォルトの名無しさん:2014/06/16(月) 17:29:40.11 ID:hbVkRtDG
高DPI対応とか
853デフォルトの名無しさん:2014/06/16(月) 17:41:34.97 ID:CZY7bRoU
仕事じゃ使わないし家で自分用にちょこっとツール作ったりするくらいだから必要なかった
Blendって有料かー
854デフォルトの名無しさん:2014/06/16(月) 18:02:37.39 ID:QqCnpvcy
ぬるぬる動くアニメーションUIとか
855デフォルトの名無しさん:2014/06/16(月) 18:36:50.18 ID:T0Mv8WNA
>>850
同じことをWinFormsでやると、もっと面倒なんだが
856デフォルトの名無しさん:2014/06/16(月) 18:53:51.93 ID:p5ph7Usx
色変えるのはcolorプロパティ弄るだけじゃないの?
よく知らんがWPFは大変だなw
857デフォルトの名無しさん:2014/06/16(月) 19:01:53.54 ID:r97cIDyW
WPFはフレームワークの想定内の用途はスマートに書けるけど、
そうでない場合はWindows Form以上にカオスに陥ったり、パフォーマンスその他の理由で
そもそも不可能だったり。
858デフォルトの名無しさん:2014/06/16(月) 19:02:40.01 ID:tlAgOJvy
WPFはデフォルトだとあんまりコントロールの見た目は弄れなくて
テンプレートを使って上面を丸ごと入れ替える感じになる
テンプレートの編集はBlendがないと地獄
859デフォルトの名無しさん:2014/06/16(月) 19:04:42.15 ID:tlAgOJvy
>>857
いやむしろVSみたいに低レベルなところから大規模なアプリを組み上げるときの基盤として使うのに向いてる
フレームワークとしては貧弱・無駄に複雑・パフォーマンス悪い
860デフォルトの名無しさん:2014/06/16(月) 19:44:52.38 ID:LIW+dGkX
Xamlいじらないといけないから、なれないとわかりにくい
MVVMもいまいちわからん
861デフォルトの名無しさん:2014/06/16(月) 19:52:00.85 ID:EVGVB3Oq
>>822にhelloworldをM、V、VMで書いた例があるよ
862デフォルトの名無しさん:2014/06/17(火) 18:07:41.91 ID:mGXnEsfS
初心者相手だからしったかの嘘書いたらあかん
wpfのバインディングやテンプレートでフォントや文字色簡単に変えたりできないよ
blend使うとか馬鹿じゃねーの
やれるもんならやってみな
ゴリゴリとコード書くしかないだろ
863デフォルトの名無しさん:2014/06/17(火) 18:34:30.13 ID:tW29pBLn
正直blendの使い道がライブラリを頂くぐらいしかない
SketchFlowなんて使ったことないし
864デフォルトの名無しさん:2014/06/17(火) 18:41:53.46 ID:8jTlL64M
フォントや文字色はプロバティーウインドウで簡単に変えられるからwinformsと一緒なんだが
>>862の人はwpf触ったこと有るんだろうか?

それとバインディングとテンプレートは全く別のものなんだが、並べて何が言いたいのか判らん
865デフォルトの名無しさん:2014/06/17(火) 19:32:33.62 ID:8LhyGeIo
秒速で1億稼ぐ男がレイプ

http://www.tanteifile.com/diary/2014/06/17_01/
866デフォルトの名無しさん:2014/06/17(火) 21:02:07.79 ID:rD+91nuE
レイプじゃなくて売春だね
867デフォルトの名無しさん:2014/06/17(火) 21:23:59.82 ID:cAc2Qa/f
売ったのかorz
868デフォルトの名無しさん:2014/06/18(水) 07:28:20.69 ID:qAhUT53R
>>864
じゃあコーディングなしで
>>826が簡単にできるか?
869デフォルトの名無しさん:2014/06/18(水) 07:44:43.77 ID:R7ypH+vG
普通にテンプレートだけでできるね
870デフォルトの名無しさん:2014/06/18(水) 08:34:38.46 ID:8UlZ7EwE
秒速でセクハラする豚は凄い

>>865
871デフォルトの名無しさん:2014/06/18(水) 14:58:03.87 ID:dF9Z7SpU
ここまで皆が熱くなるWPF
おれも始めようかな
872デフォルトの名無しさん:2014/06/18(水) 19:09:58.92 ID:rUftrLXu
WPFはオワコンなのに何言ってんだか。
873デフォルトの名無しさん:2014/06/18(水) 19:18:46.92 ID:GTroaFRm
WPFがオワコン×
クライアントアプリケーションの時代が終焉を迎えつつある○
874デフォルトの名無しさん:2014/06/18(水) 19:20:45.59 ID:yNoNm3US
需要が縮小するだけで終わったりしないから。
WPFは終わる以前に始まってすらいない。
875デフォルトの名無しさん:2014/06/19(木) 00:23:36.19 ID:Eeq6rbIC
WPFはデータバインドがうまく使えないんだよなあ
876デフォルトの名無しさん:2014/06/19(木) 00:27:26.06 ID:6V+B+iu8
オワコンかもしれない
けどWPF分かったら、もうWinFormsには戻れなくなる
XAMLやバインドわかればストアアプリも楽
877デフォルトの名無しさん:2014/06/19(木) 01:02:42.52 ID:k6y9FCW4
ストアアプリには一切興味ねーが、Formsには戻らない
ストアアプリにかまける前にWP本体売れよ(プゲラ
878デフォルトの名無しさん:2014/06/19(木) 14:06:09.86 ID:mCeLGUTv
・DirectX.NET
・Silverlight
・XNA
・WPF
879デフォルトの名無しさん:2014/06/19(木) 19:42:51.10 ID:rfumW9cb
Silverlight は WPF と同機能を有していればまだ未来があったかも…
880デフォルトの名無しさん:2014/06/19(木) 19:58:32.30 ID:sQJKsUMF
JAVAと違って、内部クラスから外部クラスのフィールドを参照するのが面倒なんですね
内部クラスはあまり推奨されないということですか?
881デフォルトの名無しさん:2014/06/19(木) 20:06:55.51 ID:6q/EJbCK
C#にはデリゲートがあるから内部クラスはあまり使わない
882デフォルトの名無しさん:2014/06/19(木) 20:30:37.59 ID:g4cuM2f2
面倒も何もインスタンスの参照を渡せば触り放題だろ?
883デフォルトの名無しさん:2014/06/19(木) 20:32:47.27 ID:YfUO/w/F
おさわり禁止なんですが
884デフォルトの名無しさん:2014/06/19(木) 20:39:30.43 ID:XZGrbc4m
>>880が言ってるのはJavaでobserverパターンで使うあれのことだと思うけど、
Javaやったことないと何のこと言ってるのか伝わらないよね。
885デフォルトの名無しさん:2014/06/19(木) 20:57:05.60 ID:2Twh0BZt
突然当たり前のこと言いだしてどうしたの
886デフォルトの名無しさん:2014/06/19(木) 21:05:11.48 ID:zlsMLAvy
>>884
> Javaでobserverパターンで使うあれのことだと思うけど、

なんだそれw

ひょっとしてリスナを登録するときに、
リスナやアダプタの派生をaddの引数のところでnewすることじゃないだろうな?
だとすると…まあいいやめんどい。
887デフォルトの名無しさん:2014/06/20(金) 09:45:39.73 ID:si35yOOj
ASP.NET MVC 3縛りの環境で使えるASP.NET Identityみたいな認証フレームワークありませんか?
888デフォルトの名無しさん:2014/06/20(金) 14:36:18.73 ID:F8klMZQn
C#とC++とC++/CLIを同時にやっていると、もう
頭がわけ分らん状態になります。皆さんどうですか?
889デフォルトの名無しさん:2014/06/20(金) 14:43:45.82 ID:MQX0k9eF
いや、別に……
890デフォルトの名無しさん:2014/06/20(金) 14:47:26.77 ID:13YA0ieC
自然にはっきり分かれてるのはIDEのおかげなんかなー
色分けされてるだけで今どれやってるか感覚でわかるな
891デフォルトの名無しさん:2014/06/20(金) 16:25:40.65 ID:jLBRqZRh
>>869
ちょこっとやってみたけど簡単には出来なくね?
892デフォルトの名無しさん:2014/06/20(金) 16:27:15.56 ID:LuSi6FRI
>>888
別にならなかったな
C++/CLIは面食らうことがたまにあったな
893デフォルトの名無しさん:2014/06/20(金) 17:44:02.86 ID:WBwPS+cs
つぎはCX
894デフォルトの名無しさん:2014/06/20(金) 23:34:49.99 ID:EtLrPewl
C#からSkypeの文字チャットのログって読める?
読み書きしたいけど、SKYPE4COM.DLLって生きてるのかな?
知ってるひといたら教えてください。
895デフォルトの名無しさん:2014/06/20(金) 23:42:51.37 ID:pz7WGIcL

しるかぼけ
896デフォルトの名無しさん:2014/06/20(金) 23:54:23.98 ID:2yqfsagV
skypeのAPI調べろよ
ちょっとまえに潰されたような気もするが、ログ読むぐらいのは残ってるのかな?
897デフォルトの名無しさん:2014/06/22(日) 05:36:51.84 ID:JfB/Ea9N
3.5→4と言う記事はググればたくさん出てくるのですが、4→3.5に関する情報は
ほとんど見あたりません。4用のIronRuby1.1.3を3.5で動くようにビルドしたいのですが
無謀ですかね?
898デフォルトの名無しさん:2014/06/22(日) 06:00:15.55 ID:zy4Jssca
ビルドできれば動くだろ
4の機能を使ってたらビルドできない

基本的にはそれだけのこと
あとは微妙な互換性の話
899デフォルトの名無しさん:2014/06/22(日) 08:46:02.33 ID:P/6Lf536
>>897
IronRubyは3.5用にビルドできるようになってた覚えがある
ソリューション構成で指定できたはず
WP7用のバイナリならそのまま3.5で使えるかも
(JITが無効になるはずなのでお勧めしないが)
900897:2014/06/22(日) 16:33:41.12 ID:/YtzeWqy
>>898-899
thx。目的は素のWin7とWin8.xで動くバイナリがほしいです
IronRuby1.1.3のWP7用のバイナリは4用で3.5では動かないようです
IronRuby1.1の3.5用は動くようですがRuby 1.8系なのと起動するたびネットに
出ていこうとして気持ちが悪いです
出来ればRuby 1.9系の実装である1.1.1以降を使いたいです

今までにやったこと
・VS2010EXをインストール
・IronRuby1.1.3のソースコードをダウンロード&解凍
・ソリューションを読み込み
 Solution Itemsが無いと怒るがそんなフォルダは入っていないので無視
・ソリューション構成が見つからない。構成マネージャ?構成マネージャを見ても
 バージョンに関するらしき設定項目は見あたらない
・プロジェクトのプロパティに対象のフレームワークという設定があったので
 すべて3.5にしてみるが一部のプロジェクトは勝手に4に戻ってしまう
 4に戻ってしまうプロジェクトは以下の3つ
 Microsoft.Scripting.Core
 Chiron
 Microsoft.Scripting.Silverlight
 Silverlightがらみの下二つはともかくCoreは動作に必須っぽいのでビルドしない
 わけにはいかないはず

VSの使用経験もC#の使用経験もない自分としてはどこから手を付けたらいいのか
見当がつきません・・・orz
901デフォルトの名無しさん:2014/06/22(日) 17:00:51.36 ID:m8IYICrt
ttp://www.k-brand.gr.jp/log/002210
というか1.1系はalphaらしいがいいのかね
902デフォルトの名無しさん:2014/06/22(日) 17:13:16.76 ID:ShN26fzj
Jythonで痛い目見てから、こういうVMへの移植って超懐疑的になった
結局保守するやついなくなるか、本家の更新速度についていけなくて消えるんだよね
903デフォルトの名無しさん:2014/06/22(日) 17:17:52.91 ID:ShN26fzj
本家というのはちょっと抽象的だった
VMの更新と、言語の更新それぞれについていけなくて消える
904897:2014/06/22(日) 18:31:48.44 ID:95RLu5vG
>>901
おぉ、thx。VC#2008EXでもビルド出来るのかな
いったんVC#2008EXを入れたのですがソリューションファイルが
読み込めなかったので消してしまいました。VC#2010EXを消して
VC#2008EXを入れ直すか・・・
905897:2014/06/22(日) 21:56:35.04 ID:95RLu5vG
VC#2008EXでビルドできました。ありがとうございました

>>901の記事に書いてあるエラーの回避はソリューションファイルを
編集してプロジェクトごと除外しました
906デフォルトの名無しさん:2014/06/22(日) 22:17:17.01 ID:Cvja/8tc
大した執念だな
俺もIronPythonはやったことあるけど、
.NET使うんなら総合的に見ればどう考えてもC#で作った方が早いよ
コレクション操作とかRubyと似通ったところも多くて(互いにパクりあってる)馴染みやすいよ
まあIronRubyで作る上ではどのみちC#触るのは避けられないだろうけど
907デフォルトの名無しさん:2014/06/23(月) 22:32:04.84 ID:hXnfAnJX
IpcChannelでプロセス間通信を行おうとしたんだけど、ハンドルがグングン上がってある程度のところでガクッと落ちてまたグングン上がるんだけど、、、そんなものなの?
ハンドルリークしているかいまいちわからない・・・
908デフォルトの名無しさん:2014/06/23(月) 22:38:22.86 ID:KA1AMTg4
CLR Profilerを使え
909デフォルトの名無しさん:2014/06/24(火) 14:39:06.87 ID:BxIYtEdB
>>908
ありがとうです!!早速使ってみます^-^v
910デフォルトの名無しさん:2014/06/25(水) 04:36:38.65 ID:Ji9U0alU
Cevio Creative Studioの外部連携に苦労しています。

http://guide2.project-cevio.com/interface/com
http://guide2.project-cevio.com/interface/dotnet

を参考にプログラムしました。C#だけサンプルプログラムがないので、
どうしたものやら。

http://ideone.com/Opj1Jy
911デフォルトの名無しさん:2014/06/25(水) 08:59:49.41 ID:0un0/TF8
>>910
ここでも聞いてるのかよ。マルチ氏ね
912デフォルトの名無しさん:2014/06/25(水) 13:43:31.14 ID:BFW7JELn
NET連携API仕様かいてるじゃん
動作確認しながらやればわかるんじゃないのか
913デフォルトの名無しさん:2014/06/25(水) 14:56:02.77 ID:NedFU3Wc
移動するときは移動元に一言書いたほうがいいよ

自分でここまでやったけどわからない、という自分がやった内容を書いてくれりゃ
レベルもわかるし対応策出しやすいんだが
914デフォルトの名無しさん:2014/06/25(水) 18:07:06.07 ID:Ji9U0alU
>>913
アドバイスありがとうございます。一言書いてきました。

自分がやった内容は、恥ずかしながら>>910の最後のリンクのソースです。
とりあえず、サンプルプログラムで発声はできたのですが、
次の段階として感情パラメータをいじって
発声させたいのです。その辺が複雑でさらによくわかっていません。
915デフォルトの名無しさん:2014/06/25(水) 18:19:58.36 ID:0un0/TF8
>>914
もう一度知恵遅れとokwaveで聞いて来りゃいいだろ。氏ね
916デフォルトの名無しさん:2014/06/25(水) 18:26:28.72 ID:NedFU3Wc
参照の追加でCeVIO.Talk.RemoteService.dllを追加するのはやったのか?
やったなら
using CeVIO.Talk.RemoteService;
しとけばいきなりTalkerクラス使えるんじゃね?
917デフォルトの名無しさん:2014/06/25(水) 18:38:47.92 ID:Ji9U0alU
>>916
TalkerクラスとSpeakingStateクラスを使えば発声はできるのですが、
感情関係のクラスの実装がいまひとつよくわかっていません。
918デフォルトの名無しさん:2014/06/26(木) 12:49:32.20 ID:oJe1PGDe
質問します

ネット上で見つけたイベントを発行するクラスのメソッドで

public event PropertyChangedEventHandler PropertyChanged;

protected virtual void RaisePropertyChanged(string propertyName)
{
var h = this.PropertyChanged;
if (h != null)
h(this, new PropertyChangedEventArgs(propertyName));
}

のように一時的にローカル変数hを使用してるのを見かけたんですが
このhはどういう目的で使われているのでしょうか?
919デフォルトの名無しさん:2014/06/26(木) 12:54:32.35 ID:WE9ctRXE
マルチスレッドで動かしてると
if (this.PropertyChanged != null) {
&nbsp; &nbsp; // このタイミングでthis.PropertyChangedがnullになる可能性がある
&nbsp; &nbsp; this.PropertyChanged();
}
920デフォルトの名無しさん:2014/06/26(木) 13:10:19.98 ID:TG83iENW
eventには初期化時に() => {}を突っ込んでおいて何を-=してもnullにならないようにしとくと便利
921デフォルトの名無しさん:2014/06/26(木) 13:11:59.17 ID:msTrDRe0
>>919
そうでなくて初期状態がPropertyChanged==nullだからじゃない?
使用者がPropertyChanged += delgate{};を実装して初めてPropertyChanged!=nullになる
922デフォルトの名無しさん:2014/06/26(木) 13:41:13.06 ID:WE9ctRXE
何が「そうでなくて」で何が「だから」なのか分からない
nullチェックしてるんだから初期状態がnullだろうが何だろうがシングルスレッドなら関係ないだろ?
923デフォルトの名無しさん:2014/06/26(木) 13:51:00.08 ID:a5DVBYeG
ワロタ
924デフォルトの名無しさん:2014/06/26(木) 13:57:27.27 ID:oJe1PGDe
>>919
最適化が関係あるのかも?とか漠然と悩んでたんですが
マルチスレッドによる変更に対応していたんですね
お答えいただいてありがとうございました
925デフォルトの名無しさん:2014/06/26(木) 14:09:51.93 ID:RziUTnTi
いや対応なんかしてないよw

ただPropertyChangedという長い名前(そうでもないと個人的には思うけど...)
が複数個所に現れるのを嫌っただけだろう。

ついでに言えば、コード書いた奴がキモヲタで一人で「Hなのはいけないと思(」
とかいって盛り上がってた可能性大。
926デフォルトの名無しさん:2014/06/26(木) 15:06:33.10 ID:a5DVBYeG
なんかよくわからんが、自己紹介してるようにしか見えんw
927デフォルトの名無しさん:2014/06/26(木) 19:16:36.58 ID:EPphEQd9
ローカル変数に入れてるのは何と無く以上の意味はないと思う
最適化にもまったく影響なし
nullチェックと呼び出しの二回だけなら名前が長くてもかまわないから、俺なら入れない
928デフォルトの名無しさん:2014/06/26(木) 19:24:56.21 ID:geX7SJn8
コードを書いた人物の気持ちを答えなさい
929デフォルトの名無しさん:2014/06/26(木) 19:41:25.21 ID:zSCl0MWa
>>925の6行目って何?
930デフォルトの名無しさん:2014/06/26(木) 19:48:25.64 ID:MXb/zj6q
>>929
「Hなのはいけないと思(」の部分のこと?
マジレスしておくと、HってのはHaskellのこと。略されている部分も
書くと「Haskellなのはいけないと思います。」になる。
C#とHaskellの戦争はあっちこっちで見ることができるから、興味がある
なら調べてみるといいよ。
931デフォルトの名無しさん:2014/06/26(木) 19:50:54.25 ID:zSCl0MWa
なるほどスラングだったのか
932918:2014/06/26(木) 20:02:29.90 ID:oJe1PGDe
マルチスレッド対応ではないという意見もあるようで困惑しております

>>919さんの、このタイミングでnullになる可能性があるというのは,なるほどと関心しました
仮にマルチスレッド環境下で,このnullになる可能性に対処するとしたらどうするんでしょうか?
みなさんがイベントでの同種の処理はどのように行っているのか教えていただきたいです
(そもそも対処して無いという意見も含めて)
933デフォルトの名無しさん:2014/06/26(木) 20:12:58.68 ID:P5riggf4
他のスレッドがnullにしてしまう仕様に違和感がある。
俺はそういうのが必要になったことがないから何もしてない。
934デフォルトの名無しさん:2014/06/26(木) 20:31:30.39 ID:bvs5CWHr
イベントはマルチスレッドが絡む場面が多いから
>>918一択しかないな
935デフォルトの名無しさん:2014/06/26(木) 20:40:24.69 ID:4RztB+ny
>イベントはマルチスレッドが絡む場面が多い

どんな糞設計だよ

そもそもeventにnullを設定できるのは自クラス内だろ
そんなeventのデリゲートを単純に実行しないし
lockしてDelegate.GetInvocationList経由かなんかするだろ多分。知らんけど。
936デフォルトの名無しさん:2014/06/26(木) 20:42:48.25 ID:EPphEQd9
ごめん、探したら俺が間違っていたらしい
http://qiita.com/karno/items/a4b2a744659a5b0a4df4

したに書いてある空のラムダ入れとくのがいいと思う

なんでローカル変数に入れるとぬるりが防げるの?だれかおしえて
937デフォルトの名無しさん:2014/06/26(木) 20:44:12.68 ID:EPphEQd9
>>935
-=で登録されたすべてのデリゲートが解除されるとnullになるっぽい
938デフォルトの名無しさん:2014/06/26(木) 20:45:24.71 ID:geX7SJn8
マジ初心者用ですねここ
939デフォルトの名無しさん:2014/06/26(木) 20:55:44.72 ID:UNxcKNdL
そういう場合はeventのadd,removeも含めて自前で実装してLockで囲む。
940デフォルトの名無しさん:2014/06/26(木) 20:57:56.88 ID:P5riggf4
>>937
なるっぽいって・・・そりゃそうだろう。

>>936で示されてるやり方は、単にエラーを出さないだけの逃げの手段でしょ。
マルチスレッドで動かすのにむやみやたらに+=や-=しちゃうのはどうかと思うが。
941デフォルトの名無しさん:2014/06/26(木) 21:06:17.68 ID:OLrM3hsq
>>940
なんか話が迷走してるが、だから>>918のコードはスレッドセーフじゃないの。

ついでに、イベントにnullオブジェクト(空のラムダ)を入れておくのは
C#では常識と言っていいイディオムだと思うけど。
942デフォルトの名無しさん:2014/06/26(木) 21:10:44.30 ID:EPphEQd9
>>939
>>940
なんで?
+=、-=は不適切にadd/remove変えない限りスレッドセーフでしょ?
943デフォルトの名無しさん:2014/06/26(木) 21:13:56.25 ID:P5riggf4
>>941
>>918がスレッドセーフだと思ってないし、
スレッドセーフにしないといけない仕様はどうかと思うし、
空のラムダを入れるのが常識だとは思っていないな。

>>942
むやみやたらに=不適切に使用するから、
スレッドセーフを意識しないといけなくなるんでしょう?
944デフォルトの名無しさん:2014/06/26(木) 21:32:17.90 ID:tNVkuIVH
CLRのメモリモデルだと>>918でスレッドセーフになるらしいよ
スレッドセーフにするためにいったんローカル変数に入れるのはMS自身がかなり多用してるテクニック
945デフォルトの名無しさん:2014/06/26(木) 21:51:33.29 ID:EPphEQd9
スレッドセーフを意識したい場合はあるでしょ
意識しなくていい場合もあるから、そのときはそこまでの厳密性は不要

でも、コードをわかりやすくするという意味でも空ラムダは結構使われている
946デフォルトの名無しさん:2014/06/26(木) 22:16:12.35 ID:R0dKBSXz
PropertyChangedってクライアントのデータバインドが主用途だけど、WPFもFormsもクロススレッドアクセス許してないから
イベントディスパッチの直前でスレッドセーフがどうとか気にするわけがない
947デフォルトの名無しさん:2014/06/26(木) 22:48:44.50 ID:2LKgbWsX
948デフォルトの名無しさん:2014/06/26(木) 23:34:28.98 ID:QG03FXmH
>>946
WPFは別スレッドでバインドソースのプロパティを変更可能なんだよなぁ
949デフォルトの名無しさん:2014/06/27(金) 08:53:00.15 ID:SZ15x716
サンプルで見かけてなんでだろうとか思ってたけど
そういう理由があったのか
950デフォルトの名無しさん:2014/06/27(金) 09:25:19.97 ID:sYtO+Y40
Delegateはstringなんかと同じimmutableだと気付けば理解は簡単
951918:2014/06/27(金) 11:36:23.50 ID:IxCTANL1
情報とアイデア教えていただいた皆さんありがとうございました
イベント周りやスレッドセーフについての理解がまだまだなので精進します
952デフォルトの名無しさん:2014/06/27(金) 15:44:52.53 ID:SQDdT533
自分では単に短かく書きたくてなんとなくやってたけど
immutableだから中身が変わらないのか
なるほどなあ
953デフォルトの名無しさん:2014/07/01(火) 22:24:57.17 ID:1hbqUz7H
自動実装プロパティーとパブリック変数フィールド変数とは
どう使い分けるのがマナーですか?
954デフォルトの名無しさん:2014/07/01(火) 22:43:26.00 ID:32tQ0agk
日本語でどうぞ。
955デフォルトの名無しさん:2014/07/01(火) 22:59:40.21 ID:79Rw1ztk
フィールドをpublicにすることはない
あえてするとすれば、P/Invoke用のの構造体ぐらい
956デフォルトの名無しさん:2014/07/02(水) 00:48:48.65 ID:TjuZskuu
書き捨てやめんどくさい場合はパブリック
957デフォルトの名無しさん:2014/07/02(水) 06:34:02.73 ID:SoSt0gw2
パロパティって遅そう。
958デフォルトの名無しさん:2014/07/02(水) 07:41:04.20 ID:fW+tY94n
const は使い方によっては public にする
959デフォルトの名無しさん:2014/07/02(水) 07:48:15.53 ID:SXoafXLh
readonly property だな
960デフォルトの名無しさん:2014/07/02(水) 14:30:33.61 ID:5hZjGsLY
自動実装プロバティーは初期化出来ないのを何とかしてほしい
961デフォルトの名無しさん:2014/07/02(水) 14:43:29.05 ID:+WxMuPSX
>>960
次で何とかなるぞ >>665
962デフォルトの名無しさん:2014/07/02(水) 22:46:43.15 ID:5ZOm/R4V
相談室で聞いたら、ここに行けって言われたので来ました。

C#って何でプロパティとフィールドを二種類用意してるんですか?
フィールドいらなくないですか?
963デフォルトの名無しさん:2014/07/02(水) 22:52:01.90 ID:7FYVqxhN
食べたくないなら食べなくていい
もう片付けるから
964デフォルトの名無しさん:2014/07/02(水) 22:52:33.45 ID:sFQ5DsId
プロパティは外部にデータを公開する
フィールドはデータを保持する
用途がちがう

自動実装プロパティは裏でフィールドを自動作成してるにすぎない
965デフォルトの名無しさん:2014/07/02(水) 22:58:08.95 ID:W9lHRPWK
フィールドは変数
プロパティは関数
同じようで物が違う
966デフォルトの名無しさん:2014/07/02(水) 23:49:07.09 ID:5ZOm/R4V
ありがとうございます。

>>964,965
それって二種類用意してあるから、使い分けてるだけなのでは?
最初からプロパティ一種類しか用意してなければ、普通にそれで同じことができると思うのですが…
967デフォルトの名無しさん:2014/07/02(水) 23:52:54.18 ID:OyCp77QP
refで渡せないとか色々あるよ?
968デフォルトの名無しさん:2014/07/03(木) 00:17:44.71 ID:sKt0Rrir
バインドってフィールドじゃねできないよね
969デフォルトの名無しさん:2014/07/03(木) 00:47:36.29 ID:qD5gLZzF
>>966
フィールドがないとプロパティの値を保持できない。
970デフォルトの名無しさん:2014/07/03(木) 01:04:46.49 ID:no1Gp9Hd
>>966
分けた方がわかりやすいから
プロパティはJavaやC++のgetter/setterを置き換えるものだから、それと全く変えるというのはわかりにくい
そして、P/Invokeやシリアライズ、コピー関連ではフィールドとプロパティでは処理が変わってくる。
しかも、プロパティには継承もできたりするし、フィールドの役割をすべてプロパティにやらせると言語仕様がだいぶ複雑になる
971デフォルトの名無しさん:2014/07/03(木) 02:04:36.31 ID:VuFX991T
インターフェースと仮想関数のオーバーライドって呼び出しの時の速度は変わらんの?
972デフォルトの名無しさん:2014/07/03(木) 08:04:41.87 ID:2Ze3kKMg
そんなにプロパティが好きなら値を直接持つプロパティのことをフィールドと呼んでいると考えればいいだろ
JavaScriptなら実際そうだぞ
973デフォルトの名無しさん:2014/07/03(木) 08:42:02.13 ID:qzKT0Wge
プロパティは読み書きする時にイベント出せる
974デフォルトの名無しさん:2014/07/03(木) 09:07:43.80 ID:moTdZY4y
>>973
モードレスなGUIクラスを作るためには必須の機能だな。
975デフォルトの名無しさん:2014/07/03(木) 21:56:19.06 ID:2Ze3kKMg
>>974
それやってるとカオスになる
モデル駆動にするべき
976デフォルトの名無しさん:2014/07/03(木) 22:34:12.10 ID:C7/aqWr7
どこが笑いどころ?
977デフォルトの名無しさん:2014/07/05(土) 00:24:18.36 ID:nlwWL+dx
自動実装プロパティとフィールドじゃ内実ほぼ変わらないわけだし
せっかくプライマリコンストラクタが出来てもまだ冗長な代入をしなきゃならないプロパティなんて
C#6.0を期に捨ててしまうことだな

まあ「ソースレベル以上の互換性が必要で」「プロパティの実装を書き換えても再コンパイルの必要がなく動かせる必要がある」
みたいなものすごく特殊な人はプロパティじゃなきゃいけないんだろうけど
978デフォルトの名無しさん:2014/07/05(土) 00:30:07.33 ID:+YgxOGu9
何言ってるのか意味がわからん
979デフォルトの名無しさん:2014/07/05(土) 00:31:19.72 ID:DfPTbKDM
触れちゃいけません
980デフォルトの名無しさん:2014/07/05(土) 00:45:52.89 ID:JV7kEfkC
プロパティでやってるのと同等の処理をpublicフィールドで実現している場合、
プロパティの実装変更に相当する修正は呼び出し元を変えるしかないんだから再コンパイルもクソも無い
頭大丈夫か
981デフォルトの名無しさん:2014/07/05(土) 00:48:16.38 ID:nlwWL+dx
自動実装プロパティとフィールドはソースレベルではほとんど互換であり
構造体の場合はフィールドにしたほうが効率的
また記述も少なくて済む
これは言語設計者からの出来るだけフィールドを使うべきというメッセージであるが
いまだ理解されていない
982デフォルトの名無しさん:2014/07/05(土) 00:50:04.99 ID:nlwWL+dx
>>980
何を言ってるんだ一体
呼び出し元を再コンパイルするに決まってるだろう
983デフォルトの名無しさん:2014/07/05(土) 00:52:17.12 ID:6PKoBQqR
フィールドの型が構造体の場合、プロパティに変えるとだいたい動かなくなるぞ
細かい話だとrefやリフレクションもアウト
984デフォルトの名無しさん:2014/07/05(土) 00:53:41.58 ID:lG7Vks4t
バインディングもプロパティ前提じゃないっけ?
985デフォルトの名無しさん:2014/07/05(土) 01:00:34.32 ID:+YgxOGu9
>>981
普通のプログラマが受けとるのはむしろ正反対のメッセージだと思うけどねw
986デフォルトの名無しさん:2014/07/05(土) 01:03:31.66 ID:6PKoBQqR
>>981を見るに、構造体フィールドでa.b.c=1とかやっちゃってるんだろうな
フィールドをプロパティに変更したとき互換性が失われる一番多いパターンなんだよねこれ
987デフォルトの名無しさん:2014/07/05(土) 01:06:39.65 ID:DfPTbKDM
あああ泥沼
988デフォルトの名無しさん:2014/07/05(土) 05:07:19.93 ID:Ekbkp0Kb
989デフォルトの名無しさん:2014/07/05(土) 06:27:49.04 ID:kizbiGi1
あゝ野麦峠
990デフォルトの名無しさん:2014/07/05(土) 11:03:12.04 ID:1XB+/JRR
プロバティーといえば、依存関係プロバティーはもうちょっとナントカならなかったものだろうか
991デフォルトの名無しさん:2014/07/05(土) 11:31:56.75 ID:8MUV06UU
以前なんとかしたいなーと思って自前フレームワークを考えてみたが
あれこれ考えてみると結局依存関係プロパティと同じ構成になるという結論になった
992デフォルトの名無しさん
識別子が無駄に長くてウザいだけで構成はスッキリしてる