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

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

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

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

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

■関連スレ
C#, C♯, C#相談室 Part64
http://hibari.2ch.net/test/read.cgi/tech/1294734221/
VB.NET質問スレ(Part35)
http://hibari.2ch.net/test/read.cgi/tech/1284423653/
くだすれC++/CLI(初心者用)part2
http://pc12.2ch.net/test/read.cgi/tech/1268613679/

■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。

直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php
2デフォルトの名無しさん:2011/01/13(木) 21:48:44
前スレ>>998
GCHandleType.PinnedでAllocしてるならGCHandle.AddrOfPinnedObjectとかでポインタ取れるから
Marshal.StructureToPtrなりなんなり
3デフォルトの名無しさん:2011/01/13(木) 22:01:10
SrringBilderのデメリットってなに?
sqlを書く時はStringよりStringBilderだよね
4デフォルトの名無しさん:2011/01/13(木) 22:24:18
綴りが覚えにくいことじゃねえかな

次にイミュータブルでないこと
まぁでもたぶん君には関係ない
5デフォルトの名無しさん:2011/01/13(木) 22:40:50
>>3
SQLはStringに決まってんだろ。
where条件が可変個で動的にSQL文作るならStringBuilderだが。
6デフォルトの名無しさん:2011/01/13(木) 23:36:11
MikuMikuDanceはC#で作れますか?
あんなすげぇの作れたらいいなぁ
7デフォルトの名無しさん:2011/01/13(木) 23:37:57
作れます
8デフォルトの名無しさん:2011/01/13(木) 23:40:31
あれってニコニコ連中が騒いでるけど何ができてどうすごいのん?
今一歩理解に苦しむ
9デフォルトの名無しさん:2011/01/13(木) 23:48:06
モーションがつけれる
Kinect 対応した
無料

作れる人は作れるかな。
10デフォルトの名無しさん:2011/01/13(木) 23:50:59
Shadeとかのデータ呼んで動かすかんじかな
Kinectで自分の動作で操作でいろいろできたりARしたりか
頑張ってるなぁ
11デフォルトの名無しさん:2011/01/13(木) 23:52:51
あの手のデバイス自体は10年以上前からあるけど、
それが1万円台の価格で800万台以上売られたって部分が革命的かもしれない。
(※ただし日本での売り上げは800万台中4万台)
12デフォルトの名無しさん:2011/01/13(木) 23:56:28
実際問題マウスの操作で十分だけど
ちょっと作って遊ぶにはいい感じかもね

あとは価格と手ごろさから介護とか医療のその辺に応用できたりしそうな感じ
手で触りたくないけどマニュアルページめくったりとか
13デフォルトの名無しさん:2011/01/13(木) 23:57:52
エロ画像見るときにマウス触るのが面倒。
Kinect は使える
14デフォルトの名無しさん:2011/01/14(金) 00:06:38
PictureBoxに画像を表示する際にアス比を固定にしてストレッチする場合はどうすればいいんだろう・・・
15デフォルトの名無しさん:2011/01/14(金) 00:31:27
WebRequest/WebResponseを使っているのですが、非同期通信を使うのと
同期通信を使ったルーチンをスレッド化するのでは、どちらがいいのでしょうか?

いまいちよくわかってないのですが、非同期処理と、同期処理+別スレッドの
それぞれ利点・欠点、違いを教えてください。
16デフォルトの名無しさん:2011/01/14(金) 00:38:38
>>15
非同期の方がいいよ。
.NET Framework の内部でいい具合に I/O 待ちスレッド制御してくれてるから。

ただ、書くのが楽なのは、現状、自前スレッドで同期処理。
まあ、それも、C# 5.0 で Task 非同期が入れば解消される問題。
17デフォルトの名無しさん:2011/01/14(金) 08:15:10
どこにバグがあるか教えろ
http://ideone.com/Jbe9t
18デフォルトの名無しさん:2011/01/14(金) 08:59:54
>>17
お前自身が地雷
19デフォルトの名無しさん:2011/01/14(金) 09:45:53
前スレ>>1000のものです!

countのほうは
例外を出さずに無事実行できました!
ありがとうございました☆

DBNull.Valueなんですが、
INSERT INTO Id_Name (id,name)VALUES(DBNull.Value.ToString(),"A")
とやってみたのですが、例外が出ません><
idはPremary KEY + NOT NULLです。
書き方が間違ってますか??

Premary KEYの場合ってNOT NULL必要ない??
20デフォルトの名無しさん:2011/01/14(金) 09:58:57
>>19
あ、パラメータでセットしてなかったんだね
ごめん俺が嘘言ってた
21デフォルトの名無しさん:2011/01/14(金) 10:02:31
>>19
sqlite はPKでもNULL許可で、
しかもNULLのデータは重複登録できるので一意に管理したいならNOT NULLは必須じゃないかと思われます。
22デフォルトの名無しさん:2011/01/14(金) 10:43:35
>>20さん
パラメータでセットって
command.Parameters.Add(new SQLiteParameter("@id", DBNull.Value.ToString()"));
ってことですか???

>>21さん
ということはSQLiteはNOT NULL無視してるってことですか?
NULL許可したくないんですけど
他にやり方ってありますか?
23デフォルトの名無しさん:2011/01/14(金) 10:58:10
>>16
なるほど。
まだC#2.0で止まっている世界にいるので、簡潔さ重視でスレッド+同期を使おうと思います。
24デフォルトの名無しさん:2011/01/14(金) 12:48:31
質問です。dll内にIconを登録してメインのexe(プロジェクト)から呼び出して使用するには
どのようにすればよろしいでしょうか?
25デフォルトの名無しさん:2011/01/14(金) 12:55:40
>sqlite
not null制約自体は存在するだろ
単にprimary key制約には含まれないんだと割りきればええやんけ
26デフォルトの名無しさん:2011/01/14(金) 13:07:35
>>25さん
command.CommandText = "create table id_Name(id char NOT NULL primary Key, name char)";
ってやってるんですけど
それとは違いますか?
27デフォルトの名無しさん:2011/01/14(金) 14:13:47
>>17
デバッガの使い方はわかるか?
変数の値見ながら少しずつ進めれば、どこがおかしいかわかるだろう
28デフォルトの名無しさん:2011/01/14(金) 14:26:07
>>26です!

無事解決しました!

実は、ListViewで表示しているものを
DBに書き込んでいたのですが、
DBに書き込む前にListViewのアイテムで
NULL判定をしたところできました。

ご迷惑おかけしました><
ありがとうございました☆
29デフォルトの名無しさん:2011/01/14(金) 14:26:35
普通
>command.Parameters.Add(new SQLiteParameter("@id", DBNull.Value.ToString()"));
ではなく
command.Parameters.Add(new SQLiteParameter("@id", DBNull.Value")); 
じゃないでしょうか?
30デフォルトの名無しさん:2011/01/14(金) 18:10:04
2chからhtmlを取得する方法を教えろ
31デフォルトの名無しさん:2011/01/14(金) 18:32:54
32777:2011/01/14(金) 19:56:54
↓が遅くて泣きそうです。
  C#だけ使って、もっと速くする方法を教えてください
int[] pixel = img.GetPixel();
Bitmap bmp = new Bitmap(img.Width/*=2560*/, img.Height/*=2560*/, PixelFormat.Format32bppArgb);
BitmapData bd = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, bmp.PixelFormat);
fixed (int* p1 = pixel) {
int* p = (int*)bd.Scan0;
int nResidual = bd.Stride - bmp.Width * 4;
int* d1 = (int*)p1;
int x, y, w = bmp.Width, h = bmp.Height;
int min = 0, max = 512;
int colorMax = colorTable.Length - 1;
int val = 0;
for (y = 0; y < h; y++) {
for (x = 0; x < w; x++) {
val = (int)*d1++;
if (val < min) {
*p++ = colorTable[0];
}
else if (max < val) {
*p++ = colorTable[colorMax];
}
else {
*p++ = colorTable[val];
}
}
p += nResidual;
}
}
33デフォルトの名無しさん:2011/01/14(金) 20:00:01
何をやとうろしてるの?
*pとかってできたんだw
34デフォルトの名無しさん:2011/01/14(金) 20:01:34
並列化したら
その手のだったらほぼコア数倍になるよ
35デフォルトの名無しさん:2011/01/14(金) 20:04:51
>>33
colorTable配列になってますが、元々は毎回計算してました。
36デフォルトの名無しさん:2011/01/14(金) 20:09:52
>>34
シングルコアあたりの性能を僅かでもいいので上げたいのです。
37デフォルトの名無しさん:2011/01/14(金) 20:10:54
512段階?変換してるのか?

2560x2560を一本の配列としてみるのであれば途中でぶった切って
>>34のいうようにスレッドで処理させてあとで結果を元に戻せばいいだけちゃう?
38デフォルトの名無しさん:2011/01/14(金) 20:16:51
>>37
変換してます。
512段階ではなく、実際は可変です。

あと、このルーチン自体が物凄い勢いでループします。
スレッドにするとスレッド生成・破棄のコストが大きいかなと考えていたりします。
あと、端末にはPentium4なんてのが生き残っていたり。
39デフォルトの名無しさん:2011/01/14(金) 20:19:42
>>38
解像度に関係なく画像のピクセルデータを1次元配列でみてるんだよね?
なんで二重ループなの?
最初に掛け算で縦横かけて総ピクセル数でループにした方が・・・
細かい話だけど
40デフォルトの名無しさん:2011/01/14(金) 20:25:53
それより範囲の比較の意味が分からん
ARGBまとめて数値として比較しても意味なくね?
41デフォルトの名無しさん:2011/01/14(金) 20:26:05
>>39
↓こいつが居るのです
int nResidual = bd.Stride - bmp.Width * 4;
42デフォルトの名無しさん:2011/01/14(金) 20:28:05
>>40
ARGBではなく独自の32bit値です。
それに色づけをしてグラフ?っぽく見せるものです。
43デフォルトの名無しさん:2011/01/14(金) 20:28:05
>>41
それループの外じゃないの?
44デフォルトの名無しさん:2011/01/14(金) 20:28:59
>>43
ループの中に居ます
p += nResidual;
45デフォルトの名無しさん:2011/01/14(金) 20:31:48
うまくやればCLUTあたりを使えそうかなあとも思ったけど無理かなあ・・・
46デフォルトの名無しさん:2011/01/14(金) 20:51:05
ターゲットのCPUがなんか知らんが、for内のif分が致命的に遅いはず。
条件分岐ではなく、論理演算のみでやってみ。
47デフォルトの名無しさん:2011/01/14(金) 20:51:45
飽和加算とか使えるんじゃない
48デフォルトの名無しさん:2011/01/14(金) 20:52:07
>>41
そのnResidualが常に0なら
その計算いらないしループを一つにできるのね
そうしたところでたいして速くはならなそうだけど
49デフォルトの名無しさん:2011/01/14(金) 20:56:48
CLUTでなんとかできないかと調べてたらこんなサイトがあった
http://www.k4.dion.ne.jp/~anis7742/codevault/00180.html

あとはマーシャルクラスだっけ?
あの辺使うしかないかもね
50デフォルトの名無しさん:2011/01/14(金) 20:57:40
ネスト部分が見難かったので勝手にインデントしてみる

for (y = 0; y < h; y++)
{
  for (x = 0; x < w; x++)
  {
    val = (int)*d1++;
    if (val < min)
    {
      *p++ = colorTable[0];
    }
    else if (max < val)
    {
      *p++ = colorTable[colorMax];
    }
    else
    {
      *p++ = colorTable[val];
    }
  }
  p += nResidual;
}
51デフォルトの名無しさん:2011/01/14(金) 20:58:27
>>49
それ既にやってるだろ
52デフォルトの名無しさん:2011/01/14(金) 21:03:00
こういうのが微妙に遅いようです。
もしかしてC#ってポインタ遅い?
val = (int)*d1++;
53デフォルトの名無しさん:2011/01/14(金) 21:07:21
ああ
C++/CLIなんてものもあったなw
54デフォルトの名無しさん:2011/01/14(金) 21:08:44
>>52
ググったらこんなの有ったが
ttp://sgry.jp/pgarticles/cs_ptr_bench.html
あくまで個人サイトなので、
自分でパフォーマンス検証用のコード書いてみた方が良いと思うよ
55デフォルトの名無しさん:2011/01/14(金) 21:17:45
IL確認しないとなんとも
56デフォルトの名無しさん:2011/01/14(金) 22:00:49
>>54
うーん、まったく逆の結果に…
57デフォルトの名無しさん:2011/01/15(土) 04:31:40
仮にネイティブにしたとしてもPen4で2560x2560の画像を物凄い勢い?で処理するのは無理じゃないか。
いっそCPUに処理させるという発想を捨てるのはどうだろう。

WPFにしてダブルバッファリングしたWriteableBitmapに監視スレッドから書き込んで(int[]に直接書ける)
出力時にシェーダで加工するのがマネージドコードでは最速だと思う。(ColorTableには1D/2Dテクスチャを使う)
さぁ、君もGPUの力を体感するんだ!

"C#だけ"じゃなくて、入門レベルのHLSLもちょっぴり使うけどね。
端末として生き残っているPen4 PCでShaderModel2.0が使えるのか。それだけが問題だ。(Intel GMA 900/2004年〜, GeForce FX/2002年〜)
58伊藤:2011/01/15(土) 11:20:23
C# にて Windows Form アプリケーションを作成しています。
PrintPreviewControlを配置しているのですが、プレビューが画面に入りきらずにスクロールバーが表示されている状態です。
ここで、マウスホイールで上下にスクロールできるようにしたいのですが、
方法が分かりません。

ご存知の方、教えていただけないでしょうか。

よろしくお願いいたします。
59デフォルトの名無しさん:2011/01/15(土) 11:27:33
スクロールバー表示してるコントロールにフォーカス当てる
コントロールが対応してればホイールでスクロールできる

もしくはMouseWheelイベント拾ってスクロール位置を移動させる
60伊藤:2011/01/15(土) 11:56:45
>>59さん
回答くださりありがとうございます。

「スクロール位置を移動させる」には、どのようにすればよいのでしょうか。
印刷する帳票はA4縦の単票なのですが、プレビュー上は上部しか表示されていないため、
ホイールで同ページ内のプレビューの下部へ移動したいと思っています。

お手数ですがよろしくお願いします。
61伊藤:2011/01/15(土) 12:03:55
>>59さん
たびたびすみません。

MouseEnterイベントにFocusメソッドを当ててみましたが、
Focusはされているようですが、PrintPreviewControl のスクロールはマウスホイールでできませんでした。

どのようにすればよいのでしょうか…。
62デフォルトの名無しさん:2011/01/15(土) 12:22:07
MouseWheelイベント拾ってUser32のScrollWindowExを呼べばいい
63デフォルトの名無しさん:2011/01/15(土) 12:25:50
>>61
http://www.google.co.jp/search?hl=ja&q=printpreviewcontrol+%E3%82%B9%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%AB

検索結果の一番上のページを隅から隅まで一字一句見逃さずに読め
64デフォルトの名無しさん:2011/01/15(土) 13:30:37
>>61
一応動くものを書いた
http://ideone.com/ZjL65

でも他にやりようがあると思うんだよな…
65伊藤:2011/01/15(土) 14:03:26
皆様 ありがとうございます。
同一ページ内のプレビュースクロールができるかどうかが、気になっていました。
いただいたサイト、コーディングを参考に頑張ります。
66デフォルトの名無しさん:2011/01/15(土) 14:57:04
こういうかゆい所に手が届かないのが.NET
67デフォルトの名無しさん:2011/01/15(土) 15:44:20
型通りのものを作っておけばいいんだよ。
68デフォルトの名無しさん:2011/01/15(土) 15:52:27
ある程度高度なプログラム組もうとしたらP/InvokeとかC++/CLIとか必須だもんな
69デフォルトの名無しさん:2011/01/15(土) 16:12:02
P/Invokeできるのが.NETの売りだしね。
70デフォルトの名無しさん:2011/01/15(土) 16:24:56
P/Invokeの問題じゃないと思うけど
WinFormsでデザインが統一されてないのが根本だろ
スクロールバー出すならとりあえず標準の反応するようにしろよバカ
71デフォルトの名無しさん:2011/01/15(土) 16:25:05
C++/CLIって.NETを超えた事ができるの?
今まで.NETに縛られた言語に過ぎないと勘違いしてたぜ
72デフォルトの名無しさん:2011/01/15(土) 16:27:03
C++/CLIはコンパイラスイッチで縛り具合を変えられる
73デフォルトの名無しさん:2011/01/15(土) 16:40:07
皆様、おしえてください。

WebBrowserコントロールで、以下の処理を実装したいのですが、可能ですか?
・exeやzip等のファイル(通常、ダウンロードダイアログが表示されるようなやつ)
 のリンク等をクリックしてダウンロードが始まることを検出して、
・WebBrower標準のダウンロードダイアログを表示させず独自に実装した
 ダウンロード処理を行わせる
・ダウンロードして保存したファイルのパスを取得する

可能でしたら、処理方法を教えてください。
ヒントだけでも結構ですのでよろしくお願いします。
74デフォルトの名無しさん:2011/01/15(土) 16:50:25
リンクをクリックしたらNavigatingイベントが発生するから
そこでe.Cancel = true;で標準の処理はキャンセルして
自前の方法でダウンロード
75デフォルトの名無しさん:2011/01/15(土) 16:54:50
>>70
ウィンドウスタイルで設定できるスクロールバーはいにしえの遺物なのでなんとも。
7673:2011/01/15(土) 17:18:31
>>74
ありがとうございます。

ただ、ご教示いただいた方法では、
リンク元ページの読み込み時にもNavigatingイベントが発生し、
リンクをクリックしたNavigatingなのか否かを判別できません。

判別できる方法はないでしょうか?

※リンク先の拡張子が判れば拡張子で判別することもできるかと思いますが、
 リンク先が /?name=hoge のようになっていてアクセスしないと
 どんなファイルなのかわからないものの判別方法を知りたい次第なのです
77デフォルトの名無しさん:2011/01/15(土) 19:10:37
そういうのはサイトがわかると対策をかんがえやすいんだけどね
78デフォルトの名無しさん:2011/01/15(土) 19:54:08
オブジェクト指向ですっきりしたコードと、
ごちゃごちゃしてるけど何か早いコードって
どっちがいいの?
79デフォルトの名無しさん:2011/01/15(土) 19:54:14
URLを正規表現で処理するのが基本線だと思うけど、
完璧に対応したければリクエスト投げて、レスポンスヘッダーのMIMEタイプ見るしかないんじゃない?
80デフォルトの名無しさん:2011/01/15(土) 19:56:09
自分でHTTP HEAD投げてcontent-typeを一度取得するのが
スマートで、汎用的で、わかりやすいだろ
81デフォルトの名無しさん:2011/01/15(土) 19:57:29
>>78
フォーミュラーカーで獣道を走るか?
トラクターがサーキット走ってるか?お前の世界では
82デフォルトの名無しさん:2011/01/15(土) 19:59:56
適材適所って何年生で習う熟語?
83デフォルトの名無しさん:2011/01/15(土) 20:03:22
>>71
P/Invoke じゃなくて、1つのアセンブリ中にネイティブと .NET 混在させれる唯一の言語よ。
8473:2011/01/15(土) 21:03:07
>>77
>そういうのはサイトがわかると対策をかんがえやすいんだけどね

たとえばFirefoxのダウンロードページとかです(一例
 http://mozilla.jp/firefox/download/
  の「ここをクリック」のリンク先
  http://download.mozilla.org/?product=firefox-3.6.13&os=win&lang=ja

>>79, 80
どうもです。

>>ALL
Firefoxのダウンロードページのような場合だと
たとえば具体的に皆さんだとどのような処理を書きますか?

85デフォルトの名無しさん:2011/01/15(土) 21:19:26
C#でプログラムの練習をしているレベルの者ですが
常識かもしれないんですけど…質問させてください

「〜は定義にありません」って表示されるやつは打ち込んでも意味がないんですか?

下らない質問すみません…
86デフォルトの名無しさん:2011/01/15(土) 21:20:56
だからNavigatingでHTTP HEAD打ってZIPならキャンセルして落とせば良いって言ってんじゃん
ただFireFoxのサイトは新しくウィンドウ開いてそこでZIPのリソースにアクセスしているので

http://vsug.jp/tabid/63/forumid/45/threadid/9273/scope/posts/Default.aspx

の辺を見てWebBrowserを拡張しないといけません
無理なら寝ろ
87デフォルトの名無しさん:2011/01/15(土) 21:22:53
>>85
識別子(変数とか関数とかな)の名前間違ってるだけだと思うぞ
大文字小文字とか

でなければVB上がりでSharedをインスタンスから呼ぼうとしてるとか?
88デフォルトの名無しさん:2011/01/15(土) 21:23:51
>>84
WebBrowserのNavigatingイベントでイベントを拾って
e.Urlのアドレスに別途アクセスしてそのアドレスでアクセスする場合に
どういうデータを送ってくれるのかを調べるしかないかもね・・・
htmlならページ遷移なのでNavigatキャンセルしなくてもいいし
exeやzipだとダウンロードになるのでNavigatキャンセルしてダウンロード処理を始めればいいし

WebRequestとかで情報調べれたっけ?

89デフォルトの名無しさん:2011/01/15(土) 21:30:48
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(@"http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fnkf%2F48945%2Fnkf-2.1.1.tar.gz");
req.Method = "HEAD";

HttpWebResponse res = (HttpWebResponse)req.GetResponse();
Console.WriteLine(res.ContentType);

>application/x-gzip

そんな難しいもんでもあるめえ
9088:2011/01/15(土) 21:36:44
>>89のコードを入れさせてもらった
http://ideone.com/Hgx0f

この辺はhtmlヘッダーを勉強してくれ
91デフォルトの名無しさん:2011/01/15(土) 21:39:07
Closeしろよ行儀の悪い
9285:2011/01/15(土) 21:45:30
>>87
確認してみましたが、打ち間違いはありませんでした

一回やり直してみます
返答ありがとうございました
93デフォルトの名無しさん:2011/01/15(土) 21:46:00
>>91
すまねえ
94デフォルトの名無しさん:2011/01/15(土) 22:35:06
http://www.google.com/a/b/c/d/e/....
のようなURLを正規表現でマッチしてa,b,c,d,e...をそれぞれ取り出すにはどうすればいいですか?
95デフォルトの名無しさん:2011/01/15(土) 22:45:43
正規表現じゃないとだめ?
Uri.Segmentsとか
96デフォルトの名無しさん:2011/01/15(土) 22:47:30
「〜\/(?<a>[^\/]+)\/〜」って感じで「(?<>〜)」を付けて、Regex.Match→match.Groups["a"]で行けた気がする
97デフォルトの名無しさん:2011/01/15(土) 22:50:12
s?http://www.google.com/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+
これでURLを抽出して分解した方が簡単かな?

.netの正規表現はperl5互換なので本当は正規表現スレでperl5互換でどう書けば
いいか聞くほうがいいのかもね
98デフォルトの名無しさん:2011/01/15(土) 23:06:56
これでとりあえずいけるな

http://ideone.com/SD2P4
99デフォルトの名無しさん:2011/01/16(日) 02:04:53
>>92
コードを晒せばいいと思う。
多分以下のいずれかやっているのだろう?

・Windows の Form (ウィンドウ) を出すようなプログラム作っている
or
・自分でクラスを作る練習

多分 static 関連だろうと思うんだ。
変数・メソッドの宣言の所に static って入れたらエラーが出ないのでは?
10073:2011/01/16(日) 02:43:36
>>86,88,89,90
ご丁寧な回答感謝です。
勉強になりました。

とりあえず標準のダウンロードダイアログを抑制して
実体のURL取得までできましたので、
このURLから次は実際のダウンロード処理部分を書いていきます。

自分でも調べながらやりますが、
親切な方、ヒントだけでもいただけるとうれしいです。
101デフォルトの名無しさん:2011/01/16(日) 02:54:44
WebResponse.GetResponseStream()でNetwrokStream取得してStreamWriterで書き出す
NetworkStream→BinaryReader→バッファ→BinaryWriter→FileStream
って感じに
別にバッファ経由する必要ないけどキャンセルや進捗状況報告できるので普通はバッファ経由させる
102デフォルトの名無しさん:2011/01/16(日) 03:18:16
>>100
ダウンロード経過を表示したりしながらだったらこの辺を参考にすればいいよ
http://dobon.net/vb/dotnet/internet/downloadfile.html
103デフォルトの名無しさん:2011/01/16(日) 03:44:44
>>100
なんとかいい感じで絶対アドレスがわかるようになった
http://ideone.com/JqCs7

実行すると
http://tux.rainside.sk/mozilla/firefox/releases/3.6.13/win32/ja/Firefox Setup 3.6.13.exe
となるようだ

これで拡張子も正確にわかるな
104デフォルトの名無しさん:2011/01/16(日) 10:16:45
それにしてもIDEって便利だよな。
未定義どころか、余計に宣言してしまった変数まで「使用されませんでした」って教えてくれる。
IDEのおかげでほとんど素人の俺でも、ちょっとしたプログラムなら組めてしまう良い時代。
105デフォルトの名無しさん:2011/01/16(日) 10:29:33
いや、それは IDE じゃなくてコンパイラの仕事だから。
メモ帳で C# 書いて、コマンドラインでコンパイルしてもちゃんと未使用変数の警告出るよ。

IDE が便利な点をしいて言うなら、その警告がリアルタイムに出ることか。
106デフォルトの名無しさん:2011/01/16(日) 11:24:13
tasuAメソッドとtasuBメソッドは同じような処理ですが後々の事を考えると
どっちのメソッドを採用したほうがいいですか?

private void button1_Click(object sender, EventArgs e)
{
test test = new test();
label1.Text = test.tasuA(textBox1, textBox2);
label2.Text = test.tasuB(textBox1.Text, textBox2.Text);
}
---------------------------------------------------------------
public class test
{
public string tasuA(TextBox a, TextBox b)
{
string anser = a.Text + b.Text;
return anser;
}
public string tasuB(string a, string b)
{
string anser = a + b;
return anser;
}
}
107デフォルトの名無しさん:2011/01/16(日) 11:28:16
>>106
textboxのインスタンスを渡すのはどうかと・・・・
108デフォルトの名無しさん:2011/01/16(日) 11:28:35
とりあえずスレ一覧を表示するプログラムを作った
間違ってたら教えろ
http://ideone.com/02FSl
109デフォルトの名無しさん:2011/01/16(日) 11:29:23
answer
110デフォルトの名無しさん:2011/01/16(日) 11:31:08
ごく一般論としてなら、引数は必要最小限のものを渡すべき
でも別にクラスライブラリ作ってるわけじゃないんでしょ?好きにしていい
111デフォルトの名無しさん:2011/01/16(日) 11:31:09
>>108
見る気しない
datをいじるより楽だろ
112デフォルトの名無しさん:2011/01/16(日) 11:42:19
>>107>>110
ありがとうございます
>>一般論としてなら、引数は必要最小限のものを渡すべき
知りたかった理由そのもので大変参考になります

>>109
ありがとうございます
11373:2011/01/16(日) 14:11:49
>>101,102,103
ご丁寧にありがとうございます。
がんばってみますわ。

>>ALL
またよろしくお願いします。
114デフォルトの名無しさん:2011/01/16(日) 15:28:29
ふと疑問に思ったので、教えてください。

C# には String と string とありますが(先頭が大文字小文字)
これの違いってなんでしょう?
またどのような場面で使い分けるのでしょうか?
115デフォルトの名無しさん:2011/01/16(日) 15:31:31
>>114
intとInt32
stringとString
同じ関係。
Int32のほうが実態。
小文字の方はエイリアス。
どちらもでいいよ、俺は主に小文字のほうを使ってるけど。
116デフォルトの名無しさん:2011/01/16(日) 15:32:03
>>114
C# のキーワード的には string。
で、これは実は略称みたいなもんで、その実体は .NET Framework 標準ライブラリの System.String。

前者はそれ単体でキーワードなんでどこででも書ける。
後者は実はフルネームは System.String なんで、using System; してないと String と書けない。
117114:2011/01/16(日) 15:41:55
>>115>>116
早速の回答ありがとう。
スッキリした。
118デフォルトの名無しさん:2011/01/16(日) 16:31:31
Booleanもそうだけど、おれは気分的に大文字で始まる方を使ってる。
119デフォルトの名無しさん:2011/01/16(日) 16:39:02
キーワードの方がVSで色付くのが好き。
120デフォルトの名無しさん:2011/01/16(日) 16:39:37
クラスや構造体はPascal推奨だからなー
統一感がない
121デフォルトの名無しさん:2011/01/16(日) 16:47:14
大文字始まりの方はクラスなのか色がクラスと同じだからなあ・・・
小文字は始まりは濃いブルーになって違いも一目瞭然なんでそっちがいいわ
122デフォルトの名無しさん:2011/01/16(日) 17:03:19
>>120
まあ、組み込み型は内部での扱いもかなり特別だし、ユーザー定義のクラスや構造体と揃える必要ないと思う。
123デフォルトの名無しさん:2011/01/16(日) 17:06:28
string hoge = String.Format(〜

左側は小文字、右側は大文字にしちゃうわ。
124デフォルトの名無しさん:2011/01/16(日) 17:06:38
コードはint、コメントとドキュメントはInt32にしてる
125デフォルトの名無しさん:2011/01/16(日) 19:53:35
List<T>とDictionary<T>に宣言その他エイリアス用意してくれないかなぁと思う。
このふたつは特別でよいでしょ。

126デフォルトの名無しさん:2011/01/16(日) 20:09:12
それより先にIEnumerableだろ。
127デフォルトの名無しさん:2011/01/16(日) 20:21:22
うん
128デフォルトの名無しさん:2011/01/16(日) 20:28:48
List<T>よりArrayList<T>の方が遅いなんて、
それじゃあArrayListの存在意義って何よ
129デフォルトの名無しさん:2011/01/16(日) 20:31:59
>>128
2.0以前までに必要だったから
ジェネリック実装でいらない子になっただけ
130デフォルトの名無しさん:2011/01/16(日) 20:32:25
ArrayList<T>ってJavaの話?
131デフォルトの名無しさん:2011/01/16(日) 20:33:23
>>128
過去の互換性
Silverlightや最新のCFでは削除された
132デフォルトの名無しさん:2011/01/16(日) 20:33:35
もう、非ジェネリックコレクションにはとっととObsoleteつけろ。
133デフォルトの名無しさん:2011/01/16(日) 20:33:52
ArrayList<T>ってどこにあんの?
134デフォルトの名無しさん:2011/01/16(日) 20:34:51
中身List<object>に置き換えたらいいんじゃないの
135デフォルトの名無しさん:2011/01/16(日) 20:36:46
ArrayListってListにそのまま機械的に変換できるレベルだったような・・・
136デフォルトの名無しさん:2011/01/16(日) 20:38:49
最大の違いはArrayListはAddとかオーバーライドできること
ほかにもToArrayがTypeを引数にとったりAddがint返したりRemoveがvoidだったり微妙にいろいろ違う
137デフォルトの名無しさん:2011/01/16(日) 20:47:13
ToArrayが型情報要求するのはまるっきりJavaと同じだな
あっちは空配列要求するけど
138デフォルトの名無しさん:2011/01/16(日) 20:53:52
ArrayListは仮想メソッド多すぎ
.NETは最近の流れで基本的に継承やオーバーライドを制限しまくってるのに
コレクションだけJavaを模倣してる感じで異質だった
139デフォルトの名無しさん:2011/01/16(日) 20:55:34
まあ初期からあるんでしょ?
そういうどこかで見た思想に汚染されてるのは仕方ないでしょ
140デフォルトの名無しさん:2011/01/16(日) 21:52:33
好き好んで今後使う奴がいると思えないし、いいじゃん別に
141デフォルトの名無しさん:2011/01/16(日) 23:03:25
複素数クラスをつくって値のディープコピー
をこころみたのですがうまくいきません。
Complex クラス内に二つのメソッドを定義してみましたが、

どうやってもc4の値が変わりません。






public void copy1(Complex c1) { //asim
Console.Write("\nc1Re{0},c1Im{1},ThisRe{2},ThisIm{3}\n", c1.re, c1.im, this.re, this.im);
c1.re = this.re;
c1.im = this.im;
}
public static void copy2(Complex c1, Complex c2) {
c2.re = c1.re;
c2.im = c1.im;
}

// in main

Complex c3 = new Complex(33,3); // constructor 33+ 3i
Complex c4 = new Complex(44,4);
c3.copy1(c4);
Complex.copy2(c3,c4);




142デフォルトの名無しさん:2011/01/16(日) 23:07:20
Complexの実装の方出せ。
あと、struct使ってる落ちとか?
143デフォルトの名無しさん:2011/01/16(日) 23:08:31
>>142
structを書き換えたら直りました
すいません。
144デフォルトの名無しさん:2011/01/16(日) 23:11:05
複素数なんてもんこそstructで表現すべき物だと思うが
もちろんこんな内部書き換えるようなメソッドは無しで
145デフォルトの名無しさん:2011/01/16(日) 23:13:39
Matrixはクラスだったな
しかも奇怪な構造で
146デフォルトの名無しさん:2011/01/16(日) 23:14:04
>>142
>>144
今struct で書きなおしてます
ありがとうございました
147デフォルトの名無しさん:2011/01/16(日) 23:17:37
地味にウザイよなー

Guid guid = new Guid();
GCHandle handle = GCHandle.Alloc(guid, GCHandleType.Pinned);
IntPtr ptr = handle.AddrOfPinnedObject();

// ptrに書き込むP/Invoke呼び出し

Console.WriteLine(guid);

こんなくだらない事で悩んでしまった
148デフォルトの名無しさん:2011/01/16(日) 23:19:06
構造体なら相手が非同期な関数でなければref guidか&guidで渡しておk
149デフォルトの名無しさん:2011/01/16(日) 23:22:45
知ってるけどunsafe使いたくねーし、IntPtr.Zeroも有効なせいでref GUIDも駄目。
実は

object guid = new Guid();
〜略〜
Console.WriteLine(guid);

こうすると動くのよね。
どうにかして欲しい。
150デフォルトの名無しさん:2011/01/16(日) 23:26:42
オーバーロードでおk
151デフォルトの名無しさん:2011/01/16(日) 23:28:58
オーバーロードする発想は全然なかった
そうする
152デフォルトの名無しさん:2011/01/16(日) 23:33:51
パターン増えすぎて死ねるからやっぱ止めよう
http://msdn.microsoft.com/en-us/library/aa372740%28v=VS.85%29.aspx
153デフォルトの名無しさん:2011/01/17(月) 00:26:07
質問があります!
visualC#を使っているのですが,
Form1のDataGridViewにある各セルの値をForm2のtextboxに表示したいのですが,どうすればいいでしょうか?
あいまいな質問ですみません><

DataGridViewの最後のセルに詳細表示ボタンを作り,ボタンを押すとForm2が表示されるようにしています.
From2を表示することまではできています.
154デフォルトの名無しさん:2011/01/17(月) 00:28:58
Form2側にデータ受け渡し用の何かを用意するしかないよ

155デフォルトの名無しさん:2011/01/17(月) 00:38:47
>>154
何かとはなんでしょうか?><

いろいろ調べてるのですが
例えば
ttp://dobon.net/vb/dotnet/form/accessanotherformdata.html
では,テキストボックスの値の受け渡しをしているようなのですが,
DataGridViewっぽくいろいろ変えているのですがうまくいきません.

また
ttp://vsug.jp/tabid/63/forumid/44/postid/8210/scope/posts/Default.aspx
では,やりたいことは一緒なのですが,よくわりません.
156デフォルトの名無しさん:2011/01/17(月) 00:48:34
>>155
Form2をShowで表示する場合はこんな感じでいける
http://ideone.com/afZV0

157デフォルトの名無しさん:2011/01/17(月) 00:51:13
DataGridViewのクローン渡すほうが簡単じゃない?
158デフォルトの名無しさん:2011/01/17(月) 00:56:07
wpfやっている人は、コマンドのバインドもやっているの?
面倒くさすぎで挫折しそうなんだが
159デフォルトの名無しさん:2011/01/17(月) 01:00:34
Form2をShowDialogで表示する場合

http://ideone.com/yTBxC
160デフォルトの名無しさん:2011/01/17(月) 01:11:29
>>156-159
いろいろ情報ありがとうございます.
参考にして頑張ってみます.
161デフォルトの名無しさん:2011/01/17(月) 01:34:11
大昔ならForm2のTextBox自体をpublicにしてForm2をnewした直後に値を直接書き込んだなな
動けばいいって言えばそれまでだが
162デフォルトの名無しさん:2011/01/17(月) 03:14:54
>>158
俺は全然使ってないけど

不快だと思ったら使わなければいいのに、なんで使い切ろうとするんだろうな?
どうしてこうマゾが多いのだろうか
163デフォルトの名無しさん:2011/01/17(月) 09:45:56
ポーカーの役判定について質問させてもらいます。

Listを使用して、同じカードがでないようになりました。
しかし、役判定でつまづいてしまいました。

Listを使用し、乱数を取得して、その乱数をc1、c2、c3、c4、c5に代入してそのカードを表示させます。
数字は1〜54の数字を取得していて、1〜13がクローバ、14〜26がダイヤ、27〜39がハート、40〜42がスペード、43、44にジョーカーの1、2として、取得した数字に対応したカードがでてきます。

その後、いらないカードを一回交換し、並び替えを行います。
1〜13はそのまま、14〜26は-13、27〜39は-26、40〜42は-39、ジョーカーは一番右にいくのでそのままにし、純粋に数字だけをみてc1がc2より大きかったら入れ替えをして、小さかったり、同じだったらそのままにします。それをc5まで繰り返します。

その後に役判定を行うのですが、マークと数字を見てるので、if文でやるととても長くなってしまいます。
また、ワンペアとジョーカーがある場合、スリーカードにしたいのですが見方によってはツーペアになってしまうかも知れません。
どうすればよいですか?
教えてください!
164デフォルトの名無しさん:2011/01/17(月) 09:46:09
>>158
その程度のことが面倒くさいと思うようならどうせユニットテストなんかやらないだろ?
じゃあMVVMなんか意味無いから普通に全部イベントハンドラで作ればいいよ
165デフォルトの名無しさん:2011/01/17(月) 10:26:32
>>163
class Card
{
Sweet Sweet { get; set; }
int Number { get; set; }
}
にでもしたら?
166デフォルトの名無しさん:2011/01/17(月) 10:32:38
>>163
大富豪なんでポーカーの参考になるかどうかわからないけど、一応:
http://ufcpp.net/study/csharp/source/Daifugou.zip
167デフォルトの名無しさん:2011/01/17(月) 10:34:06
>>165
Suiteな
スイートルームと同じ
168デフォルトの名無しさん:2011/01/17(月) 11:37:20
コードが晒されて無いのでアドバイスしにくかったのと脳内である程度仕様ができたので
コードを書き始めたが時間切れで途中になってもた

興味ある人は続きを・・・
http://ideone.com/TU96i
169デフォルトの名無しさん:2011/01/17(月) 11:38:14
>>168>>163のやつね
170デフォルトの名無しさん:2011/01/17(月) 12:24:56
>>167
suitじゃない?
171デフォルトの名無しさん:2011/01/17(月) 12:28:23
デリゲートを勉強中なのですが、MSDNの解説で
「デリゲートがマネージ コードからガベージ コレクターによって収集されるのを手動で防ぐ必要があります。 ガベージ コレクターは、アンマネージ コードの参照を追跡しません。」
ということなのですが、これは具体的には、
GC.Collect();
を適当なプロセスで挿入すればいいのでしょうか?
172デフォルトの名無しさん:2011/01/17(月) 12:48:08
それじゃ真逆だよ。
173デフォルトの名無しさん:2011/01/17(月) 12:55:48
もうちょっと勉強してからMarshalクラス使った方がいいんじゃないかしら
174デフォルトの名無しさん:2011/01/17(月) 13:14:02
>>167
トランプのマークはスートだぞ
スイートじゃない

というかMarkで良いやん
175デフォルトの名無しさん:2011/01/17(月) 13:27:15
>>163
>1〜13はそのまま、14〜26は-13・・・
ジョーカーは別途処理として
number = card % 13;
suit = card / 13;
とするほうが楽

>その後に役判定を行う
隣り合う数字同士の差を元に判定する
4箇所で差1ならストレート(両端が1と13のときは差1にする)
連続する0の数でペア判定

>見方によってはツーペアになってしまうかも知れません。
役として強い方から見てけば問題ない
176デフォルトの名無しさん:2011/01/17(月) 13:34:54
>>163
強い順に役判定すればスリーカードがツーペアになることはないと思う。
数字ひとつに1ビット割り当てた約判定用数値を用意して
ビット演算するとコードを短くできるかもしれません。
Aとジョーカーが特殊なのでややこしいことに変わりはありませんが。
177デフォルトの名無しさん:2011/01/17(月) 13:36:03
>>168に足してみた
http://ideone.com/tx4A6

・シャッフルしてない
・並べ替えしてない
・デバック用にメソッドをいくつか入れた
178デフォルトの名無しさん:2011/01/17(月) 13:37:00
>>174
なぜか
MarkとSuzyを選ぶだけ!
というCMを思い出した
179デフォルトの名無しさん:2011/01/17(月) 13:44:42
>>177
>>163は役判定の質問してるんだが
180デフォルトの名無しさん:2011/01/17(月) 14:16:11
>>179
ソースがでてこないしこうすればいいんじゃね?って日本語で
全部書くのもあれなので別にコードサンプルあってもいいんじゃね?

181デフォルトの名無しさん:2011/01/17(月) 14:41:21
>>171
一つの方法としては、static変数に入れればGCを防げる
でもよく理解しないでMarshalなんか使うと絶対にメモリリーク起こしたりエラーで死亡したりするから
どういう場合にどうして死亡するかわかるようになるまではMarshalなんか使っちゃダメ
182デフォルトの名無しさん:2011/01/17(月) 14:43:14
>>180
そのコードサンプルとやらに判定法が一切含まれていないんだよ
183デフォルトの名無しさん:2011/01/17(月) 14:52:53
>>182
話の土台がなければ判定コードは入れられないだろ
>>163のままだと全部作ってくださいって言ってるようなもんだよ
184デフォルトの名無しさん:2011/01/17(月) 15:21:58
>>183
カードクラスと5枚のカードを持つ手札クラスを用意して
手札クラスで役判定する関数があれば回答になるんじゃない?

ポーカーゲーム全部作る必要はないと思う。
185デフォルトの名無しさん:2011/01/17(月) 16:20:52
>>184
相手がどういうクラスを作ってるのかわからないに?
186デフォルトの名無しさん:2011/01/17(月) 16:50:31
>>163
ポーカーの判定部分のみ
http://ideone.com/MuyoO

やはりLINQは素晴らしい
あ、適当に作ったから間違いがないかちゃんとチェックしてね
187デフォルトの名無しさん:2011/01/17(月) 17:11:39
188デフォルトの名無しさん:2011/01/17(月) 17:15:23
うん
189デフォルトの名無しさん:2011/01/17(月) 17:26:47
>>187
ジョーカーの判定がない件について
190デフォルトの名無しさん:2011/01/17(月) 19:13:28
ジョーカー判定入り
http://www1.axfc.net/uploader/Sc/so/195245.zip

あとは自分でがんばれ
191デフォルトの名無しさん:2011/01/17(月) 19:41:06
マーク関係ないストレートができてないな

CompareToですでにソートを使ってる場合に
別のソートっていけるのかな?
192デフォルトの名無しさん:2011/01/17(月) 20:01:24
好奇心さ
193デフォルトの名無しさん:2011/01/17(月) 20:09:25
若さって何だ
194デフォルトの名無しさん:2011/01/17(月) 20:11:43
振り向かないことさ
195デフォルトの名無しさん:2011/01/17(月) 20:42:01
文字列[login=123&pass=123]のクエリ文字列部分を美しく取り出したいです。
やり方をご伝授願います。
196デフォルトの名無しさん:2011/01/17(月) 20:59:45
正規表現
197デフォルトの名無しさん:2011/01/17(月) 21:04:32
普通login=123&pass=123の部分をクエリ文字列って言わない?
もう取り出してるじゃん
198デフォルトの名無しさん:2011/01/17(月) 21:15:40
質問です.visualC#を使っています.
初歩的な質問なのですが,
DataGridViewに表示させた文字をセルを指定して,そのセルの値を取り出すにはどうすればいいでしょうか?
199デフォルトの名無しさん:2011/01/17(月) 21:21:04
>>197
すいません。
その値の部分です。
200デフォルトの名無しさん:2011/01/17(月) 21:24:04
>>199
splitすればいいよ。
201デフォルトの名無しさん:2011/01/17(月) 21:36:24
var uri = new Uri(@"http://www.google.co.jp/search?hl=ja&q=System.Uri.Query&aq=f&aqi=&aql=&oq=");
var mc = Regex.Matches(uri.Query, @"([^?&=]+)=([^&=]*)");
var parameters = mc.Cast<Match>().ToDictionary(m => m.Groups[1].Value, m => m.Groups[2].Value);

Splitは美しくないから駄目だよ
Groupsのインデックスが美しくないから名前付けた方がいいかもしれん

あとURIデコードは知らん
202デフォルトの名無しさん:2011/01/17(月) 21:41:36
// using System.Text.RegularExpressions;

var x = "login=123&pass=123";
var dic = x.Split('&').Select(s => s.Split('=')).ToDictionary(p =>p[0], p => p[1]);
//var mat = Regex.Match(x, "login=(?'login'[^&]*)&pass=(?'pass'[^&]*)");
var login = dic["login"]; // mat.Groups["login"].Value;
var pass = dic["pass"]; // mat.Groups["pass"].Value;p

dicでもmatでも好きな方で
例外処理は自分で考えてね
203デフォルトの名無しさん:2011/01/17(月) 21:42:31
初心者がC#を勉強するのにオススメなホームページってどんなのがありますか?
204デフォルトの名無しさん:2011/01/17(月) 21:43:04
Uri クラス
205デフォルトの名無しさん:2011/01/17(月) 21:59:40
皆様、ありがとうございます!

>>204
詳しく
206デフォルトの名無しさん:2011/01/17(月) 22:13:40
Uri uri = new Uri ("http://example.com/?A=B");
Console.WriteLine (uri.Query);
?がつくけどね
207デフォルトの名無しさん:2011/01/17(月) 22:29:53
>>163の関連でトランプメーカー作ってた・・・
http://www1.axfc.net/uploader/Sc/so/195317.zip

絵札だけはどうにもならん・・・
208デフォルトの名無しさん:2011/01/17(月) 23:11:13
また君か
209デフォルトの名無しさん:2011/01/17(月) 23:19:25
ん?知り合い?
210デフォルトの名無しさん:2011/01/17(月) 23:25:27
ホモ達
211デフォルトの名無しさん:2011/01/17(月) 23:58:59
いいじゃないか、彼は満足してるんだから
212デフォルトの名無しさん:2011/01/18(火) 00:28:44
なんかトランプでポーカーがうんぬん言ってる彼は俺の大学の後輩のような気がする。
ほとんど同じようなプログラムを去年の春かな。質問されたわ
213デフォルトの名無しさん:2011/01/18(火) 00:48:12
一年間進歩無かったってこと?それはそれは・・・
214デフォルトの名無しさん:2011/01/18(火) 01:04:14
というより課題じゃないの
215デフォルトの名無しさん:2011/01/18(火) 01:16:18
課題なら先輩からソース貰って変数名だけ変えて提出しちゃうな
216デフォルトの名無しさん:2011/01/18(火) 01:19:35
>>207
数字いれて
絵札は JQKでごまかして好きな絵でもかいとけ。
217デフォルトの名無しさん:2011/01/18(火) 09:07:37
ぶっちゃけ銀光て業務で普及してる?
新規の案件があってWinFormから移行するかどうか迷ってるんだが
218デフォルトの名無しさん:2011/01/18(火) 10:04:11
>>212
ごめん…
今高校生なんだ…
まあ、課題ではないけど成績に反映するからさ…
219デフォルトの名無しさん:2011/01/18(火) 11:55:22
>>218
もうちょっと考え抜いてから質問した方がいいんじゃね?
220デフォルトの名無しさん:2011/01/18(火) 11:59:15
>>219
関係ないおっさんが成りすましで書いてるのにマジレスとか
221デフォルトの名無しさん:2011/01/18(火) 13:26:11
222デフォルトの名無しさん:2011/01/18(火) 14:49:57
WinFormのGraphicsを使って文字を描く際に
文字列全体を弧に沿って曲げるようなレンダリングは可能でしょうか?

分かりやすくいうとスターバックスのロゴの文字のような感じです
223デフォルトの名無しさん:2011/01/18(火) 14:55:23
できるよ
224デフォルトの名無しさん:2011/01/18(火) 17:41:20
どこまでできたかプログラムを貼り付けたいけどどうすればいい?
225デフォルトの名無しさん:2011/01/18(火) 17:46:08
ソースファイルをまとめてうpろだにうpすればいい
226デフォルトの名無しさん:2011/01/18(火) 19:49:11
--------------------------------------------
それは他の公理に比べて自明性は低く、
また明らかに冗長であったので、
いくつかの疑念を生ずることとなった。
こいつにタダ飯食わせるのは正しいのだろうか?
--------------------------------------------
227デフォルトの名無しさん:2011/01/18(火) 20:37:45
問1.「こいつ」とは何を指しているか答えなさい。
228デフォルトの名無しさん:2011/01/18(火) 21:50:34
>>217
業務系のアプリって、あんまし会社の外に出て来ないから
普及してるかどうかは、正直何とも。

ASP.NETのフロントエンドを置き換える目的なら、SLは良いと思う。
WinFormsを置き換える目的なら、SLじゃなくWPF検討しといた方が多分幸せ。
SLはWinFormsやWPFに比べて、イベントがかなり削られてるから
色々苦労すると思うよ。
229デフォルトの名無しさん:2011/01/19(水) 00:52:37
SLってC#部分で図形とか動的に描けるかな?
230デフォルトの名無しさん:2011/01/19(水) 01:02:04
>>229
XAML でできることは原理的には全部 C# でもできる。

Silverlight 標準の宣言的で、イベント駆動な UI じゃ遅い、
フレーム単位で、ビットマップ描画で絵を出したいとか
そういう要件の場合は↓こちらを。
http://writeablebitmapex.codeplex.com/
231デフォルトの名無しさん:2011/01/19(水) 01:05:06
>>230
WPFでつかえる?
232デフォルトの名無しさん:2011/01/19(水) 01:07:38
わかんない。ページ見て。

WriteableBitmapの仕様がだいぶ違うんで、当人が両対応してなきゃ、そのままじゃ動かないと思う。
233デフォルトの名無しさん:2011/01/19(水) 01:08:15
>>230
ありがとうございます。
いろいろできるんですね
コンパクトと聞いてたので不安でしたがさすがFlashの替わりを目指すだけのことはありますね
234デフォルトの名無しさん:2011/01/19(水) 01:33:09
みた、動くっぽいけど・・・掲示板にWPF is deadって書き込みがあって萎えた
235デフォルトの名無しさん:2011/01/19(水) 01:52:27
何その2chみたいな書き込み。
236デフォルトの名無しさん:2011/01/19(水) 10:13:55
237デフォルトの名無しさん:2011/01/19(水) 11:01:24
Task.Factory.StartNew
で動作する部分でFormとかのUIいじろうと思ったらやっぱInvokeしないといけないの?
238デフォルトの名無しさん:2011/01/19(水) 11:05:08
必要。
239デフォルトの名無しさん:2011/01/19(水) 11:08:16
>>237
Invokeの必要性があるかどうかを理解してるなら動かしてみればいいじゃん
UI部分をいじれればいらない、いじれない場合は居る
それだけだと思うよ
240デフォルトの名無しさん:2011/01/19(水) 11:10:40
>>238
サンクス

>>239
今ちょっと環境ないんだけど聞いてみたかったんだ
普通にスレッドと同じだと思えばいいのか・・・
241デフォルトの名無しさん:2011/01/19(水) 11:28:07
>>240
実体はスレッドプール。
デリゲートのBeginInvokeしたときと挙動一緒。
242デフォルトの名無しさん:2011/01/19(水) 11:51:55
>>241
ありがとうございます。
なるほど、効率の良くなって小細工できるスレッドプールのようなものですね。
243デフォルトの名無しさん:2011/01/19(水) 19:09:47
デバッグする度にWindowsForms10.Window.8.app.0.b7ab7b_r21_ad1
の「0.b7ab7b_r21_ad1」が変更されるのですが、設定で固定させる事は可能ですか?
244デフォルトの名無しさん:2011/01/19(水) 19:09:55
Disposeあったりするけどねぇ・・・
245デフォルトの名無しさん:2011/01/19(水) 19:11:08
文字の回転を行いたいのですが思っているように動きません
http://ideone.com/4mKE4

↑のように左上を原点ではなく、文字(文字列)の中央付近を原点に
その場で回転させたいのですがどうすればいいでしょうか?
246デフォルトの名無しさん:2011/01/19(水) 19:17:51
回転する前に中央が原点にくるように平行移動する
247デフォルトの名無しさん:2011/01/19(水) 19:23:41
>>243
それが何の文字列かぐらいは書かないと意味不明
たぶんウィンドウクラスだろうけど、無理
248デフォルトの名無しさん:2011/01/19(水) 19:28:17
>>246
ありがとうございます
回転軸を変えることができました
http://ideone.com/NNm6n
249デフォルトの名無しさん:2011/01/19(水) 21:05:31
Visual C#でフォームアプリケーションを作るとデフォルトのフォームのタイトルが「Form1」ですが、
これを変更するにはどうしたらいいでしょうか?
250デフォルトの名無しさん:2011/01/19(水) 21:10:47
ソリューションを「Form1」で検索してみよう
251デフォルトの名無しさん:2011/01/19(水) 21:23:04
>>249
ソリューションエクスプローラーのツリーのところで
Form1.csの名称を変えると「参照を全部変更しますか?」って聞いてくるので
はいを選ぶと全部変えてくれる
252デフォルトの名無しさん:2011/01/19(水) 21:23:18
嫌です
253デフォルトの名無しさん:2011/01/19(水) 21:38:35
デフォルトを変更したいといってんだろ
無理です
254デフォルトの名無しさん:2011/01/19(水) 21:43:17
>>253
>>251の方法でIDEが関連をすべて変更してくれるんだし
それほどの労力かね・・・?
255デフォルトの名無しさん:2011/01/19(水) 22:05:43
いちいちMainFormに直すのが面倒とかそんなんじゃない
VBでいちいちModifireをPrivateに直すのが面倒臭い
256デフォルトの名無しさん:2011/01/19(水) 22:11:02
つSED
257デフォルトの名無しさん:2011/01/19(水) 22:53:16
WPFではC#でもデフォルトでinternal
気にするだけ無駄
258デフォルトの名無しさん:2011/01/19(水) 22:54:17
俺が気にするんじゃなくてコーディング規約だからお前が俺の会社来てプロマネに言え
259デフォルトの名無しさん:2011/01/19(水) 23:02:28
プロマネをここに連れてくるほうが楽じゃないか
260デフォルトの名無しさん:2011/01/19(水) 23:05:11
>>257
でも、プロジェクトをクラスライブラリにすると、クラスのデフォルトはパブリック
理由はわからないでもないがどうなんだろうな?
261デフォルトの名無しさん:2011/01/19(水) 23:10:46
Modifierって.designer.vb開いて置換すれば終わる話じゃないの?
262デフォルトの名無しさん:2011/01/19(水) 23:42:19
どうなの?
263デフォルトの名無しさん:2011/01/19(水) 23:51:25
SEDも面倒なら、VBでツール作ったら良いんじゃね
264デフォルトの名無しさん:2011/01/20(木) 00:56:12
JavaScriptSerializer クラス
http://msdn.microsoft.com/ja-jp/library/system.web.script.serialization.javascriptserializer.aspx
これを使いたいのですが、System.Web.Extensions.dllを参照に追加しないといけないと聞きました。
「参照の追加」のウィンドウまではいったのですが、ここからがわかりません。
ここからどうしたらいいか、わかる方お願いします。
265デフォルトの名無しさん:2011/01/20(木) 01:48:59
>>264
自己解決しました
266デフォルトの名無しさん:2011/01/20(木) 06:33:49
で?
267デフォルトの名無しさん:2011/01/20(木) 07:53:51
で? ←横顔に見える
268デフォルトの名無しさん:2011/01/20(木) 11:21:51
C#のコードをネイティブコンパイルする方法を教えてください。
C++からC#に移植した単純にループ&intの代入を繰り返すだけの簡単なコードが遅くて使いものになりません。
269デフォルトの名無しさん:2011/01/20(木) 11:26:29
>>268
コードがしょぼいという発想は無い?
270デフォルトの名無しさん:2011/01/20(木) 11:28:25
釣りっぽいがコード出してみ
271デフォルトの名無しさん:2011/01/20(木) 12:01:01
遅いとかどれだけ性能を求めてるんだwww
272デフォルトの名無しさん:2011/01/20(木) 12:07:48
無駄にnewしてるな
273デフォルトの名無しさん:2011/01/20(木) 12:15:13
あれだ
起動にかかる時間も含めて言ってるんじゃない?

言ってるとしたらただのアホだが
274デフォルトの名無しさん:2011/01/20(木) 12:30:15
275デフォルトの名無しさん:2011/01/20(木) 13:04:34
起動が遅くてもいいと思ってる奴はアホだろ。
276デフォルトの名無しさん:2011/01/20(木) 13:27:21
そりゃアプリケーションの種類による
277デフォルトの名無しさん:2011/01/20(木) 13:37:23
起動が遅くてもいいアプリなんか一つもない。
278デフォルトの名無しさん:2011/01/20(木) 13:41:18
>>274
だからシェーダ使えって
アホみたいに早いぞ
279デフォルトの名無しさん:2011/01/20(木) 13:43:48
C++/CLI使え
280デフォルトの名無しさん:2011/01/20(木) 13:45:36
シェーダやらC++/CLI使うくらいなら最初からC++で書くだろw
C#の存在価値を全否定するレスばかりだなw
281デフォルトの名無しさん:2011/01/20(木) 13:46:28
マネージコードの限界か
C#なんていらなかったんや
282デフォルトの名無しさん:2011/01/20(木) 13:50:06
>>280
速度欲しい部分だけC++/CLIで書いて残りはC#で書けばいいだろ
ネイティブDLLとか呼び出すよりマシだろうし・・・
283デフォルトの名無しさん:2011/01/20(木) 13:54:54
sandy bridgeなら速いんじゃない?
284デフォルトの名無しさん:2011/01/20(木) 13:59:09
まあどっちにしろ言語が悪いんじゃないよな
適切なハードなり言語なり選ぶとかできない本人が悪い

285デフォルトの名無しさん:2011/01/20(木) 14:07:50
>>280
部分的に使うって発想は無いのね
286デフォルトの名無しさん:2011/01/20(木) 14:12:04
>>280
C++じゃ>>32には遅くて使い物にならんだろw
287デフォルトの名無しさん:2011/01/20(木) 14:22:37
つうかC++/CLI使えないから涙目なんじゃない?
288デフォルトの名無しさん:2011/01/20(木) 14:32:13
移植性の悪いコードならC#である必要性なくね?
C#ってのはWindowsでもAndroidでもiPhoneでも動くからいいんじゃねーのか?
http://hibari.2ch.net/test/read.cgi/mac/1291602001/
289デフォルトの名無しさん:2011/01/20(木) 14:33:47
釣針が大きすぎて困ってる 助けて
290デフォルトの名無しさん:2011/01/20(木) 14:35:40
Write Once Run Anywhere!!!
291デフォルトの名無しさん:2011/01/20(木) 14:42:34
unsafe使って配列操作するのってC++と比べても僅かな違いしかない。
だからC#が遅くて使い物にならないなら、同様にC++も遅くて使い物にならんだろうと馬鹿にされてるのさ

まぁ、C++で書き直したら5%ぐらいの速度向上は見込めるんじゃないかな?
http://d.hatena.ne.jp/espresso3389/20101008/1286464729
292デフォルトの名無しさん:2011/01/20(木) 14:45:31
>>289
ヤスリで削るといいお
293デフォルトの名無しさん:2011/01/20(木) 14:54:40
c#3以降はまともに保守できねーよ。
PGによって書き方がバラバラすぎる。

オナニーで言語仕様を拡張するのは止めてくれ。
294デフォルトの名無しさん:2011/01/20(木) 14:56:23
それC++に言ってやれよ
295デフォルトの名無しさん:2011/01/20(木) 14:58:10
JAVAにも言いたい
296デフォルトの名無しさん:2011/01/20(木) 14:59:35
後発なだけにC#はまだマシな方だな
C++は酷い・・・
297デフォルトの名無しさん:2011/01/20(木) 15:11:05
言語はシンプルでいいんだよな
デリゲートとかLINQとかもうわけわからんぜ
298デフォルトの名無しさん:2011/01/20(木) 15:14:00
brainをfuckしてろアフォ
299デフォルトの名無しさん:2011/01/20(木) 15:14:51
デリゲートは最初からあるじゃねーかよw
300デフォルトの名無しさん:2011/01/20(木) 15:17:45
LINQに慣れると無くなったら生きていけないわ
301デフォルトの名無しさん:2011/01/20(木) 15:18:03
デリゲートは無いとそもそもGUIが実現しないんじゃないの?
LINQは確かに必要な拡張かどうか悩むけど
302デフォルトの名無しさん:2011/01/20(木) 15:33:05
Linqで質問

public class ParameterDispData
{
public DateTime DateInfo;
public string Comment;
}

こんな感じのデータのList<ParameterDispData>があって
Commentの中身に複数の条件を含むデータを取得したい

たとえば Commentに A Bのいづれかを含むデータ(条件の数は可変)

みたいな感じに
どうかけばいいのやら・・・
303デフォルトの名無しさん:2011/01/20(木) 15:35:08
>>32なら並列化でプロセッサ倍、GPUで二桁は余裕だな
C++で書こうが単一CPUの限界

>>302
list.Where(x => x.Comment == A || x.Comment == B)
304デフォルトの名無しさん:2011/01/20(木) 15:46:15
>>303
ありがとうございます。
でも実現したいのは
A B C
になったり
A C
になったり
A
だけったり

全く条件は無かったり

なんです

まぁ例えば検索エンジンの条件みたいなものと考えてもらえれば・・・
実際はデータのフィルタリングに使用するんですが・・・

ひとまず基本は

var list = from x in readDataList
//ここに動的な条件はいる
select new { x.DateInfo, x.Comment };
こんな感じです。
305デフォルトの名無しさん:2011/01/20(木) 15:47:41
from item in list
join comment in comments on item.Comment equals comment
select item;
かな
list.Where(item => comments.Contains(item.Comment)
こっちの方がわかりやすいかも
306デフォルトの名無しさん:2011/01/20(木) 16:03:44
Write Once Run Anywhere!!!
307デフォルトの名無しさん:2011/01/20(木) 16:15:42
>>290>>306
なんでJavaの悪口言ってるの?
308デフォルトの名無しさん:2011/01/20(木) 16:18:36
C#でSandy BridgeのAVXを使う方法を教えてください。
309デフォルトの名無しさん:2011/01/20(木) 16:19:51
あくまで夢は夢だろ
もちろん、使いまわせるところは使いまわすけど
310デフォルトの名無しさん:2011/01/20(木) 16:31:51
>>308
C#にこだわる発想が馬鹿だよな。適材適所って言葉も知らんのか。
C#はネイティブとマネージド、静的言語と動的言語、手続き型と関数型 ...これら全てを相互に結び付けるグルー言語だ。
311デフォルトの名無しさん:2011/01/20(木) 16:37:17
>>307
え? Javaの宣伝文句じゃん。
実際は、Write once, debug everywhereって言われたけどな。
312デフォルトの名無しさん:2011/01/20(木) 16:39:12
>>311
そうそう
だから「Write Once Run Anywhere!!!」って言ってもJavaへの皮肉にしかならんよね って話。
313デフォルトの名無しさん:2011/01/20(木) 16:42:09
それのもじりで一番笑ったのはWrite Once, Run Away.
314デフォルトの名無しさん:2011/01/20(木) 16:44:42
Run Away.っておいw
315デフォルトの名無しさん:2011/01/20(木) 17:46:30
>>304
動的に条件が増えるならLINQで書くよりも

IEnumerable<T> Filter<T>(IEnumerable<T> datas, IEnumerable<Func<T, bool>> filters) {
  foreach (var d in datas) {
    foreach (var f in filters) {
      if (f(d)) {
        yield return d; break;
}}}}

IEnumerable<T> Filter<T>(IEnumerable<T> datas, params Func<T, bool>[] filters) {
  return Filter(datas, (IEnumerable<Func<T, bool>>)filters);
}

みたいなのを作っておいた方が拡張性がいい気がする
オーバーロードはなくてもいいけどあれば↓みたいな書き方ができる
Filter(list, p=>p.Comment.Contains("A"), p=>p.Comment.Contains("B"))
316デフォルトの名無しさん:2011/01/20(木) 17:52:26
>>313
正しい
317315:2011/01/20(木) 17:53:01
Func<string, bool>[] filters = {s=>s.Contains("a"), s=>s.Contains("b")};

var q = from d in list
 where filters.Any(f => f(d))
 select d;

と思ったけどよく考えたらこれでいいな
318デフォルトの名無しさん:2011/01/20(木) 18:26:17
そういうデリゲートが既に用意してあったような・・・
319デフォルトの名無しさん:2011/01/20(木) 18:38:00
あったようなだよね・・・
320デフォルトの名無しさん:2011/01/20(木) 18:41:41
Preidicate
Whereで使えればいいのに
321デフォルトの名無しさん:2011/01/20(木) 19:37:26
>>315,>>317
ありがとうございます。
勉強になります。

ひとまず、Linqの勉強がてらだったんですが、結構奥が深そうで・・・・
322デフォルトの名無しさん:2011/01/20(木) 20:14:52
深そうで・・・・
323デフォルトの名無しさん:2011/01/20(木) 20:52:40
深く・・・

もっと、深く・・・
324デフォルトの名無しさん:2011/01/20(木) 21:04:03
デリゲートってFuncとActionとEventHandlerだけあれば十分な希ガス
325デフォルトの名無しさん:2011/01/20(木) 21:18:45
簡単なベクター系グラフィックツールを作ろうかと思ったがデータの管理が大変だな・・・
326デフォルトの名無しさん:2011/01/20(木) 21:22:18
参照渡し用のActionとか作ったな
327デフォルトの名無しさん:2011/01/20(木) 22:23:59
どなたかメソッドの返し値を一箇所で判定する良い方法知りませんか?
やりたいことはfalseが返ってきたらその時点でHogeに戻りたい。
今は無理やりこんな感じでやってます。
if文が気持ち悪いので困ってます。

public void Hoge()
{
if( A && B){}
return;
}
private bool A()
{
return true;
}
private bool B()
{
return false;
}
328デフォルトの名無しさん:2011/01/20(木) 22:31:21
イミフ
329デフォルトの名無しさん:2011/01/20(木) 22:36:52
何言ってるかよくわからないが
if(A) B;
とかじゃだめなんですか
330デフォルトの名無しさん:2011/01/20(木) 22:39:35
関数ポインタを使えばいいかも
331デフォルトの名無しさん:2011/01/20(木) 22:43:42
説明不足ですいません
例ではbool値返すメソッドは二つですが
実際は沢山あります。
あと、bool値返すメソッドはエラーならfalseを返すという使い方を考えてます。
332デフォルトの名無しさん:2011/01/20(木) 22:44:13
>>327
ショートカット演算子で検索。
結論から言えば、もうそのコードで既に望みどおりの動作になってる
333デフォルトの名無しさん:2011/01/20(木) 22:45:31
判定をif分ですると気持ち悪いとは困った人ですね。
334デフォルトの名無しさん:2011/01/20(木) 22:47:11
気持ちがることはない。
気持ち悪いなら、メソッド名が悪いと思う。
335デフォルトの名無しさん:2011/01/20(木) 22:51:22
特に問題無さそうなのでこれでいこうと思います
ちなみにコードは即席なので気にしないでください
ありがとうございました
336デフォルトの名無しさん:2011/01/20(木) 22:56:03
if使わないなら後は例外投げて大元でキャッチとかすれば何とかできそうだけど
微妙すぎだな
337デフォルトの名無しさん:2011/01/20(木) 23:02:50
if文というかif文の条件が増えすぎるのが気持ち悪いというのが正解です
delegeteに追加して、途中で抜けれるとかならいいんですが・・・
338デフォルトの名無しさん:2011/01/20(木) 23:08:11
デリゲートのリスト作れば簡単にできそうだけど
339デフォルトの名無しさん:2011/01/20(木) 23:09:46
設計がおかしいと言ってみる。
340デフォルトの名無しさん:2011/01/20(木) 23:31:19
static void RunAnyway(params Func<bool>[] methods){
    //中身は頑張って作れ
}

こんな感じで使えるはず
RunAnyway(A, B, C, D);
341デフォルトの名無しさん:2011/01/20(木) 23:34:01
動けばいい。俺は気にしない。
342デフォルトの名無しさん:2011/01/20(木) 23:35:30
>>337
>>315>>317みたいな感じにしてみれば?
343デフォルトの名無しさん:2011/01/20(木) 23:53:05
そのフィルターってホワイトリストみたいになってない?
344デフォルトの名無しさん:2011/01/21(金) 00:02:01
いつも思うけどこのスレって策士策に溺れるタイプ多そうだなほんと。
なんか質問の主の質問とズレてる気もするし。(質問者が日本語不自由過ぎるのでそこは微妙だが)
345デフォルトの名無しさん:2011/01/21(金) 00:15:28
ゴミのようなレスからでも学ぶことはできるのだよ
346デフォルトの名無しさん:2011/01/21(金) 02:31:14
前に見たコボル上がりのプログラムだと、帳票十数種類を一つの関数で作っていた
当然縦横も集計なのか明細なのか仕様もばらばらだが、if文だらけで千に届かんばかりの行数の関数

この手のものであるなら、最初から作り直したほうがいいと思うわ
347デフォルトの名無しさん:2011/01/21(金) 02:32:50
恐ろしい。作ったやつは天才だな。
348デフォルトの名無しさん:2011/01/21(金) 02:34:20
よくそんな化物関数扱えるな
多少効率悪くなっても読みやすく重複の少ないコードがいいわ。
349デフォルトの名無しさん:2011/01/21(金) 02:42:45
動いてるならそれでよし
350デフォルトの名無しさん:2011/01/21(金) 07:29:26
if文で判定したデータをさらに判定するのはどのように書けばいいんですか?
351デフォルトの名無しさん:2011/01/21(金) 07:47:36
if文を書けばいい
352デフォルトの名無しさん:2011/01/21(金) 08:59:55
&&とか||もあるだろ
353デフォルトの名無しさん:2011/01/21(金) 09:17:47
メンバ関数の名称は同じなのに引数の指定の仕方が複数存在する物がありますが
あのようなメンバ関数を持たせる場合はどのように定義すればいいのでしょうか?
354デフォルトの名無しさん:2011/01/21(金) 09:26:44
引数だけ変えてあとは普通に
355デフォルトの名無しさん:2011/01/21(金) 12:11:42
>>354
ありがとうございます
356デフォルトの名無しさん:2011/01/21(金) 15:14:09
>>163の関連でいいグラフィック管理クラスを作ることができた
この間の修正版カード
http://www1.axfc.net/uploader/Sc/so/196550.zip
pass 無し

カードの著作権はフリーです。(フォントの著作権はよくわからん
357デフォルトの名無しさん:2011/01/21(金) 17:08:10
著作権の侵害だ
358デフォルトの名無しさん:2011/01/21(金) 17:13:11
すまん、ゴチったw
中身の絵柄は萌え系に変更させてもらうがな!!
359デフォルトの名無しさん:2011/01/21(金) 17:27:44
float[]の要素に対して複数のスレッドから読み書きするのは危険ですか?
スレッドが3つあるとして、

スレッド1は 0,3,6・・・
スレッド2は 1,4,7・・・
スレッド3は 2,5,8・・・
に対してそれぞれ読み書きしたいんです。

既存のデータに対しての処理なので、そもそも設計が云々と言うのは無しでお願いします
360デフォルトの名無しさん:2011/01/21(金) 17:30:42
>>359
項目が別れてるならいいんじゃないの?
同じエリアをアクセスするとなるとヤバイだろうけど
361デフォルトの名無しさん:2011/01/21(金) 19:46:31
>>358
台湾Microsoft辺りで、色々素材出してくれるといいのにねー。
362デフォルトの名無しさん:2011/01/21(金) 20:06:54
WpfでBitmapImage(new Uri("Images/Hoge.png") とかをLoadedで実行すると
デザイン時はリソース見に行かずに普通のアドレスとして解釈してエラー起こるんだが、皆どんな対応している?

普通に嵌ってしまったわ
363デフォルトの名無しさん:2011/01/21(金) 20:13:15
Uri (String, UriKind)
とか使ってもダメなのかね
364デフォルトの名無しさん:2011/01/21(金) 20:34:39
>>363
駄目でした、でも実行時にはちゃんとリソース持ってくるんだよね、Loadedに置いても
バージョンは4です
365デフォルトの名無しさん:2011/01/21(金) 20:37:04
なんか、いいことありませんか?
366デフォルトの名無しさん:2011/01/21(金) 20:39:47
if (DesignerProperties.GetIsInDesignMode(this))で逃げる
367デフォルトの名無しさん:2011/01/21(金) 21:04:36
>>358
大きいのも作れるけどw
368デフォルトの名無しさん:2011/01/21(金) 21:10:47
>>358
けどねw

369デフォルトの名無しさん:2011/01/21(金) 21:27:05
実際デリゲートとか使ってる現場少なくて、コーディング規約にも出て来ないから怖くて使えん。javaと同じだと思ってる奴多いからかな。
お前らちゃんと使えてる?
370デフォルトの名無しさん:2011/01/21(金) 21:42:36
デリゲート怖い
371デフォルトの名無しさん:2011/01/21(金) 21:47:47
>>369
ちょっとしたアプリでもデリゲートが使えないと困ることって出てきそうなだがどうなんだろ?
GUIのイベントとは別ね
372デフォルトの名無しさん:2011/01/21(金) 21:49:25
スレッド使えないな
373デフォルトの名無しさん:2011/01/21(金) 21:52:01
デリケアM's
374デフォルトの名無しさん:2011/01/21(金) 21:58:05
タイマーでも起動してスレッドが終わったら立てるフラグでも見て
処理するとかやるのかなw
375デフォルトの名無しさん:2011/01/21(金) 22:52:46
BackGroundWorkerは禁止ですか?
376デフォルトの名無しさん:2011/01/21(金) 23:21:37
デリゲートなんて分からん奴にはただのクラスと区別がつかんし、
分かってる奴は意味もなく問題視したりしないから迷わず使えばいいよ

さすがにUIを勝手に非同期化したりはしないが
377デフォルトの名無しさん:2011/01/21(金) 23:31:26
デリゲートはわかるけど、ラムダ式使って匿名メソッド書かれると、
何やってるのかパッと見で把握できない
非常に困る
378デフォルトの名無しさん:2011/01/21(金) 23:34:51
ラムダ式とかLINQあたりだとさすがに複数人数でやるときはレベルあわせがいるよね・・・
379デフォルトの名無しさん:2011/01/22(土) 00:06:46
IEnumratableを返すメソッドが大量にあると萎える
380デフォルトの名無しさん:2011/01/22(土) 00:21:31
ジェネリック、デリゲート、ラムダ式、LINQは便利だし覚えて損無いと思うけど
というかLINQは前者の3つが分かってればそんなに難しくないでしょ
381デフォルトの名無しさん:2011/01/22(土) 00:32:25
>>379
何故?
382デフォルトの名無しさん:2011/01/22(土) 00:42:19
デリゲートは関数動かん時に使ってみるってイメージ
特にC++/CLI

・・・理解してなくてスマソ
383デフォルトの名無しさん:2011/01/22(土) 01:00:39
384デフォルトの名無しさん:2011/01/22(土) 01:51:59
デリゲートが分からんって奴は、イベントがどういう仕組みになってるかも分からないってこと?
385デフォルトの名無しさん:2011/01/22(土) 08:07:35
デリゲートはどういうときに使うの?
マルチスレッドでフォームにアクセスするときに使うのはわかる。
386デフォルトの名無しさん:2011/01/22(土) 08:17:10
GUIアプリケーションなど、実際に物を作りながら学びたいのですが、
おすすめのサイトや書籍などありますか?
http://msdn.microsoft.com/ja-jp/library/dd492171.aspx
のような感じで、さらに複雑な例があるとうれしいです。
387デフォルトの名無しさん:2011/01/22(土) 10:13:01
XPでプリインストールされるソリティアが使ってる
C:\WINDOWS\system32\CARDS.dll を読み込んで
カード画像のリソース流用できない?
388デフォルトの名無しさん:2011/01/22(土) 11:05:25
デリゲートが如何に有用か知りたい人はJavaのSwingか何かでアプリ作っといで
389デフォルトの名無しさん:2011/01/22(土) 11:10:58
Javaは終わコン
390デフォルトの名無しさん:2011/01/22(土) 11:12:53
391デフォルトの名無しさん:2011/01/22(土) 11:14:19
何度でも甦るさ
392デフォルトの名無しさん:2011/01/22(土) 11:48:37
それを言った男は死んだ
男の言ったものも空の彼方へ消え、永遠に失われたのだ
393デフォルトの名無しさん:2011/01/22(土) 11:49:25
ゴスリンェ・・・
394デフォルトの名無しさん:2011/01/22(土) 12:45:59
遅くなりました…
ポーカーの役判定を質問したものです。
ここまで作りました。
ここからの役判定をどうすればいいですか?
(途中まで書いてありますが無視してくれてかまいません)

http://www1.axfc.net/uploader/File/so/57396
395デフォルトの名無しさん:2011/01/22(土) 12:49:14
ポーカーの役判定懐かしいな
昔マイクロソフトの面接で10分ちょいで紙にコーディングさせられたわ。簡単だった
396デフォルトの名無しさん:2011/01/22(土) 13:07:28
MSKK仕事しろ
397デフォルトの名無しさん:2011/01/22(土) 13:11:47
なんか見るのが嫌になるソースだな・・・w

リソースの画像の管理をもうちょっと整理しろw
398デフォルトの名無しさん:2011/01/22(土) 13:49:54
>>376
どうせコードレビューで叩かれてデリゲートの説明から入るとか、それなら他の方法取った方が楽と思ってしまう
399デフォルトの名無しさん:2011/01/22(土) 13:54:11
>>385
ポリモフィズム実装したい時に
400デフォルトの名無しさん:2011/01/22(土) 14:08:10
>>394
手をつけかけたけどあれこれ整理していくと元ソースとかけ離れそうで
その過程まで説明する羽目になりそうなで挫折・・・

ITエンジニアは効率や整理する能力は要らないのかな?

やっぱり老害にとってはコミュ力(笑)重視?w
効率とかどうでもいいんだよ!!ってこと?
401デフォルトの名無しさん:2011/01/22(土) 14:13:45
そんなちょっとした局所的なコードなんてはっきり言ってどうでもいい
少々汚くても適切にメソッドが分割されてて外に影響しなければ問題ない
402デフォルトの名無しさん:2011/01/22(土) 14:20:19
すみません、質問です。
dataGridView内の行をD&Dで任意の場所に簡単に並べ替えられるようにしたいのですが
一通り検索したやり方では上手く動作してくれませんでした。
また、こちらも苦戦中なのですがdataGridView外のForm1にあるチェックボックスでchecked時にリストの移動をできないという状態にもしたいのです。
こちらは前者のD&Dが実現してからでないと検証のしようがありませんでしょうが…


一応必要かと思われるプロパティ情報を記載しておきます。
・プロパティ
Name
└ "dataGridView1"
AllowDrop
└ "True" //D&Dを許可
SortMode
└ "NotSortable" //列ヘッダでソートしない
SelectionMode
└ "FullRowSelect" //行のみフォーカス
EditMode
└ "EditOnKeystrokeOrF2" //Key入力orF2押下で編集可


どうかご教示のほどよろしくお願いいたします。
403デフォルトの名無しさん:2011/01/22(土) 14:40:52
>>394
http://ideone.com/KWeSj

まーこの際配列化も覚えた方がいいな
配列にすればかなり短くなるコードなのにやたら大きくなってるし
同じようなコードが複数あるのもいただけない

まずはコードの整理をしてからだよw

card01()メソッドを参考に他のも直してみなよ
404デフォルトの名無しさん:2011/01/22(土) 14:56:32
>>394
そんなに無駄に長いコードを書く時間があるならまずC#のいろはを勉強しろといいたい
405デフォルトの名無しさん:2011/01/22(土) 15:03:20
switchを50個も並べるなクソが
406デフォルトの名無しさん:2011/01/22(土) 16:33:53
言語以前にプログラミングの基礎から・・・
407デフォルトの名無しさん:2011/01/22(土) 16:36:48
上から下まで条件式でワラタw
408デフォルトの名無しさん:2011/01/22(土) 16:45:29
まー部分的に教えればいいんじゃね?
メンバ関数の使い方もただコードが長くなるので分離したような感じだし

再利用可能な形に変えるとかさ
409デフォルトの名無しさん:2011/01/22(土) 16:48:37
if文嫌いは8bit、BASIC時代のオヤジだろ。
410デフォルトの名無しさん:2011/01/22(土) 16:54:29
>>409
嫌いとか好きの問題じゃないようなw
逐次制御なマシン上でプログラム組んでる以上はどうやっても分岐は必要になるんだし

ただあまりにも「プログラムをやり出したころの昔の自分のコード」を見てるようで
ちょっとワロタけどw

クラスとかの前にまずはメンバ関数を再利用可能にするとか配列化出きる物は
配列にまとめて簡単なコードにしちゃうとかさw
411デフォルトの名無しさん:2011/01/22(土) 16:56:17
テストしてると自然に減らしたくなってくる
412デフォルトの名無しさん:2011/01/22(土) 17:02:02
ガチ数値計算だと無理矢理にでも減らす
413デフォルトの名無しさん:2011/01/22(土) 17:02:59
今の仕様を一切変更せずに、かつなるべく初心者でも分かりやすいように書くとこんな感じかな。
配列とforをうまく使いましょう。
http://ideone.com/SwEAJ

あとメソッド(関数)の使い方をもっと工夫するべきだよ
cardexchange01からcardexchange05まで全部作るんじゃなくて
cardexchange一個作ってどのカードを変えるかはメソッドの引数で切り替えるみたいな感じで

414デフォルトの名無しさん:2011/01/22(土) 17:06:52
>>413
>あとメソッド(関数)の使い方をもっと工夫するべきだよ
>cardexchange01からcardexchange05まで全部作るんじゃなくて
>cardexchange一個作ってどのカードを変えるかはメソッドの引数で切り替えるみたいな感じで
その辺が上でも言ってる再利用だよ
今はグローバル変数をいじってるし関数名に番号が付いてるのはどれも
ただ処理を切り離しただけに見える

整理して再利用可能にすればもっとすっきりするがその辺を分かってる人が
いきなり全部やっちゃうと何をやったかさっぱりわからない可能性があるので
まずは>>403をやってみろ
415デフォルトの名無しさん:2011/01/22(土) 17:25:00
【週末プログラミング】Ubuntu 11.10からQtを実装へ!GTK+厨死亡
http://hato.2ch.net/test/read.cgi/news/1295633497/

139 名前: はずれ(東京都)[sage] 投稿日:2011/01/22(土) 17:12:51.80 ID:ufXMllHm0
システムエンジニア 生き残りの極意: 実はオブジェクト指向ってしっくりこないんです!
http://el.jibun.atmarkit.co.jp/minagawa/2010/04/post-ebc4.html

さっさと旧石器時代の老人は去れ
こんなのが生きていける業界=効率とは別のところに重きを置きすぎ
だからおかしくなる
416デフォルトの名無しさん:2011/01/22(土) 17:36:21
>staticを理解していない人のコードを見ると、いちいちインスタンス宣言しているので笑ってしまう

斬新過ぎるw
417デフォルトの名無しさん:2011/01/22(土) 17:40:31
コメント欄超盛り上がってるなw
418デフォルトの名無しさん:2011/01/22(土) 17:42:56
>>417
うむ
コラム書くのは事実だが問題は「こんな痛い人がどうどうと発言できる権限を持ってる」事が異常なんだよなw

コミュ力(笑)重視

そりゃ沈むよ
419デフォルトの名無しさん:2011/01/22(土) 17:44:03
>コラム書くのは事実だが
ミス
コラム書くのは自由だが
420デフォルトの名無しさん:2011/01/22(土) 17:49:30
もうその人、自分戦略研究所を除籍になってるんだしいまさらぶり返してやるなよ。
「しっくりこないんです」は釣り定型句として永劫使われるとは思うけどw
421デフォルトの名無しさん:2011/01/22(土) 17:51:55
      ,r;;;;ミミミミミミヽ,,_
    ,i':r"      `ミ;;,
    彡        ミ;;;i
    彡 ,,,,,、 ,,,,、、 ミ;;;!
     ,ゞi" ̄ フ‐! ̄~~|-ゞ,
    ヾi `ー‐'、 ,ゝ--、' 〉;r'  「しっくりこないんです」
    `,|  / "ii" ヽ  |ノ
     't ←―→ )/イ
       ヽ、  _,/ λ、
    _,,ノ|、  ̄//// \、
_,,..r''''"   | \`'/  /    ̄`''ー
      |  /\  /
      |/)::::/\/
      | ,r":::ヽ /  
      |i´:::::::::| /
422デフォルトの名無しさん:2011/01/22(土) 17:57:02
実はあなたとのSEXってしっくりこないんです!
423デフォルトの名無しさん:2011/01/22(土) 17:57:26
@ITは全体的にしっくりこないんです
424デフォルトの名無しさん:2011/01/22(土) 18:04:04
誰と戦ってるんだwww
425デフォルトの名無しさん:2011/01/22(土) 18:06:14
実は>>424ってしっくりこないんです!
426デフォルトの名無しさん:2011/01/22(土) 18:35:38
誰と
427デフォルトの名無しさん:2011/01/22(土) 18:42:51
http://wonderfulsky.web.fc2.com/memo.html
割と本人はオブジェクト指向に理解を示そうと努力してるみたいだぜww
叩かれた時からこのくらいの姿勢でいればいいのに
428デフォルトの名無しさん:2011/01/22(土) 18:55:59
C#ってintの初期化をせずに使った場合中身は0クリアが保証されてるんだっけ?

>>394
のタイマーの動作のところいじってて気が付いたんだが・・・
429デフォルトの名無しさん:2011/01/22(土) 18:58:01
されてる
430デフォルトの名無しさん:2011/01/22(土) 18:58:42
NyaRuRuちゃんはゼロページ初期化だって言っていた気がする
なんにせよ構造体なので0かnullしか入らないけど
431デフォルトの名無しさん:2011/01/22(土) 19:06:45
フィールドかローカル変数かで違ったような....C#じゃない言語と混同してるかもしれんが
432デフォルトの名無しさん:2011/01/22(土) 19:08:13
>>428
クラスとか構造体のメンバーは、明示しないと0クリアで保証されてる。
ローカル変数とかはそもそも未初期化利用不可。
433デフォルトの名無しさん:2011/01/22(土) 19:09:29
>>427
もうやめてあげて!おじいちゃんをいじめないで!
434デフォルトの名無しさん:2011/01/22(土) 19:11:23
「未割り当てのローカル変数にアクセスしようとしています」とごっちゃになってるのだろ。
435デフォルトの名無しさん:2011/01/22(土) 19:13:44
そこはやめたげてよぉ!だろ
436デフォルトの名無しさん:2011/01/22(土) 19:14:07
なにそれ
437デフォルトの名無しさん:2011/01/22(土) 19:15:19
>>434
そこは問題ないだろ
.netだとわりあてねーぞごら!!って言うし
438デフォルトの名無しさん:2011/01/22(土) 19:52:55
オブジェクトは判るけど、文字列ぐらいデフォルトで初期化しろと何時も思うよな
439デフォルトの名無しさん:2011/01/22(土) 19:56:53
>>437
少なくともVB.Netでは使えるし、ループ内の変数を毎回初期化してないのが原因の不具合も見たことがあるが
440デフォルトの名無しさん:2011/01/22(土) 19:59:28
VB.NETでもOptionStrictOnにしてたら通らないよ
普通Onにするだろけどね、VB6上がりのおのぼりプログラマでなければ
441デフォルトの名無しさん:2011/01/22(土) 20:01:54
最近Pythonとjavascriptばっかり書いてる
C#が恋しいよお
442デフォルトの名無しさん:2011/01/22(土) 20:03:13
長く触ってないからよく覚えてないけどVB.NETではOption Strict Onでも通るんじゃなかったか
初期化しなかったら自動で規定値に初期化されることになってたはず
443デフォルトの名無しさん:2011/01/22(土) 20:05:40
visual c#の課題についての質問なんですが
http://ideone.com/GOymD
にあるプログラムにMyCircleというクラスを追加して
ウインドウサイズを変更した際も表示が同じになるよう
にしたいのですがよくわかりません。
課題ではMyCircle型のコレクションクラス
に円を格納するクラスを作り、MyCircleクラスにメソッドDraw
を追加し、それを呼び出しすべての円を描くようDrawCirclesを
書き換えろという風になっているのですが、コレクションクラス
の配列を用意しそれを利用する方法ががよくわかりません。
お願いします。

444デフォルトの名無しさん:2011/01/22(土) 20:07:40
C#が課題になる学校なんてあるんだ
高校?大学?
445デフォルトの名無しさん:2011/01/22(土) 20:09:16
スレチ
446デフォルトの名無しさん:2011/01/22(土) 20:10:00
>ウインドウサイズを変更した際も表示が同じになるよう
どう同じになればいいのかがわからない
447デフォルトの名無しさん:2011/01/22(土) 20:42:20
ウインドウサイズを変更した場合も表示がどのように同じになるかわからんけど
それを抜いた残りの仕様はこれでいいのかな?
http://ideone.com/745u8
448デフォルトの名無しさん:2011/01/22(土) 20:58:41
>>447
乱数に関してはこうした方がいいな
http://ideone.com/KFiWg
449デフォルトの名無しさん:2011/01/22(土) 21:06:13
なんで?
450デフォルトの名無しさん:2011/01/22(土) 21:08:42
一つのインスタンスを使いまわすのとクラス毎で作るの
では出来上がる画像に違いがあるかなあと

動かしてみればわかるよ

毎度ランダムのインスタンス作る方はばらつき感がイマイチ
451デフォルトの名無しさん:2011/01/22(土) 21:43:33
実は>450ってしっくりこないんです!

staticを理解していない人のコードを見ると、いちいちコンストラクタのパラメータで渡しているので笑ってしまう
452デフォルトの名無しさん:2011/01/22(土) 21:51:43
同じメソッド何回も使うならstaticよりも実体化させてからの方が速いんじゃないの?
そのメソッドに関連する変数が複数あるならクラスのフィールド変数にした方がいいし

453デフォルトの名無しさん:2011/01/22(土) 21:57:37
実はしっくりこないんです
454デフォルトの名無しさん:2011/01/22(土) 22:01:59
>>452
そういうことじゃなくて
>>448のRandom _rnd;は
static Random _rnd = new Random();
でもいいよねっていうのを>>415-416の流れを踏まえつつ茶化してみただけなんだけど
わざわざ説明させんなよ
455デフォルトの名無しさん:2011/01/22(土) 22:03:12
オブジェクト指向においてstaticって逆に気持ち悪い・・・
456デフォルトの名無しさん:2011/01/22(土) 22:22:38
気持ち悪いかどうかで語るのはしっくりこないんです
457デフォルトの名無しさん:2011/01/22(土) 23:01:20
シングルトンを作る仕事ありますか?
458デフォルトの名無しさん:2011/01/22(土) 23:12:25
一人暮らしの豚?
間に合ってるよ
459デフォルトの名無しさん:2011/01/22(土) 23:27:39
シングルトンっていうのがあるのか
これってたとえばFormのLoadの段階で一つ作って
Form1とかでインスタンスを管理してる場合は
Form1の配下で作るどこかのクラスでインスタンスを作った場合は
Loadイベントで作った物を共有することになるの?
460デフォルトの名無しさん:2011/01/22(土) 23:29:01
実はオブジェクト指向ってしっくりこないんです!
461デフォルトの名無しさん:2011/01/22(土) 23:30:41
>>459
シングルトンはインスタンスをstatic変数にしてグローバルで共有してるだけ
つまりはグローバル変数
害悪もグローバル変数と同様だけど名前がかっこいいので誤魔化せる
462デフォルトの名無しさん:2011/01/22(土) 23:33:38
>>461
>グローバル変数
なるほど

でもこれって書き換えをしない情報の共有ならいいかもね

C#の標準の値クラスってどう実装してるのか気になってたけどこういう感じなのかな?
Pensとかいろいろあるじゃん
463デフォルトの名無しさん:2011/01/22(土) 23:41:08
普通にstatic使ってるだけだろw
464デフォルトの名無しさん:2011/01/23(日) 00:07:56
さすがに>>461の話は酷い....
465デフォルトの名無しさん:2011/01/23(日) 00:15:01
正直あまり使った記憶がない

生成にある程度コストがかかり、尚且つ参照範囲が広いもの…か
466デフォルトの名無しさん:2011/01/23(日) 00:21:33
違うよ
シングルトンは本来、複数インスタンスを作ったら、そのクラスが仕様上正しく動作しないような場合に使うもの
そうではないけどアプリケーション全体で一つしかいらないような場合は、シングルトンにするのではなくて
static class SharedObjects { public static Hoge Hoge { get; } } みたいに持つべき
でも実際には安易にグローバル変数として使われるけど
467デフォルトの名無しさん:2011/01/23(日) 00:27:45
>>466の例が良いと言ってるんじゃないよ。実質SharedObjects.Hogeもグローバル変数だし。
全体で一つしかいらないものをどうやって持つかは色々あるけど、それは別にして
シングルトンは本来グローバル変数を作るためのパターンじゃないということが言いたかっただけ。
468デフォルトの名無しさん:2011/01/23(日) 00:31:30
グローバル変数って何?
C#ではどう頑張ってもクラスメンバーにしかならないと思うんだけど
469デフォルトの名無しさん:2011/01/23(日) 00:36:03
public static なメンバーはグローバル変数と同じようなはまりどころもあるよってことかと。
ほんとの意味でグローバルなものみたいに名前衝突で困ることはないけども、
同時アクセスとかでははまる。
470デフォルトの名無しさん:2011/01/23(日) 00:42:47
依存してるクラスの独立性を下げてしまうという意味じゃグローバル変数と一緒だ
テストしにくくなったり見通しが悪くなったり
471デフォルトの名無しさん:2011/01/23(日) 00:46:39
VisualC#を使っているのですが,いまいちクラスの使い方やオブジェクト指向が理解できません.
わかりやすく解説してくれているサイトとか知っていたら教えてくれませんか?
472デフォルトの名無しさん:2011/01/23(日) 00:56:59
独習 C# なり買ってきて勉強してください
473デフォルトの名無しさん:2011/01/23(日) 00:57:44
474デフォルトの名無しさん:2011/01/23(日) 00:58:41
javaから入るのが楽
初心者向けの本やサイトが多い
475デフォルトの名無しさん:2011/01/23(日) 01:00:19
>>473
そのサイトはある程度理解している人が使うもんだと思っていたが。
476デフォルトの名無しさん:2011/01/23(日) 01:12:23
色々作ったけど未だにオーバーライドの存在意義がわからん
477デフォルトの名無しさん:2011/01/23(日) 01:14:02
>>471
オブジェクト指向はゲームとか作ってみるといいかもしれないが・・・

>>476
メンバ関数を張り替えたいときだろ
478デフォルトの名無しさん:2011/01/23(日) 01:27:32
全ての型は Object 型を継承します。
Object 型は 3 つの仮想メソッドを持ちます。
例えば
ToString
メソッドは、オブジェクトを文字列にするメソッドで、これをオーバーライドすることにより
Console.WriteLne(object)
に渡した時に表示する文字列を変更することが出来ます。
479デフォルトの名無しさん:2011/01/23(日) 02:18:27
>>474
デザインパターン本とか未だにJavaの方が充実しているよな
俺も結城さんの本からオブジェクト指向勉強した
480デフォルトの名無しさん:2011/01/23(日) 02:32:57
Javaのデザインパターンのいくつかは、すでに言語機能になっててパターンとして覚えるものじゃなくなってはいるけども。
481デフォルトの名無しさん:2011/01/23(日) 02:45:01
初心者がデザパタとか無意味極まりない
482デフォルトの名無しさん:2011/01/23(日) 02:51:00
豚に真珠
初心者にデザパタ
>>476にオーバーライド
483デフォルトの名無しさん:2011/01/23(日) 02:51:46
結城デザインパターン本をC#に書き換えてるサイトがどこかにあった
484デフォルトの名無しさん:2011/01/23(日) 02:56:55
>>481
そんなことはない
485デフォルトの名無しさん:2011/01/23(日) 03:00:48
>>480
デリケートとイベントが登場して、こんなに簡単にできるようになるのかと驚いた物だよな
後デザパタの基本を知らないと、オーバーライドとかアブストラクトのありがたみも理解できないわ
486デフォルトの名無しさん:2011/01/23(日) 03:04:29
必要になったら覚えればそれでいい
必要にならなければ儲け物だろう?無駄な機能ってことだからな

中二病よろしく何にでも存在意義を求めるのを止めなさい
487デフォルトの名無しさん:2011/01/23(日) 03:14:13
ジェネリックスもデリゲートも無い環境で作られたものだからな
488デフォルトの名無しさん:2011/01/23(日) 03:26:37
>>486
>必要になったら覚えればそれでいい
ここは同意できるが
>無駄な機能ってことだからな
ここは同意できない

使えなくても存在意義は把握しているべき
そうしないと本当に必要なときに必要だとわからない

>>487
C原語でもやってろ
489デフォルトの名無しさん:2011/01/23(日) 03:34:24
抽象クラスとかほとんど使わないしw
490デフォルトの名無しさん:2011/01/23(日) 03:41:32
健忘症だから抽象クラス使うぞ
491デフォルトの名無しさん:2011/01/23(日) 03:41:44
へぇ、ImageクラスもStreamクラスもほとんど使ったことないんだ
492デフォルトの名無しさん:2011/01/23(日) 03:49:42
そういうことならObjectも使ってるお!
493デフォルトの名無しさん:2011/01/23(日) 03:53:35
Objectは抽象クラスじゃないぞ☆
494デフォルトの名無しさん:2011/01/23(日) 03:58:29
アホすw
495デフォルトの名無しさん:2011/01/23(日) 04:09:15
例えばドキュメントを生成するクラス作るのに抽象クラスなしとか考えられないよな
何十も全く違う扱いするとかあり得ない
496デフォルトの名無しさん:2011/01/23(日) 04:15:56
つインターフェース
497デフォルトの名無しさん:2011/01/23(日) 04:23:30
ナンデヤネ──ン(*´▽`)ノ.+゚*。:゚+
498デフォルトの名無しさん:2011/01/23(日) 04:31:20
>>496
で、実装は似たクラスをコピペしてDBと列を弄るだけかぁ
499デフォルトの名無しさん:2011/01/23(日) 04:34:20
なにそれこわい
500デフォルトの名無しさん:2011/01/23(日) 04:34:42
すいません
>>447 のプログラムなんですが、表示を円から三角形に改造すると
どんな感じになります?
501デフォルトの名無しさん:2011/01/23(日) 04:40:35
それくらい自分でガン( ゚д゚)ガレ
502デフォルトの名無しさん:2011/01/23(日) 11:33:26
抽象クラスをコードの使い回しに使うと嵌ることあるから気をつけろよ
503デフォルトの名無しさん:2011/01/23(日) 11:42:59
抽象クラス使うとしても、その上にインターフェイスは被せておくのがジャスティス
504デフォルトの名無しさん:2011/01/23(日) 12:05:29
そういうことするのは主にテスト用
本来のインターフェイスの使い方からはちょっと外れる
505デフォルトの名無しさん:2011/01/23(日) 12:09:28
>>443
>ウインドウサイズを変更した際も表示が同じになるようにしたい
これって全部円が納まるエリアを計算してアス比とか調整して描画する必要があるってことかね?

その辺が気になって範囲を求めるロジック書いてたんだがこれより早くする方法はないだろうか?
これはテスト用なのでLineだけど
http://ideone.com/A7snI
506デフォルトの名無しさん:2011/01/23(日) 12:12:26
上の方でデザインパターンの話してるのに実装継承を重視されてGoF涙目w
507デフォルトの名無しさん:2011/01/23(日) 12:30:24
構造体のメンバーに対して順次アクセスする手段はありますか?
イメージとしてはコレクションに対するforeachのような感じです
508デフォルトの名無しさん:2011/01/23(日) 12:36:47
>>507
その用途ならディクショナリーでも検討してみたら?
509デフォルトの名無しさん:2011/01/23(日) 12:45:36
>>504
どういうこと?
510デフォルトの名無しさん:2011/01/23(日) 12:48:08
テストで差し替えるためだけに何でもかんでもインターフェイスにするんだよ
実際の実装クラスは多くの場合一つだけ
C++のヘッダに近い扱い
511デフォルトの名無しさん:2011/01/23(日) 12:50:38
ん?しっくりこないんですが
512デフォルトの名無しさん:2011/01/23(日) 12:54:42
しっくりこないが、大丈夫か?
513デフォルトの名無しさん:2011/01/23(日) 12:55:51
インターフェイスってしっくりこないんです(←マジで言ってそう)
514デフォルトの名無しさん:2011/01/23(日) 12:56:37
>>508
そうしたいのは山々なんですが、既存システムとして多くの箇所で
構造体が使われてしまっているので、全てを直すのは難しいです
今のところは構造体にコレクションを返すメソッドでも個別に定義していくしかないかと
考えているのですが、別の手段があれば参考にしたいなと思って質問しました
515デフォルトの名無しさん:2011/01/23(日) 13:00:04
「構造体のメンバー」のメンバーってフィールドのことを指しているのかなひょっとして。
ガッツ石松じゃないんだから言葉は正確に使って欲しいよな
生Cじゃないんだからメンバーって言われても.....
516デフォルトの名無しさん:2011/01/23(日) 13:00:19
リフレクション使えばできるけど、既存の構造体を使うだけなんだったら実行時にリフレクションするより
ディクショナリに変換するメソッドをあらかじめ自動生成してしまうのがいいと思う
リフレクションで舐めてプロパティの情報を取得して、C#のソースを機械的に吐くだけ
517デフォルトの名無しさん:2011/01/23(日) 13:00:53
つ リフレクション

速度とトレードオフなので十分に検討してくださいね
518デフォルトの名無しさん:2011/01/23(日) 13:01:22
>>510

>>502-504の流れがおかしいってことだろw
あとクラスの継承より委譲使った方がC#っぽいかもね
519デフォルトの名無しさん:2011/01/23(日) 13:03:35
>>515
メンバでもよくね?
http://msdn.microsoft.com/ja-jp/library/0taef578%28v=vs.80%29.aspx
> 構造体メンバを既定値に初期化する既定の(ry
520デフォルトの名無しさん:2011/01/23(日) 13:08:05
>>519
正式な規定は記憶の彼方だが、メンバーはパブリックでフィールドはプライベートって認識
プロテクテッドもメンバーかな?
521デフォルトの名無しさん:2011/01/23(日) 13:09:49
>>516-517
ありがとうございます
参考に致します
522デフォルトの名無しさん:2011/01/23(日) 13:11:16
メンバはグループの直下に宣言されてる要素の総称
プロパティ・フィールド・メソッド・イベントはその外側のクラスのメンバ
クラスやデリゲートなどを名前空間のメンバと呼ぶこともある
523デフォルトの名無しさん:2011/01/23(日) 13:45:46
>>503
実はインターフェイスの方がバージョニングに問題あるよ。
メソッド追加した時に、実装側の修正も必要になる。

抽象クラスなら、abstractじゃなくてvirtualにすれば派生クラス側の修正要らない。

あと、あんまりインターフェイスを分割しすぎるとロード時のパフォーマンスに問題出るみたい。
524デフォルトの名無しさん:2011/01/23(日) 13:46:08
>>521
Reflection.EmitとかLinq.Expressionsを使ってレビュアーを恐怖のどん底に落とそうぜ
525デフォルトの名無しさん:2011/01/23(日) 13:52:37
>>519
C#の仕様書(http://msdn.microsoft.com/ja-jp/library/ms228593.aspx)だと、

メンバー … メソッドとかプロパティとか定数とかフィールドとか全部
フィールド … C++で言うところのメンバー変数

になってる。

メンバーは、例えば、名前空間直下のクラスのことを指して「名前空間のメンバー」とかでも使ってる。

>>520
その文面、2008とか2010では削除されてるね。
526デフォルトの名無しさん:2011/01/23(日) 13:57:17
>>523
もう滅茶苦茶だなw
527デフォルトの名無しさん:2011/01/23(日) 14:05:29
C#とC++がありますが、
既存はC#で作っているアプリがあります。
これをC++に直すメリットってありますか?
528デフォルトの名無しさん:2011/01/23(日) 14:09:07
純C++?C++/CLI /clr?/clr:pure?
529デフォルトの名無しさん:2011/01/23(日) 14:11:10
>>523
公式のガイドラインでも可能ならインターフェイスより抽象クラス使えっていうのがあるけど
実際のところMSのC#製アプリは基本>>510スタイルだったりする
530デフォルトの名無しさん:2011/01/23(日) 14:16:50
>>529
いや、でも、Javaと比べるとさ、インターフェイス少ないと思うよ。
Stream クラスがインターフェイスじゃないとか、ReadとWrite分かれてないとか。
531デフォルトの名無しさん:2011/01/23(日) 14:21:15
>>443
これを改造すればなんとかなるかね?
http://ideone.com/IfYO8
532デフォルトの名無しさん:2011/01/23(日) 14:37:20
>>530
>>529はアプリケーションの話ね
Expression Blendとかそうだよ
クラスライブラリは本当に変更がきかないからもっと保守的
533デフォルトの名無しさん:2011/01/23(日) 14:38:38
1.1時代のライブラリは間抜けな実装が多い気がする
534デフォルトの名無しさん:2011/01/23(日) 14:38:38
多重継承できないのがな・・・
535デフォルトの名無しさん:2011/01/23(日) 14:38:54
DataGridView内のチェックボックスにチェックがついてる行を一括で削除するボタンを作りたいのですが
どうやれば出来ますでしょうか?

現在自分で書いてみたのは

private void button9_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow r in dataGridView1.Rows)
{
if (((string)Column5.TrueValue) == "1")
{
// チェック行をクリア
(ここが上手くいきません)
}
}
}

どなたかお助けお願いいたします
536デフォルトの名無しさん:2011/01/23(日) 14:41:38
foreachの中でコレクションの個数や順序を変更しちゃ駄目だ
とりあえずチェックされてるrowだけ別のリストに取り出して
Rows.Removeで消せ
537535:2011/01/23(日) 14:55:07
>>536
レスありがとうございます。
TrueValueを"1"と定義しているのでifで1になってる時、としたつもりでした

>チェックされてるrowだけ別のリストに取り出して
初心者なものですみません、DataTableで抽出ということであってますでしょうか?
538デフォルトの名無しさん:2011/01/23(日) 14:56:49
ループ内で削除するときはインデックスの大きい方から回す

for(int i=dataGridView1.Rows.Count-1;i>=0;i--)
{
DataGridViewRow r = dataGridView1.Rows[i];

って感じ
539デフォルトの名無しさん:2011/01/23(日) 15:04:00
最初にこの問題に引っかかった時、逆順ループが思い浮かばずスタックに積んだのは良い思い出
540デフォルトの名無しさん:2011/01/23(日) 15:11:37
たとえばDictionary<,>の操作だったらパフォーマンスのことも気にする場合はあるかもしれないけど
DataGridViewが出てくる時点でどうでもいい
どうせコントロールの操作に比べれば誤差
541デフォルトの名無しさん:2011/01/23(日) 15:13:11
>>540
ていせい
インデックスで回すんだからDictionaryじゃなくてListか
542デフォルトの名無しさん:2011/01/23(日) 15:31:39
>>443の最終版
要望にあってるかね?

http://ideone.com/hsEFS

543デフォルトの名無しさん:2011/01/23(日) 15:39:56
どれくらい円を描いてるか分かるバージョン
http://ideone.com/E3Ua3
544535:2011/01/23(日) 16:35:40
ずっと頑張っていましたがあまりに知識不足で先へ進めませんでした・・・

InvailidOperationExceptionはハンドルされませんでした。
 コミットされていない新しい行を削除することはできません。

とエラーが出て、調べてみたところユーザーが行の追加可能にチェック入れてると出ると書いてあったので外してみましたが改善されませんでした。
C言語初めてまだ一ヶ月も経ってないのでいろいろと勉強不足ですね・・・
545デフォルトの名無しさん:2011/01/23(日) 16:37:48
BindingSource使ってるならそっちを削除しないと駄目
546デフォルトの名無しさん:2011/01/23(日) 16:38:54
たぶん今度は削除したのに更新されませんと来る
547デフォルトの名無しさん:2011/01/23(日) 16:39:54
DataSourceかもしれないじゃん。
548デフォルトの名無しさん:2011/01/23(日) 16:45:00
だったらDataTableの行でも何でも削除すればいいじゃないですかァーーーーーーーーーーーーーーーーーッ
549デフォルトの名無しさん:2011/01/23(日) 17:05:51
誘導されてきました
string data1 = "[value1] value2";
と言う場合変数data1の[ ]の中だけ(value1を抜き出したい)の文字列を抜き出して、他の変数にコピーしたいんです
そういうメソッドはありませんか?よろしくお願いします
550デフォルトの名無しさん:2011/01/23(日) 17:14:53
>>549
String.Substring
http://msdn.microsoft.com/ja-jp/library/system.string.substring%28v=VS.100%29.aspx

使い方説明読んで自分で考えろ
551デフォルトの名無しさん:2011/01/23(日) 17:18:52
System.Text.RegularExpressions.Regex.Match
使い方は聞かれてないんで書かない
552デフォルトの名無しさん:2011/01/23(日) 17:35:21
553デフォルトの名無しさん:2011/01/23(日) 17:36:50
ワラタ
554デフォルトの名無しさん:2011/01/23(日) 17:41:58
空気読めよ
555デフォルトの名無しさん:2011/01/23(日) 17:42:39
string.Join("", data1.SkipWhile(c => c == '[').TakeWhile(c => c != ']').Select(c => c.ToString()));
556デフォルトの名無しさん:2011/01/23(日) 17:44:13
まさかのIOC(S)CC開催
557デフォルトの名無しさん:2011/01/23(日) 17:48:08
IOCCCなつかしす
558デフォルトの名無しさん:2011/01/23(日) 17:56:24
>>555
ちぃ覚えた
559デフォルトの名無しさん:2011/01/23(日) 17:56:29
http://ja.wikipedia.org/wiki/IOCCC
>IOCCCとは「The International Obfuscated C Code Contest(国際邪悪なCコードコンテスト)」の略称。
>故意に読みづらいC言語のコードを書き、その汚さなどを競うというハッカーの奇祭である。
ワロチ
560デフォルトの名無しさん:2011/01/23(日) 17:57:31
>>555
熱いw
561デフォルトの名無しさん:2011/01/23(日) 17:59:34
>>552
なんかそれ汚くね?どうせ書くなら
\[[^]]*\]
だろ?
わざとかもしれんけど初心者スレだし念のため
562デフォルトの名無しさん:2011/01/23(日) 18:04:14
>>561
こうじゃないのか?
(\[)([^]]*)(\])
563デフォルトの名無しさん:2011/01/23(日) 18:04:25
>>555
凶悪だw
展開したくなるw
564デフォルトの名無しさん:2011/01/23(日) 18:04:45
プログラミングがなんなのかすら知らない状態からC#を勉強するならどんな本がおすすめですか?
565デフォルトの名無しさん:2011/01/23(日) 18:05:03
(Y)o\o(Y) フォッフォッフォッ
566デフォルトの名無しさん:2011/01/23(日) 18:05:58
>>562
俺はこっちのが好み。MS独自仕様っぽいけど
\[(?<str>[^]]*)\]
m.Groups["str"].Value
567デフォルトの名無しさん:2011/01/23(日) 18:07:55
それの回答は意外と難しいんだよね
独習なんかは言語仕様にしか触れないもんね
ほぼ全てのC#コンパイラがCLI、ひいては.NETを移植する形で実装されているのにさ
568デフォルトの名無しさん:2011/01/23(日) 18:15:15
>>564
全くの初心者が読んで分かるようなC#の本はないよ
こういう本から段階踏んでいくしかない
http://www.amazon.co.jp/dp/4822283151
569デフォルトの名無しさん:2011/01/23(日) 18:15:49
>>566
そうなんだ
http://ideone.com/jPRfr
一応>>562の実行ソース
570デフォルトの名無しさん:2011/01/23(日) 18:24:52
うん
571デフォルトの名無しさん:2011/01/23(日) 18:28:06
オレオレも
http://ideone.com/95sND
572デフォルトの名無しさん:2011/01/23(日) 18:45:15
お前らほんとわかってないな
>>549は[value1[nest1[nest2]]] value2だった場合
value1[nest1[nest2]]じゃなきゃだめかもしれないじゃないか

だからこうしないと
var r = new Regex(@"[^\[\]]*(((?'open'\[)[^\[\]]*)+((?'close-open'\])[^\[\]]*)+)*(?(open)(?!))");
var m = r.Match(data1).Groups["close"];
573デフォルトの名無しさん:2011/01/23(日) 18:50:05
はい
574デフォルトの名無しさん:2011/01/23(日) 18:51:50
RegexOptions.IgnorePatternWhitespaceつけろよデコスケやろう
575デフォルトの名無しさん:2011/01/23(日) 18:56:15
>m.Groups["str"].Value
これ知らなかったな
MSアホだからできないのだと思ってた
576デフォルトの名無しさん:2011/01/23(日) 18:56:15
\Dってなんだっけと思ったら\[)だった
577デフォルトの名無しさん:2011/01/23(日) 18:57:41
>>575がアホだからできなかっただけでした、残念!
578デフォルトの名無しさん:2011/01/23(日) 19:01:49
>>577
すまねぇ俺が悪かった・・・だから>>575は許してやってくれ・・・
579デフォルトの名無しさん:2011/01/23(日) 19:07:34
MSだとそんなアホ仕様もあり得る
580デフォルトの名無しさん:2011/01/23(日) 19:08:30
このスレだけで4、5回はGroups[string]が出てるのに…
581デフォルトの名無しさん:2011/01/23(日) 19:12:37
MSの糞独自仕様だとしても抽出範囲に名前つけれるのはすごく便利
正規表現の取り込み範囲バグとか想像しただけでうんざりだ
582デフォルトの名無しさん:2011/01/23(日) 19:17:25
久々に人がいるな

↓ここまで俺の自演禁止
583デフォルトの名無しさん:2011/01/23(日) 19:19:48
自演とかしっくりこないんです!
584デフォルトの名無しさん:2011/01/23(日) 19:19:49
人?スクリプトの間違いだろ
585デフォルトの名無しさん:2011/01/23(日) 20:12:01
>>555
これがIOCCCとか凶悪って。
現場でLinqを使えるようになるのはまだまだ先だな。
586デフォルトの名無しさん:2011/01/23(日) 20:20:30
SkipWhile、TakeWhileはいいけど、IQueryable<char>→stringの変換には悪意を感じる
ToArrayしてコンストラクターに渡せばいいやん
587デフォルトの名無しさん:2011/01/23(日) 20:25:57
(クエリは同じ).Aggregate((s, c) => s + c) が素直だけど非効率
588デフォルトの名無しさん:2011/01/23(日) 21:43:40
スクリプトの間違いだろ キリッ
589デフォルトの名無しさん:2011/01/23(日) 21:55:39
スクリプトの間違いだろ キリッ キリッ
590デフォルトの名無しさん:2011/01/23(日) 22:07:12
スクリプトの間違いだろ キリッ^3
591デフォルトの名無しさん:2011/01/23(日) 22:21:38
一番いいLinqを頼む
592デフォルトの名無しさん:2011/01/23(日) 22:31:55
コーディング規約でラムダ式とLinqは禁止にしました。
多人数で保守できる文法じゃありません。
593デフォルトの名無しさん:2011/01/23(日) 22:33:27
うわぁ
594デフォルトの名無しさん:2011/01/23(日) 22:34:37
JavaScript書くとき関数リテラルも禁止するの?
595デフォルトの名無しさん:2011/01/23(日) 22:37:00
まあ、現場によっては仕方無いんじゃねーかなあ。
学習に掛ける時間が取れない場合も有るかもだし。
(個人にだったら、 「もっと頑張れよ」 って言うけど)

酷い所だと、オブジェクト指向の採用すら出来なかったりするらしいからな…。
596デフォルトの名無しさん:2011/01/23(日) 22:43:02
というか、匿名メソッドが理解出来ればラムダ式で躓く事ってそんなに無いのでは
597デフォルトの名無しさん:2011/01/23(日) 22:46:21
確かに今までC書いてましたとかJava書いてましたって人にはつらいよな
598デフォルトの名無しさん:2011/01/23(日) 22:49:03
そんな規約作られたら嫌がらせにArray.FindAll使うよ絶対
599デフォルトの名無しさん:2011/01/23(日) 22:53:01
性格の悪い奴はテスターに格下げです。
600デフォルトの名無しさん:2011/01/23(日) 22:56:11
レベル低い人でもやらせればそれなりにできちゃうもんだとは思うけどね。

Linqを理解できないレベルのひとは、おそらくそれ以外の部分の理解だってそうとう
怪しいレベルだと思うけど、まあ、使えちゃってるわけでしょ?
601デフォルトの名無しさん:2011/01/23(日) 23:05:14
コーディング規約かあ。
あんまし関係無い話だけど、フィールドとかプロパティとかメソッドとかの命名規則ってどうしてる?
602デフォルトの名無しさん:2011/01/23(日) 23:06:29
命名はmsが用意してるじゃん…
603デフォルトの名無しさん:2011/01/23(日) 23:12:05
だいたい.netの標準ライブラリに則ってる
604デフォルトの名無しさん:2011/01/23(日) 23:12:51
・privateな要素はキャメル記法
・publicな要素はパスカル記法
・プレフィクスは用いない
・アンダーバーは用いない

だっけ?
605デフォルトの名無しさん:2011/01/23(日) 23:14:56
606デフォルトの名無しさん:2011/01/23(日) 23:16:17
あくまでクラスライブラリのガイドラインなので
privateというか外から見えない部分については踏み込んでないし
再利用性を考える必要がないものについては規定してない>MSのガイドライン
607デフォルトの名無しさん:2011/01/23(日) 23:16:40
MSのコードではフィールドは先頭アンダーバー+キャメルケースが多い
608デフォルトの名無しさん:2011/01/23(日) 23:18:53
俺、クラス名にプレフィクスTとか付けちゃってるわ…
長らくDelphi使ってた頃の名残が。。
609デフォルトの名無しさん:2011/01/23(日) 23:21:46
俺もprivateフィールドはアンダーバー付けるな
610デフォルトの名無しさん:2011/01/23(日) 23:21:46
プロパティのフィールド名→先頭一文字を小文字に変更って規約にする奴はマジで死んでほしい
ハンガリアンより効率が落ちる
611デフォルトの名無しさん:2011/01/23(日) 23:22:31
ClassでCとかStructでSなら分かるけどTってTypeであることを明示して何の意味が?
型か型じゃないか混同する場面は無いでしょw
612デフォルトの名無しさん:2011/01/23(日) 23:25:05
>>610
private string displayName;
public string DisplayName
{
  get{ return (displayName);
}

こういう記法を辞めろって事?
613デフォルトの名無しさん:2011/01/23(日) 23:27:30
http://www.amazon.co.jp/dp/4891006765/
MSの人のかいたガイドラインの本
614デフォルトの名無しさん:2011/01/23(日) 23:29:42
.NET Frameworkのライブラリは外から見えない名前の規約についてはバラバラだよ
MSではとくに統一されてなくてチームごとに違うっぽい
615デフォルトの名無しさん:2011/01/23(日) 23:31:46
>>612
return に括弧付ける意味が分からない。
616デフォルトの名無しさん:2011/01/23(日) 23:32:20
public class MyClass
{
  private string _displayName;
  public string DisplayName
  {
    get { return (_displayName); }
  }

  public MyClass(string displayName)
  {
    _displayName = displayName;
  }
}

>>612
引数をフィールドに代入する事も考えると、この方が好みかも
617デフォルトの名無しさん:2011/01/23(日) 23:32:55
>>613
この本でも、複数の意見を併記してたね。
618デフォルトの名無しさん:2011/01/23(日) 23:36:53
>>613
どうでもいいけど中古のほうが高いってどういうことだよ
619デフォルトの名無しさん:2011/01/23(日) 23:37:26
プライベートでプロバティ定義する時どうする?
620デフォルトの名無しさん:2011/01/23(日) 23:39:35
アマゾンはワンクリックで買うボタンがあるから、
間違って押すのを狙ってんじゃね?
621デフォルトの名無しさん:2011/01/23(日) 23:40:32
>>612
おう、こんなんでPropertyChangedが発生しない不具合とか出来ても下らないから
あとprivate TypeName typeName;って命名もIntelliSenseが誤爆してウザい

>>619
System.Globalizationとかはパスカル記法だったと思う
622デフォルトの名無しさん:2011/01/23(日) 23:40:33
自分は、プロパティはprivateでも普通にPascalCaseにするなぁ。
623デフォルトの名無しさん:2011/01/23(日) 23:41:08
俺はprivateのメソッドやフィールドもパスカルだわ
プロパティで自動実装できないものは仕方ないから_付けてる
624デフォルトの名無しさん:2011/01/23(日) 23:42:01
>>616
.netの中はこれが一番多いからこれにしてる
迷った時はリフレクション使ってのぞけばいいよ
オレオレ命名は癌
625デフォルトの名無しさん:2011/01/23(日) 23:43:55
>>616以外がいることに驚き
色々なサンプルもこれ
prismなんかのフレームワークもこれなのに…
626デフォルトの名無しさん:2011/01/23(日) 23:45:12
え?自動実装使わないの?
627デフォルトの名無しさん:2011/01/23(日) 23:47:14
自動実装プロパティ便利だし、書くのも楽なんだけれど
自動実装プロパティと、自動実装じゃないプロパティが混在してるのが何となく嫌で
個人的には使わなくなった。
628デフォルトの名無しさん:2011/01/23(日) 23:48:05
プライベートメソッドのほうが悩む
アンダバー付けていいのかどうかを・・・・・
629デフォルトの名無しさん:2011/01/23(日) 23:50:07
メソッドにアンダーバーはないわ。
630デフォルトの名無しさん:2011/01/23(日) 23:50:10
書くのが楽 = 他人が読めない
631デフォルトの名無しさん:2011/01/23(日) 23:50:20
まあ、privateは別にそこまで気にして統一する必要もないし。
自分は _camel と camel 混在してること多い。

あと、自動コード生成で作るコード限定で、

private T _Name = defaultValue;
public T Name { get; set; }

があったりも。生成元にNameとnameを書きたくないし、自動でcase変更するようなプログラム書くのも嫌だし。
632デフォルトの名無しさん:2011/01/23(日) 23:51:17
>>629
ところがどっこいMSのソースにあるんだよ
633デフォルトの名無しさん:2011/01/23(日) 23:51:51
>>625
Dictionaryのプライベートフィールドは_無しだったりするわけで、
プライベートのものはバラバラだから、
「普通は_を付けるはずだ!」とか思ってるなら、その認識のほうがよくないかと。
634デフォルトの名無しさん:2011/01/23(日) 23:52:44
いっそ、言語仕様レベルで記法を強制統一してくんねーかなー
635デフォルトの名無しさん:2011/01/23(日) 23:52:59
最近、フィールドの _ は、クラス内からであっても直接はあんまり使うなって意味だととらえてる。
クラス内からもプロパティやメソッド越しにアクセスしろ、だからあえて打ちにくい文字から始めるていう。
_ 付きのprivateフィールドを参照するのはコンストラクター内くらい。
636デフォルトの名無しさん:2011/01/23(日) 23:54:11
>>634
英語とは限らないわけで、大文字小文字があるとも限らない
637デフォルトの名無しさん:2011/01/23(日) 23:54:47
そういや、日本語名の変数とか作れたな。あんまり使った事無いけど。
638デフォルトの名無しさん:2011/01/23(日) 23:57:38
SAPI5.1で再生中の音声をStopさせる方法を教えてください。

■再生
SpVoice spv = new SpVoice();
ISpeechObjectTokens voiceInfo;
voiceInfo = spv.GetVoices("", "");
spv.Voice = voiceInfo.Item(i);
SpeechVoiceSpeakFlags flg = SpeechVoiceSpeakFlags.SVSFIsXML |
SpeechVoiceSpeakFlags.SVSFlagsAsync |
SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak;
spv.Speak(talkText, flg);
639デフォルトの名無しさん:2011/01/23(日) 23:57:57
日本語名変数いいよ。プライベートでは使いまくってるよ。
まじ読みやすい。
640デフォルトの名無しさん:2011/01/23(日) 23:58:14
あと、変数名に日本語使うこと有る?
趣味のプログラムだとコメント書かなくても何とかなるから結構好きなんだが
641デフォルトの名無しさん:2011/01/23(日) 23:58:21
列挙値は日本語って規約の現場はコードの質が尋常じゃなく低かった
642デフォルトの名無しさん:2011/01/24(月) 00:00:16
ただし、全角英数は禁止にしないと地獄見る。
643デフォルトの名無しさん:2011/01/24(月) 00:00:18
まあ for(int い=0; なんてコーディングされたら殺したくなるけどな
644デフォルトの名無しさん:2011/01/24(月) 00:02:21
インテリセンスが漢字変換みたいになるのかw
645デフォルトの名無しさん:2011/01/24(月) 00:03:08
メソッド内のローカル変数は、LowerCaseにする事が多いかなあ。
UpperCaseは使わない。

>>640
DataGridの列を、ItemsSourceをバインドするコレクションから自動生成させる時くらいかな。
滅多にやらない。
646デフォルトの名無しさん:2011/01/24(月) 00:03:19
業務固有の用語とか、よっぽど英語ができないと変な英訳になるし、ローマ字使うんだったら
もう日本語でいいだろって思うけど、あんまり賛成してもらったことはない。
647デフォルトの名無しさん:2011/01/24(月) 00:03:53
日本語変数使う時でも、頭は英文字にした方がインテリセンスで幸せになれる
648デフォルトの名無しさん:2011/01/24(月) 00:05:03
出直してくるか(´・ω・`)
649デフォルトの名無しさん:2011/01/24(月) 00:06:05
日本語入力確定前にインテリセンスが働くようになったら使う
Googleの検索じゃもうそうなってんだからMSもがんばれ
650デフォルトの名無しさん:2011/01/24(月) 00:06:13
ローマ字の変数は困るよなぁ。みかか系もそうだっけ。
651デフォルトの名無しさん:2011/01/24(月) 00:09:32
いちいち半角/全角押さなきゃいけないし今どっちのモードか意識してなきゃいけないのがいや
652デフォルトの名無しさん:2011/01/24(月) 00:09:44
>>647
ハンガリアン日本語変数?
653デフォルトの名無しさん:2011/01/24(月) 00:11:13
ちょっと前にどっかのスレであったけど
区分をKBNって書くくらいなら日本語の変数名にしろと思う
654デフォルトの名無しさん:2011/01/24(月) 00:12:09
こうなるのかしら。

public class MyClass
{
  private string _名称;
  public string 名称
  {
    get { return _名称; }
  }

  public MyClass(string 名称)
  {
    _名称 = 名称;
  }
}

書いてて思った。
半角/全角を一々切り替えるのが面倒。

後、大文字/小文字を分けられない都合で
プロパティ名と引数名が被るのが、ちょっと気持ち悪い。
(名前空間的には大丈夫なんだっけ?)
655デフォルトの名無しさん:2011/01/24(月) 00:12:25
低燃費をTNPって書くのを思い出した
656デフォルトの名無しさん:2011/01/24(月) 00:12:31
ローマ字母数取りは業界じゃ普通です(キリッ
657デフォルトの名無しさん:2011/01/24(月) 00:12:53
>>653
俺ならKuBuN
3文字主義者は知らん
658デフォルトの名無しさん:2011/01/24(月) 00:13:01
ラップについての質問です

あるコンストラクタの中で、
Aクラスのオブジェクトのリストを持つオブジェクトを、
Aクラスをフィールドとプロパティに持つwrapAクラスでラップすることはできますか?

文章下手だ…すんません
659デフォルトの名無しさん:2011/01/24(月) 00:13:43
>>653
セム語系っぽいw
660デフォルトの名無しさん:2011/01/24(月) 00:13:58
ためしに日本語識別子でコードを書いたことがあるけど、全角は自己主張がはげしくて
コードが読みにくかった。
使うなら要所要所でだな。
661デフォルトの名無しさん:2011/01/24(月) 00:15:34
>>658
何したいのか分からん
擬似コードで良いから書いてみたら?
662デフォルトの名無しさん:2011/01/24(月) 00:15:39
コメントを日本語で書くから手間は大して変わらん、思考が中断されるのを嫌うんじゃないかな?
663デフォルトの名無しさん:2011/01/24(月) 00:28:40
これでいいんじゃね?
リストを持つオブジェクト.リスト.select(Aクラスのオブジェクト => new wrapA(Aクラスのオブジェクト));
664デフォルトの名無しさん:2011/01/24(月) 00:28:54
半角全角の切り替えが面倒って言ってる人は、
なんで切り替えキーをカスタマイズしないんだ?

普通に日本語のドキュメント書くときでも切り替えは頻繁だろう?
665デフォルトの名無しさん:2011/01/24(月) 00:30:36
どこに割り当ててる?
666デフォルトの名無しさん:2011/01/24(月) 00:32:04
ドット打つ

切り替えキーターン!

文字打つ

切り替えキーターン!

ctrl+space

やっと補完出てきた

ドット打って頭文字を打つ

ctrl+space

補完までスムーズ!
667デフォルトの名無しさん:2011/01/24(月) 00:34:45
全半切り替えずにitoって打つだけで
伊藤さんの欠勤日数
っていう変数名がインテリセンスに出てくるようにするべきだと思う
668デフォルトの名無しさん:2011/01/24(月) 00:35:10
ひらがなキーにIMEのon/off。
669デフォルトの名無しさん:2011/01/24(月) 00:36:32
IMEの記号を半角デフォルトにすると幸せになれる
670デフォルトの名無しさん:2011/01/24(月) 00:37:09
英数キーに割り当ててたけど親指空いてるよなーと思って最近は無変換キーでon/off
671デフォルトの名無しさん:2011/01/24(月) 00:39:27
>>661
>>663
レスどうもです

VSにたよらんとコード書けないです…

えーと
まず
[メインクラス][著者クラス][著者の本クラス][著者ラップクラス][著者の本ラップクラス]があります

[メインクラス]が[著者クラス]をnewします
[著者の本]のリストをフィールドに持つ[著者クラス]は[著者の本]クラスをいくつかnewし、ます
(著者インスタンスが著者の本インスタンスを持ってる感じ)

で、
[メインクラス]において、[著者]インスタンスを、[著者の本]のリストをフィールドに持つ[著者ラップクラス]でラップしたいです
また、[著者の本クラス]は[著者の本]をフィールドに持つ[著者の本ラップクラス]でラップしたいです
ただし、著者の本のラップは[著者ラップクラス]のコンストラクタでラップしたいです

どうでしょうか…
これでだめならまた出直してきます…
672デフォルトの名無しさん:2011/01/24(月) 00:40:27
変換キーでIMEON
無変換キーでIMEOFFしてる
673デフォルトの名無しさん:2011/01/24(月) 00:43:06
>>669-670, 672
なるほどね
スレチだがそのへんにESC割り当てればVimが快適になるな
674デフォルトの名無しさん:2011/01/24(月) 00:44:49
自己参照できるかって話かな?
675デフォルトの名無しさん:2011/01/24(月) 00:46:30
>>672
俺がいたw
俺は更にcapslockをescにしてるw
676デフォルトの名無しさん:2011/01/24(月) 00:47:09
capslockたん(´・ω・`)ショボーン
677デフォルトの名無しさん:2011/01/24(月) 00:50:15
でも Capslock なんて C / C++ とかだろ。使うの。
678デフォルトの名無しさん:2011/01/24(月) 00:53:46
ようわからんが著者ラップクラスがもつリストってのは著者の本ラップクラスのリストじゃないのか?
そうしないと著者ラップクラスのコンストラクタでラップした著者の本ラップクラスがどこかへ消えてしまう
679デフォルトの名無しさん:2011/01/24(月) 00:55:15
Caps2ctrlがデフォだと思ってた
680デフォルトの名無しさん:2011/01/24(月) 00:55:38
それに間違って入るとウザいキー筆頭だよな
681デフォルトの名無しさん:2011/01/24(月) 00:58:04
>>671
そう言うときのためのファクトリパターン
682デフォルトの名無しさん:2011/01/24(月) 00:59:43
仕事場のはいじれねーんだよ
だからいじったやつに慣れると職場で余計にストレスたまるから
今使ってるやつもいじれない
683デフォルトの名無しさん:2011/01/24(月) 01:06:06
>>678
れすどうもです

ああなるほど
そうかもしれないです

一番の悩みは、リストに格納してある[著者の本]インスタンスを、コンストラクタ内(=メソッド使わない)で、リストではない[著者の本ラップクラス]でラップできるのか、という点だったのですが、もしかして見当違いだったんですかね…

ちょっと試してみます
また明日報告しますー
684デフォルトの名無しさん:2011/01/24(月) 01:28:20
windowsのGUI部品に依存しないで同じような仕組みの部品作るとなると苦労するな・・・
これもバックグラウンドが透けないからや・・・
685デフォルトの名無しさん:2011/01/24(月) 01:33:05
再度失礼します。
>>443 の投稿なんですが説明不足でした。すいません。
http://ideone.com/GOymD のプログラムを実行すると円が大量に描かれるものの、ウィンドウサイズ変更していると、
円が不自然な形になってしまいます。
それを以下の段階を踏んで修正しろというのですが、

@-1 プログラムから描写に必要な情報を考えて、円に対応するクラスMyCircleを作成せよ。
このクラスには適切なメンバ変数とコンストラクタを設定すること。

@-2 プログラムの中のDrawCircleをよく読み、MyCircle型のコレクションクラスに
円に格納する関数を作成せよ。このメソッドはフォームのコンストラクタから呼び出しておくこと。
(System.Collection.Generic名前空間にあるListクラスを使用)
*使用例
List<MyCircle> a = new List a<MyCircle>
a.Add(new MyCircle)(/*コンストラクタ引数*/));
a.Add(new MyCircle)(/*コンストラクタ引数*/));
MyCircle x = a[10];

@-3 プログラムの中のDrawCircleをよく読み、MyCircleクラスにグラフィックオブジェクトを引数にとって描写を行うメソッドDrawを追加。
また、Drawメソッドを呼び出してすべての円が描写できるようDrawCircleを書き直しなさい。

A 完成した@を改造し、三角形を描写できるようにする。

必要なのは@-3の終了段階で完成するプログラムと、Aのプログラムになります。
686デフォルトの名無しさん:2011/01/24(月) 01:34:43
>>684
WPFにいっちゃえよ
687デフォルトの名無しさん:2011/01/24(月) 01:36:06
あんまり変えると他のパソコン使ったときに困るからCtrlとCapsLockを入れ替えるくらい。
これでも他の使うと結構ミスる。
688デフォルトの名無しさん:2011/01/24(月) 01:36:42
>>542>>543
で一応模範解答ぽいのはでてるがいきなりあれこれ入れすぎソースかもしれないな・・・
689デフォルトの名無しさん:2011/01/24(月) 01:39:09
>>686
WPFってベクター系のお絵かきツールとか作りやすい?
690デフォルトの名無しさん:2011/01/24(月) 01:39:12
それくらいの課題なら自分でやったほうがいいぞ
あんたのためを思っていってやってるんだからな
691デフォルトの名無しさん:2011/01/24(月) 02:36:00
独習C# の改訂版て年末に出てたけど評価はどうなの?
692デフォルトの名無しさん:2011/01/24(月) 04:17:44
>>689
中共を新中国と呼ぶのは反日サヨクだよ。「中共」は、中国大陸においては中国共産党の略称である。
一方、中国大陸の外においては、中華人民共和国が国家であることを認めない人々が
「(中国大陸を統治する)中国共産党政権」という意味の俗称として使っていた
(この意味による「中共」は、日中国交正常化前の日本社会で使われていたほか、
現在でも、国共内戦で中国大陸から台湾に渡った中国国民党などが使っている)。
また「新中国」は、主に日中の国交正常化前、つまり中華人民共和国建国後は
台湾島を含む一帯を統治している中華民国を日本政府が「中国を代表する正当な政府」としていた時代(1912〜2009)に、
中国共産党を支持する日本人が中華人民共和国を指して使っていたものである。
693デフォルトの名無しさん:2011/01/24(月) 04:38:03
いつもの馬鹿が深夜に頑張っているようです
694デフォルトの名無しさん:2011/01/24(月) 07:01:44
やぁ、すれは落ち着いたかい(´・ω・`)

SAPI5.1で再生中の音声をStopさせる方法を教えてください。

■再生
SpVoice spv = new SpVoice();
ISpeechObjectTokens voiceInfo;
voiceInfo = spv.GetVoices("", "");
spv.Voice = voiceInfo.Item(i);
SpeechVoiceSpeakFlags flg = SpeechVoiceSpeakFlags.SVSFIsXML |
SpeechVoiceSpeakFlags.SVSFlagsAsync |
SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak;
spv.Speak(talkText, flg);
695デフォルトの名無しさん:2011/01/24(月) 10:23:50
COMはどう考えてもスレ違いだろ
せめてSystem.Speech使え
696デフォルトの名無しさん:2011/01/24(月) 13:46:48
>>32のコードなんだけど、x86でビルドすると高速なのに、x64でビルドすると4倍以上遅くなる。
64bitって超絶遅くなるものなの?
697デフォルトの名無しさん:2011/01/24(月) 13:52:23
たぶんレジスタ幅の関係かと
698デフォルトの名無しさん:2011/01/24(月) 13:57:06
64bit用にするなら2ピクセル分を読み書きすれば早くなるかな・・・?
やってみないとわからん
699デフォルトの名無しさん:2011/01/24(月) 14:13:12
>>696
x64は昔懐かしのセグメント方式(64KBオフセットを切り替えて1MB)を、
同様に32bit環境下でやって擬似的に64bitメモリ空間を作り出している、
なんちゃって64bit。

DOS時代と違ってセグメント切り替えがCPU内部で自動的に行われる
ので、プログラムは楽だが、セグメント切り替えが発生しない状況でも
勝手にCPUがアドレス計算するので劇的に遅くなる。

つまり、x64はIA64のような本物の64bitではないので、大量のメモリが
使える代償として、メモリアクセスが遅くなる諸刃の剣。
700デフォルトの名無しさん:2011/01/24(月) 14:17:06
>つまり、x64はIA64のような本物の64bitではないので、
この辺は補足しておいたほうがいいんじゃないの?
MSの宿命である互換性を重視しないといけないのでそんな変なモード使ってるって
たしかCPUそのものにはネイティブ64bitモードあったよね?

今のインテルって
・x86互換モード
・32bitモード
・64bitが数種類
701デフォルトの名無しさん:2011/01/24(月) 14:21:08
>今のインテルって
今のインテルやAMDのCPUって

というのが正しいか
http://ja.wikipedia.org/wiki/AMD64
ttp://tsushima.2ch.at/s/news2ch119892.png
702デフォルトの名無しさん:2011/01/24(月) 14:26:32
つうかメモリー量考えたら36ビットぐらい有ったら十分だよな
古の12bitCPUじゃないが
703デフォルトの名無しさん:2011/01/24(月) 14:28:41
速度低下の原因ってPAEのようなモードが動いてるんだっけ?
704デフォルトの名無しさん:2011/01/24(月) 14:30:33
>>700
AMD64ネイティブモードはレジスタ数2倍かつレジスタ幅2倍なので
64bit長の計算なんかは速くなるが、メモリ周りに関しては>>699
ままなので遅くなる。

計算が複雑でメモリアクセスが少ない状況だとたぶん速くなるよー、
一般的なアプリは大体このパターンだし、ってのがAMD64。
705デフォルトの名無しさん:2011/01/24(月) 14:40:14
ようするに、x64が必要ないアプリの場合は、Anyやx64ではなく明示的にx86を指定すべき。
706デフォルトの名無しさん:2011/01/24(月) 14:42:37
>>701
.NETアプリケーションでは64bitモードで動作できないってこと?
707デフォルトの名無しさん:2011/01/24(月) 14:46:08
>>706
.netは問題ないでしょ
AnyCPUなら実行時に勝手に判別
64bit指定でコンパイルしとけばOK
32bit指定でも互換モードで動く

ただ現状64bitやAnyCPU指定で64bitOS上で動かす場合は使う部品によっては問題ありだしな
たとえばブラウザコンポーネントを使ってFlash表示する場合は32bit指定でコンパイルしておかないと
実行時にこける(まだ64bit版Flashでてないよね?
708デフォルトの名無しさん:2011/01/24(月) 14:50:05
>>707
いや、そうじゃなくてx64では実際のメモリ幅が32bitらしい(>>699)ので
>>701の画像の表の64bitモードでは動作しないのかなと思った。
709デフォルトの名無しさん:2011/01/24(月) 15:03:26
まぁギャーコラ騒いでたのは無知が原因ってことでおk?
710デフォルトの名無しさん:2011/01/24(月) 15:20:51
>>709
まーこういうのはやってみないとわからないしねえ
勉強になったね♪ということでいいのでは?
711デフォルトの名無しさん:2011/01/24(月) 15:44:28
色々決めつけてかかる奴とは一緒に仕事したくないな
こいつのところにバグがあっても認めないので修正作業が前に進まないことが結構・・・・
712デフォルトの名無しさん:2011/01/24(月) 16:07:02
あたし認めない、あたし認めないよ
713デフォルトの名無しさん:2011/01/24(月) 16:52:01
しっくりこないんです
714デフォルトの名無しさん:2011/01/24(月) 17:04:11
コンパイルは通っているので僕のバグではありません
715デフォルトの名無しさん:2011/01/24(月) 17:12:09
ジェネリックの型指定部分をType型変数で呼び出すことはできないものなのでしょうか?
イメージ的にはこんな感じです。

こんな関数が定義されてて・・・。
void Hoge<T>() { /*型に応じて内部処理を変える*/ }

こんな感じで呼び出したい。
Type typeInt = typeof(int);
Hoge<typeInt>();
Type typeFloat = typeof(float);
Hoge<typeFloat>();
716デフォルトの名無しさん:2011/01/24(月) 17:15:32
> void Hoge<T>() { /*型に応じて内部処理を変える*/ }
この時点でジェネリックにする意味が崩壊してないか
717デフォルトの名無しさん:2011/01/24(月) 17:25:25
718デフォルトの名無しさん:2011/01/24(月) 17:45:24
出来るのかどうかすら不明なのですが、質問です。

C# でリソースにexeを追加してバイナリにして、それを実行・・・なんて
できるのでしょうか?
719デフォルトの名無しさん:2011/01/24(月) 17:49:53
>>716
中でtypeof(T)ってやってるんでしょ。
ジェネリックの実質的な意味は無いけど、戻り値がT型の場合は
利用者がダウンキャストしなくていいという点では意味があるので
実際.NETのライブラリでも使われてるパターン。
でもvoidだったら全く意味無し。最初からTypeを引数に取るべき。

>>718
ファイルに書き出してプロセスを起動するだけ
720デフォルトの名無しさん:2011/01/24(月) 17:57:05
やっぱFileStreamでバイナリ書き出してdiagnosticsで起動しかないのかなぁ@w@
721デフォルトの名無しさん:2011/01/24(月) 18:00:19
>>718

できんじゃね?

プロジェクトを右クリック > 追加 > 既存の項目 > ファイル選択

追加したファイルのプロパティで“コンテンツ”を“埋め込まれたリソース“に変更
722デフォルトの名無しさん:2011/01/24(月) 20:30:16
Padding/PaddingConverterのようなAllプロパティをつくりたいのですが、
自作のTypeConverter.CreateInstance()内で変更されたプロパティがどれか知りたい(All or Left,Top.Right.,Bottom)のです。
TypeConverter.GetProperties()内で値を保持すれば行けそうな気もするけど、正しいかどうかよくわからない。

どのようにすれば実現できるか諸先輩方々ご教授願います。

723デフォルトの名無しさん:2011/01/24(月) 21:05:13
>>695
ありがとう豚さん(´・ω・`)
724デフォルトの名無しさん:2011/01/24(月) 22:38:25
配列の動的増減って可能ですか?

簡単なお絵かきツールを作っているのですがDrawLinesなどの引数は
Point[]なのでなるべくならList<>などからの変換を避けたいのですが・・・
725デフォルトの名無しさん:2011/01/24(月) 22:41:48
つ計測
726デフォルトの名無しさん:2011/01/24(月) 22:43:40
>>725
無理。List<T>.ToArrayでその都度変換するしかない。
DrawLinesにかかる時間とList<>→[]の変換にかかる時間の比ってどれくらいだと思う?
たぶん3桁くらいDrawLinesの方が時間かかるよ。
727デフォルトの名無しさん:2011/01/24(月) 22:47:24
俺にレスされても。。
728デフォルトの名無しさん:2011/01/24(月) 22:55:06
>>725>>726
なるほど
細かく分ければ増減時の負荷も減りそうなんで諦めます

ありがとうございました
729デフォルトの名無しさん:2011/01/24(月) 23:07:49
負荷なんか実質ゼロだから要らんこと気にするな
パフォーマンスを考えるときは一番時間がかかってるところだけが重要で
ほかはいくら非効率だろうが全く影響ない
730デフォルトの名無しさん:2011/01/24(月) 23:44:52
そうは言うがな大佐
731デフォルトの名無しさん:2011/01/24(月) 23:47:36
List<T>に_itemsってT[]型のフィールドがあるので、リフレクションで取得する

Reflectorでも使ってDrawLinesをパクる

DrawLines内部でpoints.Lengthを使ってる所を書き換える

変態になりたいならこれで
732デフォルトの名無しさん:2011/01/24(月) 23:52:36
質問
FormBorderSty;e=FixedSingleのFormをタイトルバーだけ表示させる方法を教えてください
Size(0,0)指定だとクライアント領域が若干飛び出てしまい、美しくありませんでした
733デフォルトの名無しさん:2011/01/25(火) 00:01:25
>>708
x64はレジスタ自体は64bit幅だが、CPUキャッシュとメインメモリのやりとりが処理がクソ重いので、
CPUの各コアのキャッシュ内で収まるように並列化すればいい。
たとえば巨大な画像処理の場合だと、CPUキャッシュに収まるようにブロック化して、コア数だけ
並列で処理すればいいという事になる。

基本的にL1キャッシュを意識して組め。
734デフォルトの名無しさん:2011/01/25(火) 00:05:10
>>732
試してないけど、Regionでタイトルバーの部分だけ表示するようにするとか。
でもなんでそんなアホみたいなことしないのかなw
意味あると思えない
735デフォルトの名無しさん:2011/01/25(火) 02:55:00
>>733
箱庭プラットフォームで無茶言うな。
736デフォルトの名無しさん:2011/01/25(火) 10:48:53
ちわ。
WPFで時間を簡単に計測する手法はなんでしょうか?


WPFでTextBoxにユーザが値を入れたら、処理を開始するプログラムを作ろうとしてます。
で、TextBoxのTextChangedを使おうとしたんですが、これは一文字ごとにイベントがきます。

そこで入力がすんだら、処理を開始する、という風にしようかと思っていて、
最後のTextChangedから1〜2s待つという処理を作ろうと思ってます。

たしかWindowFormでは定期的に呼び出されるイベントがあった(ような)気がします。
そこでWindowのプロパティを眺めていたのですがそういうイベントがなさそうです。

別スレッドで回すしかないですか?(´・ω・`)
737デフォルトの名無しさん:2011/01/25(火) 10:57:51
>>736
DispatcherTimerてのを使います
738デフォルトの名無しさん:2011/01/25(火) 11:13:21
>>737
いけそうです。ありがとうございます。
739デフォルトの名無しさん:2011/01/25(火) 13:37:52
メソッドを分割する事によるオーバーヘッドってありますか?
例えば
for (;;)
{
 hoge += hogehoge;
}
の時
for(;;)
{
 piyo();
}

void piyo()
{
 hoge += hogehoge;
}
と比較して
740デフォルトの名無しさん:2011/01/25(火) 13:40:44
多少
でも実際のところは処理内容にもよるけど誤差だと思うよ
741デフォルトの名無しさん:2011/01/25(火) 13:41:41
JITによってインライン展開されるかもしれないし、されないかもしれない。
742デフォルトの名無しさん:2011/01/25(火) 13:43:32
つまり普段使いでは無視できる差だけど、
ミリ秒でパフォーマンス詰めていくと不利だって事ですね
ありがとう
743デフォルトの名無しさん:2011/01/25(火) 13:45:05
>>742
そう
むしろ速度を気にしすぎて可読性が悪くなのるのならダメだしねえ

今の時代可読性を犠牲にしてまで詰める必要があることがどれだけあることやら・・・
744デフォルトの名無しさん:2011/01/25(火) 13:48:44
ミリ秒で詰めるレベルのパフォーマンスロスでもない
マイクロ秒ナノ秒レベルの話
745デフォルトの名無しさん:2011/01/25(火) 13:50:49
そもそもミリ秒頑張って詰めるならC#で書かないって話になりそうだけどね
そんなの詰めたところでWindowsで適当にサービス動いたりしただけでもうチャラになるし
746デフォルトの名無しさん:2011/01/25(火) 13:52:00
>>742
1GHzって1msecで100万クロックという計算になる。で、そのオーバーヘッドがあったとしても数クロック分
747デフォルトの名無しさん:2011/01/25(火) 13:52:24
1回1マイクロ秒のロスだって100万回やれば1秒だぞ
748デフォルトの名無しさん:2011/01/25(火) 13:53:34
>>746
>1GHzって1msecで100万クロックという計算
桁ちゃいまっせ
749デフォルトの名無しさん:2011/01/25(火) 13:56:29
>>747
でもさ
動画のエンコードとかひたすら処理をするのなら大きいかもしれないが
GUIもからんで人間が行動起す->イベント発生してその関連の処理->人間の行動待ち
とかならそれこそ考えるだけ無駄だぜ
750デフォルトの名無しさん:2011/01/25(火) 13:58:33
てかほとんどの場合最適化対象だろ
751デフォルトの名無しさん:2011/01/25(火) 14:01:33
>>739の例だったら普通にインライン展開されて終わりだろ。
インライン展開されないようなメソッドは、メソッドの中の処理自体が呼び出しコストより何桁も重い。

つまり考えるだけ時間の無駄。人間が頑張ってやるような事じゃないわ。
752デフォルトの名無しさん:2011/01/25(火) 14:02:06
>>748
1000msec=1secでっせ
753デフォルトの名無しさん:2011/01/25(火) 14:03:45
>>752
1GHzを1億Hzって読んでた
恥ずかしい
754デフォルトの名無しさん:2011/01/25(火) 14:11:57
>>753
超和む
マルチスレッドでなでなでしてあげたい
755デフォルトの名無しさん:2011/01/25(火) 14:43:02
だれか私に、一番良い>>753をマルチスレッドでナデナデするコードを教えてください

とりあえず、Parallel.For?
756デフォルトの名無しさん:2011/01/25(火) 17:19:54
///
/// C#やりたい放題すぎワラタw
///
byte[] array = new byte[1024];
byte val;
fixed (byte* p = array) {
    byte* q = p;
    for (int i = 0; i < ary.Length; i++) {
        num = *q++;
    }
}
757デフォルトの名無しさん:2011/01/25(火) 18:03:59
c#で現在のPCの使用中ソケット数や待機中ソケット数などの
ソケットの状態を取得するにはどうすればよいでしょうか?
758デフォルトの名無しさん:2011/01/25(火) 19:20:03
それはネイティブAPIよばんとだめよ。
759デフォルトの名無しさん:2011/01/25(火) 19:39:07
DLL作成が好きです。だれか、C#から作って欲しいDLLを言ってくれませんか?
作ってあげますよ。
760デフォルトの名無しさん:2011/01/25(火) 19:44:27
じぶんでつくれるので、結構です
761デフォルトの名無しさん:2011/01/25(火) 19:45:24
じゃあ頼む
core i7 CPUのdell製パソコン作って僕にください
762デフォルトの名無しさん:2011/01/25(火) 19:54:55
>>756
測ってみるとわかるがBuffer.BlockCopyとかArray.Copyとか使ったほうが
自分でポインタ触るより速いし安全
763デフォルトの名無しさん:2011/01/25(火) 19:56:26
>>759
じゃあ任意精度浮動小数点ライブラリを頼む
764デフォルトの名無しさん:2011/01/25(火) 19:59:13
>>759
じゃあVisualStudioレベルのGUIを簡単に作れるフレームワークを頼む
765デフォルトの名無しさん:2011/01/25(火) 20:50:38
そんなDLLで大丈夫か?
766デフォルトの名無しさん:2011/01/25(火) 20:51:01
>>734
それじゃあダメだ、オラもう自分でがんばるよ(’ω’)
767デフォルトの名無しさん:2011/01/25(火) 21:21:59
>>759
なんとなく矩形選択できるTextBoxが欲しい
あとIntelliSenseにも対応してほしいんで、構文解析器の基底クラスと
設定ファイルからパーサー自動生成するカスタムツールもよろしく
768デフォルトの名無しさん:2011/01/25(火) 21:24:37
>>767
>矩形選択できるTextBox
意味がわからん

秀丸のCTRL押しながらマウスで反転させると・・・ってのと一緒?
769デフォルトの名無しさん:2011/01/25(火) 21:28:34
>>矩形選択できるTextBox
>意味がわからん

いやそのままだろwww
770デフォルトの名無しさん:2011/01/25(火) 21:33:16
秀丸は知らんが、VSやサクラエディタならAlt+ドラッグで出来る奴
771デフォルトの名無しさん:2011/01/25(火) 21:37:43
codeprojectにVSエディターもどき登録されてなかったっけ?
772デフォルトの名無しさん:2011/01/25(火) 21:46:14
日本語の不自由な連中が集まるスレと聞いてきました
773デフォルトの名無しさん:2011/01/25(火) 21:48:15
>>772
あなたも日本語が不自由でご苦労されたんですね
ここはあなたのような人が大勢いますから、安心して書き込んでくださいね
774デフォルトの名無しさん:2011/01/25(火) 23:02:41
VC# Expressってインストーラが生成できないと聞きましたが、
無料環境でExpressしか選択肢がない人の場合はどのようにしてインストーラを作るのでしょうか?
775デフォルトの名無しさん:2011/01/25(火) 23:06:38
>>774
ClickOnceって機能で、インストーラーは作成できる
普通のインストーラーが好みならフリーのインストーラーが色々あるから試してみたらどうかな?
776デフォルトの名無しさん:2011/01/25(火) 23:17:17
Zip 配布じゃだめなの ?
777デフォルトの名無しさん:2011/01/25(火) 23:22:00
SilverLightで・・・
778デフォルトの名無しさん:2011/01/25(火) 23:53:23
今時、インストールしなきゃ使えないなんて構成自体を考え直すべきかも
779デフォルトの名無しさん:2011/01/26(水) 00:47:53
質問です。
ネイティブ(アンマネージド?)なDLLから提供される C++ のインターフェイスクラスを
C#から利用することは出来ますか?
COMみたいな感じだと思うのですが。

// C++DLLのインターフェイス
class IFoo{
virtual void __stdcall Method() =0;
virtual ~IFoo(){}
};

// IFoo*を取得するDLL関数
extern "C" __declspec(dllexport) IFoo* GetFoo();


// C#
[DllImport("foo.dll")]
extern static IFoo GetFoo();

// 実際の利用
IFoo f = GetFoo();
f.Method();

こんな感じの利用が可能なら、C#のIFooの定義方法とか教えてもらえると嬉しいです。
780デフォルトの名無しさん:2011/01/26(水) 00:50:41
無理です
C++/CLIでラップしましょう
781デフォルトの名無しさん:2011/01/26(水) 00:59:37
残念 ありがとう
782デフォルトの名無しさん:2011/01/26(水) 09:27:02
ダイアログ用のフォーム作ってるんだけど、CommonDialogって継承してメリットあるの?
783デフォルトの名無しさん:2011/01/26(水) 09:41:12
ない
自分で作ったダイアログはコモンダイアログとはいわない
784デフォルトの名無しさん:2011/01/26(水) 09:54:08
>>782
OK押すと印籠が光り輝く
785デフォルトの名無しさん:2011/01/26(水) 10:21:46
Commonの意味を考えると胸熱
786デフォルトの名無しさん:2011/01/26(水) 10:22:58
>>785
肛門のローマ字読みを間違えたのかな?w
787デフォルトの名無しさん:2011/01/26(水) 10:24:03
CommonDialogのボタンってこんなの?

       ∧__∧
      (´∀` )
       (⊃⌒*⌒⊂)
        /__ノωヽ__)
788デフォルトの名無しさん:2011/01/26(水) 10:24:35
((*))
Koumon
Common

こういうことか・・・
ほんとだ!!半分以上一致してる
こりゃ間違いないなぁ
789デフォルトの名無しさん:2011/01/26(水) 10:29:15
ネイティブDLLを一つ使っているんだが、64bit版は64bitシステム、32bit版は32bitシステムでしか動かないという凶悪な仕様なんですよ
この2つを一つのインストーラーで何とかするスマートなアイデア有りませんかね?
790デフォルトの名無しさん:2011/01/26(水) 10:30:12
DLLを呼び出す側でなんとかすればいいんじゃね?
791デフォルトの名無しさん:2011/01/26(水) 10:30:46
>>790
名前同じなんですよ
792デフォルトの名無しさん:2011/01/26(水) 10:33:38
あとLGPLなんでDLLには手を付けたくないんですよ、自分のソースが汚すぎて人様には見せられる物じゃありませんから
793デフォルトの名無しさん:2011/01/26(水) 10:33:49
>>791
作り変えたりしないのならDLLを呼び出す前にDLLを単なるバイナリファイルとして読み込んで
サイズで比較とかチェックサムで比較とか

あとインストーラーがよくやるのはインストール前は別の拡張子にしておいて
インストールの段階で拡張子をターゲットに変更するとか

肛門ネタから一気に話が変わったな
794デフォルトの名無しさん:2011/01/26(水) 10:43:52
>>793
今のところ後者のやり方がベターなんですかね?今のところClickOnceのお手軽仕様を考えているから
起動直後にチェックしてリネームですかね。それか何か面白いフリーのインストーラーでもあったら
教えていた出ると有り難いです

元々08stdで作っていたんだが、wpf環境が破壊されてデバッグ不可になり、泣く泣く10exに変更したんでclickonceなんです
795デフォルトの名無しさん:2011/01/26(水) 11:00:29
それはVS2008入れなおした方がいいんじゃね?
796デフォルトの名無しさん:2011/01/26(水) 11:04:35
>>795
netで調べてVSどころか.netまで入れ直してその他やっても復活できず
Win7 64だと簡単には直らないのかなぁ .net3.5標準装備だし
あ、3.5もちゃんと入れ直したんですけどね
797デフォルトの名無しさん:2011/01/26(水) 11:08:25
JITデバッガの問題?
798デフォルトの名無しさん:2011/01/26(水) 11:14:30
>>797
良く解らないけど、突然wpfのデザインビュー開くと固まるようになっちまった
2010にコンバートしたら10では問題ないんですがね
一応これに近いかと思って対策したが駄目でした
http://social.msdn.microsoft.com/Forums/ja-JP/vbexpressja/thread/03010ec1-61c6-4cff-92f3-fab50812819b
799デフォルトの名無しさん:2011/01/26(水) 13:23:59
>>789
まるでDLL開発側の仕様のように言うなよ。
OSの糞仕様なんだから。
800デフォルトの名無しさん:2011/01/26(水) 13:31:28
そもそもVSのWPFプレビューはとんでもなく糞。
Blendを使うとBindingのプレビューや、MVVM向けのライブラリも付属してるから
WPFやるならBlendを使ってXAML側を編集するのがオススメ。
801デフォルトの名無しさん:2011/01/26(水) 15:40:02
質問。
C#やっている人、Windowsにべったりな気がしますが、
XKeyamcsってソフトがあります。EmacsのキーバインドをWindows 上で実現するソフトです。
---
http://www.cam.hi-ho.ne.jp/oishi/
---
このソフト、C#で作り直せるでしょうか?
802デフォルトの名無しさん:2011/01/26(水) 15:40:42
つづき

なぜかというと、.net 3.5 のクラスに"keybind"とかそんなのがあったから、どうかなと思いまして。
803デフォルトの名無しさん:2011/01/26(水) 15:43:25
その程度の判断もつかないような人間なら無理だろう
804デフォルトの名無しさん:2011/01/26(水) 15:43:44
まあ、P/Invoke だらけになっていいならキー入力のフックはできたはず。
805デフォルトの名無しさん:2011/01/26(水) 15:44:53
ちなみに、↓こんなものもあるので、需要0ではない<Emacsキーバインド。
http://visualstudiogallery.msdn.microsoft.com/09dc58c4-6f47-413a-9176-742be7463f92?SRC=VSIDE
806デフォルトの名無しさん:2011/01/26(水) 15:49:33
自分は郷に入れば郷に従え 的な感じでやってるけど
需要あるんだなぁ
807デフォルトの名無しさん:2011/01/26(水) 15:52:02
>>801
実現するとすれば

・アプリを常駐
・特定の実行ファイルを監視して起動してるようならフック
・入力があったらキーコードを偽装

こんなところかね?
キーボードフックならいっぱいありそうだが
808デフォルトの名無しさん:2011/01/26(水) 16:44:46
お返事ありがとう
まあ、日曜プログラマーの底辺層なので、ライフワークでやってみます。
809デフォルトの名無しさん:2011/01/26(水) 16:53:12
それでXKeymacs C++でMFCを使っているようで、Visual Studio の勉強も必要に。
林晴比古先生の書籍の"Visual C++ 2008 シニア編"でも読むかな…
810デフォルトの名無しさん:2011/01/26(水) 16:57:24
>>800
思い込み
テンプレートやリソースやアニメーションの編集機能はしょぼいけど、
VS2010のプレビューやバインディングデザイナはBlendのものと実際大差ない
811デフォルトの名無しさん:2011/01/26(水) 17:03:59
>>810
そうなのかなぁ。
同じフォームをVSだとエラーだけどBlendだと正常にプレビュー出来るって事が多々あるんだけど
これは俺のコードの書き方が悪いのかな。
812デフォルトの名無しさん:2011/01/26(水) 17:05:09
むしろ逆のほうが多いんだが
コードビハインドで落ちてるんじゃないの?
813デフォルトの名無しさん:2011/01/26(水) 19:36:43
>>812
コードビハインドは空っぽ・・・
814デフォルトの名無しさん:2011/01/26(水) 20:58:12
エラー出るコード見せて
815デフォルトの名無しさん:2011/01/26(水) 21:24:28
WPFで苦労してる奴見ると笑える。
なんでわざわざJava屋と同じ轍を踏むんだ?
816デフォルトの名無しさん:2011/01/26(水) 21:35:10
>>815おすすめは?
817デフォルトの名無しさん:2011/01/26(水) 21:35:49
WinFormsで作る方が苦労するからに決まってるじゃないか
818デフォルトの名無しさん:2011/01/26(水) 22:15:53
>>815
問題があっても苦労はしてないから使うに決まってるだろ
819デフォルトの名無しさん:2011/01/26(水) 22:20:21
Wpf慣れたらWinformで出来る程度のことならWinformより手間とは思えないけどな
皆苦労しているのはそれ以上を求めているからだけだよ
で、MFCで同じ物作るよりは数段楽だぜ
820デフォルトの名無しさん:2011/01/26(水) 22:27:42
Winformsみたいな枯れたコントロールばかりで何を苦労するんだか。
苦労して作ったGUIほど間違いなく、ユーザーには使いにくいのに。
JAVA製のGUIアプリの糞さを見れば明らか。
821デフォルトの名無しさん:2011/01/26(水) 22:30:23
確かにSilverlight製のUIは使いにくいものばかり。
どれが有効なボタンかすら分からないようなデザインとか。
822デフォルトの名無しさん:2011/01/26(水) 22:32:51
ああ、環境の問題と作り手の問題を区別できないような人でしたか。
823デフォルトの名無しさん:2011/01/26(水) 22:34:46
Silverlightで見た目重視のUIにするならゲームなんかのUIを学ばないとなあ・・・
824デフォルトの名無しさん:2011/01/26(水) 22:40:17
質問です
列挙型の変数のメンバに「#」の文字を使いたいのですが、
どういうふうに書けばいいですか?
825デフォルトの名無しさん:2011/01/26(水) 22:41:16
>>824
全角の#を使う
826デフォルトの名無しさん:2011/01/26(水) 22:42:47
>>822
だから自由度が高いGUIライブラリは糞ってことだ。
昔のMSは言ってたじゃないか。
UIは統一性が大事だって。だからUnixは使いにくいんだって。
827デフォルトの名無しさん:2011/01/26(水) 22:45:16
>>826
やっぱり環境の問題と作り手の問題を区別できないような人じゃねーか。
828デフォルトの名無しさん:2011/01/26(水) 22:46:52
>>827
でも前宣伝の仕方次第では環境に変な作り手がよってくるのも事実だしなあ・・・

アンドロイドとiOSの違いというか
片方はガチガチでエロも厳しい
片方はフリーダム(すぎ

まあUIの話じゃないけどさw
829デフォルトの名無しさん:2011/01/26(水) 22:48:19
ダメだこりゃ。馬鹿に何言っても通じない。
いいかげんVistaと7の不人気の原因を真摯に受け止めろよ。
830デフォルトの名無しさん:2011/01/26(水) 22:50:10
>>825
全角で書いてもIDEが全角と認識しないようなんですけど。
831デフォルトの名無しさん:2011/01/26(水) 22:51:18
>>828
まるで関係ないな
832デフォルトの名無しさん:2011/01/26(水) 22:52:14
1億5千万本以上売れてるOSが不人気とな?
833デフォルトの名無しさん:2011/01/26(水) 22:53:03
彼は妄想の世界の住人です
834デフォルトの名無しさん:2011/01/26(水) 22:54:01
どうみても今でもXPのUI最高です。
835デフォルトの名無しさん:2011/01/26(水) 22:55:56
XPはセキュリティ糞じゃねぇか
836デフォルトの名無しさん:2011/01/26(水) 22:59:27
swingが糞だったのは主に速度、wpfはwinformに比べても高速だぞ
837デフォルトの名無しさん:2011/01/26(水) 23:00:40
>>815>>820
向こうの事情はよく分からんけど、有名どこ?のSwing・AWT・SWT・JFace・他色々はWinForms的だよね?
JavaとWinFormsを批判してんのか?


XMLでUI定義とか別に珍しくもない。
Javaならgui4jやJava FX、CならGTK+ Glade、C++ならQtのuic、Adobe FlexならMXML、MozillaならXUL みたいに数えたらきりがない。

.NETはWPFやSilverlightでより先進的な地位にある。
後塵を拝して取り残されるような事にならずに済んで喜ばしいと思うが
自分に理解できなかったからって叩くのは馬鹿のやることだろ。
838デフォルトの名無しさん:2011/01/26(水) 23:00:41
WinFormsでも面倒なだけで外観は自由にできるし
Direct3Dを直に使ってUIを自前描画したアプリだって世の中にはけっこうある
839デフォルトの名無しさん:2011/01/26(水) 23:02:36
頑張ればできるけど、保守性最悪でメンテナンスできなくなるぞ…
840デフォルトの名無しさん:2011/01/26(水) 23:02:53
SwingはAPIはWinFormsに近いけど
フルスクラッチだから仕組み的にはどっちかというとWPFでしょ
841デフォルトの名無しさん:2011/01/26(水) 23:04:59
自前でやってるそういったアプリは大抵使いにくいんだよな。
そういうのって開発者とは別に、開発やUIに無知な馬鹿が
デザインやUI仕様に口出しして開発した場合がほとんどだから。
842デフォルトの名無しさん:2011/01/26(水) 23:13:27
使い慣れたUIの流儀は守って当然。WPF使って独創的なUI作るわけないだろ。
批判してる連中はあり得ない前提を持ち出してきて、さも当然のように語りだすから困る。

WinFormsではちょっと使いやすく変えたい場合でも山ほどコーディングしないといけない。
843デフォルトの名無しさん:2011/01/26(水) 23:13:43
>>837
XMLのUIって失敗の歴史だな。
844デフォルトの名無しさん:2011/01/26(水) 23:16:42
>>830
どうせToStringの結果を変えたいんだろ?
enumのメンバに[EnumString("A#1")]のようなカスタム属性付けといて
クラスでラップしてToStringオーバーライドして中でリフレクションで取得するか
enum使わずにSystem.Drawing.Colorみたいにするか
845デフォルトの名無しさん:2011/01/26(水) 23:18:28
>>843
全部失敗してるとでも思ってるのかい?
846デフォルトの名無しさん:2011/01/26(水) 23:20:26
>>843
XML派生言語は柔軟性が高いから、厨仕様を呼び込みやすいんじゃないか
847デフォルトの名無しさん:2011/01/26(水) 23:20:38
>>843
それに近いhtmlはどうするだよ
整形用テキストを解析してUIにしちゃうってのはこれだけ普及してるし
WPFだってhtml+CSS+JavaScriptの組み合わせのようなことをやってるじゃん
848デフォルトの名無しさん:2011/01/26(水) 23:21:45
Blend使ってたらXAMLはメリットしかないぞ
基本的にXAMLを見たり直接触ったりする必要は無いし
もし手で編集してもWinFormsと違ってデザイナが壊れることが無い
849デフォルトの名無しさん:2011/01/26(水) 23:24:28
俺はXAML良いと思うんだがなぁ
850デフォルトの名無しさん:2011/01/26(水) 23:28:25
UIの定義ぐらいならいいがデータフォーマットとしては致命的に遅すぎる。
FinFSもそれが原因で頓挫したんじゃなかったか?
851デフォルトの名無しさん:2011/01/26(水) 23:38:25
>>850
XAMLとWinFSに何の関係があるの?
852デフォルトの名無しさん:2011/01/26(水) 23:41:15
>>846
そんなものは自然に淘汰される。
HTMLだって昔はチカチカ光ったり、文字スクロールさせたりするようなのが流行ってた。
今では全然見なくなったのが何よりの証拠。
853デフォルトの名無しさん:2011/01/26(水) 23:43:18
XAMLで気になるのは、ミスった時エラーを吐かずに黙りになる事が多々ある
ここら辺だけは改良して欲しいとこだなぁ
854デフォルトの名無しさん:2011/01/26(水) 23:43:29
最近はFlashがチカチカする。早く淘汰されないかな。
855デフォルトの名無しさん:2011/01/26(水) 23:43:46
>>852
>全然
すくなくとも1サイトは存続してないか?w(ネタ的として振ってみるw

ところでSliverLigthで外部のサイトのアドレスから情報を引っ張って来る物を作りたいんだが
そういうことってできる?

アクセス権限がどうので自分のサーバーの外にはでれないとかどこかで見かけた気がしたんだが
気のせいならいいのだが・・・
856デフォルトの名無しさん:2011/01/26(水) 23:46:56
>>855
クロスドメイン制約で無理。JavaScriptでもFlashでも無理。
明示的にクロスドメインアクセスが許可されているサーバーにはアクセスできるけど
そうでなければWebサービスを経由するしかない。
OOB+ElevatedPermissionsなら制限なし。
857デフォルトの名無しさん:2011/01/26(水) 23:49:29
なんかちょっと前に、HTML5+JavaScriptのデモでタイトル文字列をmarquee的にスクロールさせてたうざいデモサイトなかったっけ?
最先端のもののはずなのに、懐かしいものを見た気分になった。
858デフォルトの名無しさん:2011/01/26(水) 23:50:25
>>855
あのサイトはあのまま変わらないから価値があるw
859デフォルトの名無しさん:2011/01/26(水) 23:55:12
860デフォルトの名無しさん:2011/01/26(水) 23:57:11
>>856
ありがとう
やっぱり見間違いじゃなかったか・・・

>>858
まあ設置場所が楽天関係になって閉鎖とかにならなければ永遠に残りそうだな
861デフォルトの名無しさん:2011/01/27(木) 00:01:28
そりゃちょっとした広告と見せかけて裏では世界中からエロ画像を収集して
作者にせっせと送信してたら困るからな
862デフォルトの名無しさん:2011/01/27(木) 00:17:57
>>856
JavascriptならJSONPで一応クロスドメインアクセスできる
Silverlightで使えるかどうかはしらないけど
863デフォルトの名無しさん:2011/01/27(木) 00:29:49
DataGridViewのデータソースに直接アクセスしたい場合どうしたらいいですか?

例えばバインド元データの件数を知りたい場合、
ObjectがIList,IListSource IBindingList IBindingListViewの
どれ該当するか判定し、キャストした上で処理するという事で合ってます?
ITypedList?なんかもあり得ます?
864デフォルトの名無しさん:2011/01/27(木) 00:40:05
object source = データ;
var collection = source as ICollection;
if (collection != null) { count = collection.Count; }
else { Debug.Assert(source is IEnumerable); count = source.Cast<object>().Count(); }
865デフォルトの名無しさん:2011/01/27(木) 00:40:43
まわりくどーい
866864:2011/01/27(木) 00:42:41
そういえばCountはICollection.Countが使えるかどうかのチェックを中でやってくれるんだった
((IEnumerable)source).Cast<object>().Count()でおk
867864:2011/01/27(木) 00:46:54
何度もすまん
CastしたらICollection<T>じゃなくなるからCountが遅くなるな
気になるなら>>864
868デフォルトの名無しさん:2011/01/27(木) 01:34:20
>>865
WPFどころかWinFormsも使ったことないのかよ…。
お前なんでこのスレ居るの?いや、ふらっと ならこんなもんか。

MSDNのDataGridView.DataSourceプロパティのとこ読んで勉強してこい。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.datagridview.datasource%28VS.80%29.aspx
869デフォルトの名無しさん:2011/01/27(木) 02:02:30
IListSourceが邪魔だな
今だとなんでもかんでもIEnumerable<>だけど時代を感じる
870デフォルトの名無しさん:2011/01/27(木) 02:05:47
XPのUIが最高?
Lunaにそこまで惚れてる奴がいるとは・・・
871デフォルトの名無しさん:2011/01/27(木) 02:12:29
ユーザーがXPに馴らされてるおかげで
アプリケーションのUIがダサくても大目に見てもらえてたんじゃないか
872デフォルトの名無しさん:2011/01/27(木) 02:16:07
Whistlerの頃のXPのThemeはなかなか良かった
873デフォルトの名無しさん:2011/01/27(木) 02:19:50
XPまでのWindowsは重い処理してる時のテアリングが気になる
874デフォルトの名無しさん:2011/01/27(木) 02:30:18
>>873
あれは同期無視でとにかく処理しちゃえってことだからな
重いとか関係なしに出るよ
875863:2011/01/27(木) 02:32:25
>>864
丁寧にありがとうございます。
各インターフェースはICollectionかIEnumerableを継承しているんですね。
ICollectionなら素直にCountがあり、IEnumerableの方は拡張メソッドで
IEnumerable<T>にキャストすればCountが使えると。
ん?キャスト?O(n)でなくO(1)で処理されるんですか?

>>865にはちょっと同意。
何でもかんでもとりあえずバインド出来ますよ
ってユーザーの利便性を優先した代償なんでしょうか。
JAVAからC#に移って、文化の違いに戸惑い中。。。
876デフォルトの名無しさん:2011/01/27(木) 02:37:24
T[] と IEnumerable<T> と IList<T> って使い分けてる?
877863:2011/01/27(木) 02:55:29
>>875
自己レスです。
多分理解しました。
遅延実行を利用して返却する値を個別にキャストするんですね。
その結果、T型を列挙するIEnumerable、つまりIEnumerable<T>になると。
878デフォルトの名無しさん:2011/01/27(木) 08:44:36
>>843
デザイナとコードの分離なんてまやかしだって事だな
夢物語に過ぎなかった
879デフォルトの名無しさん:2011/01/27(木) 09:52:01
デザイナについては、設定をXMLにシリアライズするかコードにシリアライズするかの違いしかないだろ
普通に考えて、わざわざコードにするほうがずっと実装面倒で不自然な頭おかしい設計
880デフォルトの名無しさん:2011/01/27(木) 10:25:36
>>879
XAMLはXMLを態々コードにプリコンパイルしてからさらにCLIにコンパイルする方式なんだが
881デフォルトの名無しさん:2011/01/27(木) 12:15:51
態々コードってどんなコードかと一瞬考えてしまったじゃないか
態々漢字変換すんなし
882デフォルトの名無しさん:2011/01/27(木) 12:16:36
>>879
XMLは遅い。コードのほうが圧倒的に速い。
883デフォルトの名無しさん:2011/01/27(木) 12:33:20
XML信者なんとかしてくれ
きまりきった形式で中身も保証しているデータをCSVではなく
XMLとか
サイズが大きくなるんだ・・・
マジ勘弁
884デフォルトの名無しさん:2011/01/27(木) 12:34:58
>>880
違う
XAMLはテキストかバイナリの形でリソースに保持される
885デフォルトの名無しさん:2011/01/27(木) 12:38:29
保証すると言われてもな
886デフォルトの名無しさん:2011/01/27(木) 12:52:53
CSVはオワコン
887デフォルトの名無しさん:2011/01/27(木) 13:05:33
csvで木構造を書くのは大変そうだなw
888デフォルトの名無しさん:2011/01/27(木) 13:22:27
CSV信者なんとかしてくれ
889デフォルトの名無しさん:2011/01/27(木) 13:25:46
サイズ気にしてるのにテキストフォーマット選択してる時点で阿呆
890デフォルトの名無しさん:2011/01/27(木) 13:33:48
SilverLightで簡単なエロゲ構築スクリプトのようなの作りたいんだけど

・silverlight製プレーヤーは汎用型でバージョンアップ以外はいじらない
・htmlなどの外部にスクリプトの読み込み先アドレスが置いてある(もしくはhtmlかjavascriptから自前プレーヤーに与える
・sliverlight製プレーヤーは上記で与えられたアドレスから自前スクリプトを読み込み解析する

こんな感じのことは実現できますかね?

当然すべての部品は同じサーバー上においてあります。
あくまで外部スクリプトなどをいじることで汎用的な対応をしようと思ってます



それとは別件で、sliverlightアプリを指定したサイト以外で動かないようにする方法はありますか?
標準機能で無い場合はなんらかの外部情報を入手して判断しようかと思ってるんですが
891デフォルトの名無しさん:2011/01/27(木) 13:37:14
CSVにするようなデータをXMLで書く奴はただの馬鹿だろ。
892デフォルトの名無しさん:2011/01/27(木) 13:53:34
CSV使ったMLとか使いにくいだろww
893デフォルトの名無しさん:2011/01/27(木) 13:55:24
XMLパーサが遅すぎ。どうやっても速くはならない。
パフォーマンスが問題とされる分野はどこもガチガチ固定長フォーマットがデフォ。
894デフォルトの名無しさん:2011/01/27(木) 13:57:41
ガチムチは帰れ
895デフォルトの名無しさん:2011/01/27(木) 13:58:06
適材適所なのは間違いない
896デフォルトの名無しさん:2011/01/27(木) 13:58:44
>>893
CSVで馬鹿にされたからって、何言ってんだコイツ
897デフォルトの名無しさん:2011/01/27(木) 13:59:51
>>896
人違いですよ。私はTSV派です。
898デフォルトの名無しさん:2011/01/27(木) 14:01:39
XMLでもSAXならそれなりに早そうだけどどうなのエロい人
899デフォルトの名無しさん:2011/01/27(木) 14:03:29
UIの情報をCSVや固定長で格納しようとか頭おかしいだろw
900デフォルトの名無しさん:2011/01/27(木) 14:05:28
そうそう。
しかも行列データをXMLに格納しようとかもっと頭おかしい。
901デフォルトの名無しさん:2011/01/27(木) 14:07:24
yaml最強伝説
902デフォルトの名無しさん:2011/01/27(木) 14:07:58
これだけ利用されてるhtmlなどを全否定とはこれまた
903デフォルトの名無しさん:2011/01/27(木) 14:10:59
お前ら絶対わざと煽ってるだろw
904デフォルトの名無しさん:2011/01/27(木) 14:11:02
適材適所だろ。
XML信者が調子乗って何でもXMLでやろうするのが問題。
昔、Java最強とか言ってなんでもJavaでやろうとしてほとんどの分野で失敗して、
一部のサーバ分野でしか使い物にならなかったのと同じ。
905デフォルトの名無しさん:2011/01/27(木) 14:12:49
json最強つってんだろ?
906デフォルトの名無しさん:2011/01/27(木) 14:14:01
読めなくていいなら俺様パッカー使え
今なら年間10円にしとくから
907デフォルトの名無しさん:2011/01/27(木) 14:14:37
ところで何でもXMLでやろうするやつってのはどいつだい?
908デフォルトの名無しさん:2011/01/27(木) 14:16:39
>>905
同意せざるを得ない
909デフォルトの名無しさん:2011/01/27(木) 14:19:48
>>907
MSにそういう一派がいてプロジェクト失敗してんだよ。
910デフォルトの名無しさん:2011/01/27(木) 14:21:48
何でもXMLでやるわけないじゃん馬鹿なの?

XMLは開発者なら誰もが使えて、HTMLで大成功した実績ある方法だ。
UIの木構造をインスタンス化するMLとしてXML以上の選択肢なんてないだろ。

俺仕様のバイナリデータにしたり
*ここは触っちゃダメ*と書いて、デザイナからしか編集しないでねと言うのが本当にいいと思ってるの?w
911デフォルトの名無しさん:2011/01/27(木) 14:23:45
>>910
昔、散々やってJava屋のデスマーチ何度も見たろ?
912デフォルトの名無しさん:2011/01/27(木) 14:24:36
>俺仕様のバイナリデータにしたり

COMの否定ですか? MS信者失格ですね。
913デフォルトの名無しさん:2011/01/27(木) 14:24:54
設定ファイル(キリッ
914デフォルトの名無しさん:2011/01/27(木) 14:25:23
>>911
XML使ったらデスマーチになるとでも?wwwww
915デフォルトの名無しさん:2011/01/27(木) 14:26:26
>>912
CSVの次はCOMが出てきたよww
916デフォルトの名無しさん:2011/01/27(木) 14:30:44
>>912
デザイナからしか編集できないようにするのはやっぱり嫌なんじゃねーかw
917デフォルトの名無しさん:2011/01/27(木) 14:31:13
以下自分の薦めるデータフォーマット以外での書込み禁止
918デフォルトの名無しさん:2011/01/27(木) 14:32:50
>>907
うちの設計w
919デフォルトの名無しさん:2011/01/27(木) 14:35:25
>>917
俺は適材適所でやるべきだと思ってるからプレーンテキストで書いて、サーバでDATフォーマットにしてもらうわ
920デフォルトの名無しさん:2011/01/27(木) 14:37:57
>>918
ご愁傷様です
921デフォルトの名無しさん:2011/01/27(木) 14:42:00
XMLを嫌う理由がわからん

速度重視なら本運用でコンバートプログラム書いて早くなるようなキャッシュを作ればいいだけだし
独自のデータフォーマットを構築する方が時間無駄のように見える
922デフォルトの名無しさん:2011/01/27(木) 14:43:02
>>921
おまえ仕事したことないだろw
923デフォルトの名無しさん:2011/01/27(木) 14:45:39
System.Xml.Linq使って言ってるよな?
924デフォルトの名無しさん:2011/01/27(木) 14:48:16
>>921
釣れますか?

そういえばネオコアとかいうXMLDBをどこぞのページが大プッシュしてたけど
最近見ないなwwwww

実際広く使われてるように書かれてたけどどうなんだろうな
925デフォルトの名無しさん:2011/01/27(木) 14:48:27
データの定義情報だけならともかく、データそのものにXML使うとか商用ではあり得ないよ。
数千万件のデータをXMLでやってたら遅すぎて話しにならん。
2日のバッチ処理が1週間かかるよ。しかもデータ量爆増するし。
926デフォルトの名無しさん:2011/01/27(木) 14:50:34
XML否定派は頭おかしいわ…。
そんなもんリレーショナルデータベース使うに決まってるじゃねーか。
927デフォルトの名無しさん:2011/01/27(木) 14:50:55
いまどき分散KVSですよ
928デフォルトの名無しさん:2011/01/27(木) 14:52:01
XML データベースで試しにググってきて引っかかったページの中に

XMLDBの盛り上がりを見逃すな!

とか2007年の記事があってクソわろたwwwww
このコンサルどんな気持ちなんだろ
929デフォルトの名無しさん:2011/01/27(木) 14:52:17
XMLが向かない分野わざわざ持ち出してXML否定するとか
930デフォルトの名無しさん:2011/01/27(木) 14:52:29
否定派も肯定派も結局は適材適所派という無意味な争い
931デフォルトの名無しさん:2011/01/27(木) 14:53:13
>>926
負荷計算すらまともにできないから
未だにコボラーが幅を利かせるのですよ。
932デフォルトの名無しさん:2011/01/27(木) 14:53:51
数千万件のデータをXMLで保持して、それをそのままDOMで処理とか現実であり得ない例出されてもな・・・
幾らXML好きでも、一端DBに入れて処理するのは当たり前でしょ

え?もしかしたら現実にそんな設計する奴居るの?それなら一大事だが
933デフォルトの名無しさん:2011/01/27(木) 14:55:07
>>932
ばか・・・大手でもアフォはいるんだよ・・・・
934デフォルトの名無しさん:2011/01/27(木) 14:55:36
最底辺の現場は恐ろしい事やってるんだな。
ていうか否定派もUIの木構造をMLで記述する点については否定してないんだな。
935デフォルトの名無しさん:2011/01/27(木) 14:56:12
否定派とか肯定派じゃなくて
>>925は頭悪い派だな
936デフォルトの名無しさん:2011/01/27(木) 14:57:00
もうアホに構うなよ
937デフォルトの名無しさん:2011/01/27(木) 14:57:16
>>933
それさ、XMLが悪いんじゃなくてバカが幅利かせているのが悪いだけだな
938デフォルトの名無しさん:2011/01/27(木) 14:57:32
>>932
普通に数億円以上規模のプロジェクトでは、
仕様決める側はプログラムなんて全く書けない自称SEばかりなんですよ。
だから、流行のJavaで!! XMLで!! とか平気で言う。
939デフォルトの名無しさん:2011/01/27(木) 14:59:50
>>935
俺は醜態を晒すことによってXML否定派のネガキャンしてると見たね。
そうでなかったら・・・

>>938
金払いがいい客相手ならなんだって作るわ。
940デフォルトの名無しさん:2011/01/27(木) 15:00:03
そんなやつらでも数億円以上のプロジェクトに参加できるなんて不公平ではないかね
941デフォルトの名無しさん:2011/01/27(木) 15:01:12
>>940
不公平だから日本のIT業界は腐ってるだろw
942デフォルトの名無しさん:2011/01/27(木) 15:01:34
普通特に理由なければXML選ばないか?
レコードが多くなったりしたらSQLだけど。
943デフォルトの名無しさん:2011/01/27(木) 15:02:11
どんな判断だ
944デフォルトの名無しさん:2011/01/27(木) 15:05:27
もう飽きたから続きはマ板でやってくれよ
945デフォルトの名無しさん:2011/01/27(木) 15:06:03
>数億円以上のプロジェクトに参加できる
むしろしたくねぇよ
バカばっかりだぞ?

理由なければXML選ぶとかいみわかんねぇ
946デフォルトの名無しさん:2011/01/27(木) 15:08:02
マ板でやれ
947デフォルトの名無しさん:2011/01/27(木) 15:08:09
速度も何も気にしないならXML尻荒いざーで出力
大量のデータならデザイナでDB自動生成
こんな私ですがお嫁にいけますか?
948デフォルトの名無しさん:2011/01/27(木) 15:10:54
詳しくはマ板で。
949デフォルトの名無しさん:2011/01/27(木) 15:35:18
>>890
可能。
Silverlight初期化時にHTMLから任意のパラメータを渡せる。URI渡してSilverlightからダウンロードすればいいだけ。
HTML DOMの操作も可能なので、もっと高度なこともできて、
たとえばSilverlight用のDLRを使うと、HTMLのscriptタグに書かれたrubyやpythonのスクリプトを
動かせるんだけど、それはSilverlightプラグインから自身が貼られてるHTMLのDOMを読むことで実現されてる。
指定したサイト以外で動かせないようにするには、自分自身のURIはSilverlightのAPIで簡単に取得できるので
あとはご自由に。
950デフォルトの名無しさん:2011/01/27(木) 16:13:02
>>949
よかったレスもらえてw
XML関連でスレが埋まりそうな勢いだったのであせったw

想定してたこと以上にできそうですね
ありがとうございます
951デフォルトの名無しさん:2011/01/27(木) 16:37:06
チッ
952デフォルトの名無しさん:2011/01/27(木) 18:22:53
953デフォルトの名無しさん:2011/01/27(木) 18:26:56
Be
954デフォルトの名無しさん:2011/01/27(木) 18:29:43
long
955デフォルトの名無しさん:2011/01/27(木) 19:43:31
続きはマ板で
956デフォルトの名無しさん:2011/01/27(木) 22:27:26
Formを実行時にデザインモードにする事はできませんか?
ISiteのDesignModeあたり関係無いかと調べてはいるのですが、全くわかりません。
957デフォルトの名無しさん:2011/01/27(木) 23:16:49
なんで実行時にデザインモードにしたいのさ
958デフォルトの名無しさん:2011/01/27(木) 23:38:27
(´・ω・`) …
959デフォルトの名無しさん:2011/01/28(金) 02:35:38
面白いかなって…
960デフォルトの名無しさん:2011/01/28(金) 02:37:10
MSのサンプルにあった気がする
961デフォルトの名無しさん:2011/01/29(土) 01:53:40
静的クラスでインターフェースの継承が使えないのは何か理由があるの?
962デフォルトの名無しさん:2011/01/29(土) 02:00:03
インスタンス化できないからに決まってんだろダアホ
963デフォルトの名無しさん:2011/01/29(土) 02:07:42
静的クラスで継承を使う理由があるの?
964549:2011/01/29(土) 02:49:13
試行錯誤してたんですが、解決しないので質問させてください

string[] temp = GetFileName();

foreach (string n in temp)
 dataGridView1.Rows.Add();

Regex reg = new Regex(@"\[[^]]*\]");
 Match m = reg.Match(temp[0]);

if (m.Success)
 MessageBox.Show("検索された文字が含まれています");

変数tempにファイル名が代入されるんですが
例えば、"[名前1] タイトル1"といファイル名だったら
配列の変数nameに文字列"名前1"、同じく配列の変数titleに文字列"タイトル1"と代入したいのですが
含まれていた場合、文字列を抜き出すというのが理解できません
自分でも調べてみたんですが、文字列が含まれていたかいないかくらいしか判断できません
どのようにしたら抜き出せるんでしょうか?
965デフォルトの名無しさん:2011/01/29(土) 04:59:41
>>961
普通に考えて、使う理由考える方が大変。

>>963
Java 屋さんかな?
Java だと(アノテーションがなかった頃の習慣で)C# なら属性使うような場面でインターフェイスのから実装する場合があるんで。
966デフォルトの名無しさん:2011/01/29(土) 05:04:27
>>964
() でくくって、Match.Group で拾う。

\[([^\]]*)\]\s*(.*) でマッチさせて m.Group[1], m.Group[2] か、
\[(?<name>[^\]]*)\]\s*(?<title>.*) でマッチさせて m.Group["name"], m.Group["title"]。
967デフォルトの名無しさん:2011/01/29(土) 06:40:01
>>961
多分実装が楽だったから。staticクラスは実質abstract sealed classらしいよ
まあインスタンス作れないのはいいんだけど、抽象化が全然できなくなるから割に合わないな
968デフォルトの名無しさん:2011/01/29(土) 09:38:08
意図的に制限しているだけで、実装は全く関係ないよ
CLI的にはインターフェイスを実装できない理由は全く何もない
意味的におかしいから使えなくしてある
969デフォルトの名無しさん:2011/01/29(土) 09:53:26
もし継承可能だと、違うクラス名で同じスタティック変数アクセスできたりするからな
危険って言えば危険
970デフォルトの名無しさん:2011/01/29(土) 10:33:02
ファイル検索に関する質問

2chlog.txt というファイルのパスを取得するexeを作成するのですが、実装方法で悩んでいます

前提条件として
1.2chlog.txtはOS(XP、VISTA、7 の3つのみでいい)によって格納パスが違う
 また、どのドライブにあるかも不明(Aというソフトのインストールドライブにできる)
2.exeを利用するユーザーのPCのOSはXP、VISTA、7のどれかは不明

よろしくお願いします
971デフォルトの名無しさん:2011/01/29(土) 10:34:38
あと
4.ユーザのPCのドライブ構成は不明(どんなPCから操作されるかわからない)

よろしくお願いします
972デフォルトの名無しさん:2011/01/29(土) 10:39:08
起動時見つからなかった場合だけダイアログ開いて指定させろよそんなの。
973デフォルトの名無しさん:2011/01/29(土) 10:41:20
再帰呼び出し
974デフォルトの名無しさん:2011/01/29(土) 10:42:17
>>970
そのテキストファイルが、ユーザーが作ったものなら>>972みたいに
ユーザーに指定させるしかないわな。
975デフォルトの名無しさん:2011/01/29(土) 10:46:27
こんな感じ?

1. 検索ソフトの初回起動時にのみ以下の動作をさせる
 - OS のバージョンを調べる
 - OS のバージョンごとに特定のフォルダに検索を掛ける
 - 検索はスレッドを立てて水面下で行う
 - 見つかったら設定ファイルかなにかにそのパスを保存しておく

2. 検索ソフトの起動時に以下の動作をさせる
 - 設定ファイルから 2chlog.txt のパスを取得する
 - ファイルがないか、設定ファイルにその記述がなかったらユーザに通知するメッセージボックスを表示してお伺いを立てる
 - ユーザが「検索」を選択したら 1 の動作をさせる
976デフォルトの名無しさん:2011/01/29(土) 10:47:31
ああ、2 の「検索」のときには、検索場所をユーザに選択させる機能も必要か。
977デフォルトの名無しさん:2011/01/29(土) 10:48:04
2chのビュワーみたいなアプリの作るファイルなら、
ユーザーディレクトの下のどこそこみたいに、だいたい
決まってるだろうけど。
978デフォルトの名無しさん:2011/01/29(土) 10:58:30
>>977
すでにある専ブラのログビューワーとかそんなのかもな

UACの関係でフォルダの位置が変わる可能性があるんだっけ?
XPから卒業してないのでvistaや7のように実行ファイルの配下がだめとかそういう世界はよくわからんがw
979デフォルトの名無しさん:2011/01/29(土) 11:09:38
>>975
ありがとうございました。


OSのバージョンをGetする実装はどぼん.netにあったのでぱくろうと思います

> - OS のバージョンごとに特定のフォルダに検索を掛ける

ここの実装が悩みどころですが以下のような実装にしようと思います、
1.Directory.GetLogicalDrives()でユーザーのPCのドライブ一覧を取得しリストに格納
2.foreach((各ドライブ) in (1.で格納したドライブの一覧リスト))
{
  (各ドライブの中に「2chlog.txt」が存在するか調べる処理)
}

980デフォルトの名無しさん:2011/01/29(土) 11:28:16
決まったソフト依存なら、レジストリに情報入っていないか?
981デフォルトの名無しさん:2011/01/29(土) 11:29:05
OSの判別とかいらない
Environment.GetFolderPath使え
982デフォルトの名無しさん:2011/01/29(土) 11:37:48
>>980
確かにそうなんですが、古いソフトなんで調査に時間がかかりそうなんです
締め切りに間に合わせるために別の方法を探してるわけです^^;


>>981
ありがとうございます
たしかにOS判別いらないですね
メソッドも案外たくさん用意されているのですね

983デフォルトの名無しさん:2011/01/29(土) 11:40:05
ふらっとC#,C♯,C#(初心者用) Part69
http://hibari.2ch.net/test/read.cgi/tech/1296268762/
984デフォルトの名無しさん:2011/01/29(土) 12:08:29
Serializable属性ってのをジェネリックの制約に含めたいのだけど可能でやんすか?
985デフォルトの名無しさん:2011/01/29(土) 14:44:21
属性で制約は無理だな
986デフォルトの名無しさん:2011/01/29(土) 16:29:31
抽象クラスに属性付けてそれで制約するしかないんじゃね
987デフォルトの名無しさん:2011/01/29(土) 16:30:03
ないんじゃね
988デフォルトの名無しさん:2011/01/29(土) 16:31:07
ないよね
989986:2011/01/29(土) 16:32:07
http://msdn.microsoft.com/ja-jp/library/system.serializableattribute.aspx

あ、Inherited=falseだから駄目だね
当然か
990デフォルトの名無しさん:2011/01/29(土) 17:14:01
long型の桁数を調べたいんですが、
ToString()して文字数を数える以外にスマートな方法はありますか?
991デフォルトの名無しさん:2011/01/29(土) 17:14:21
対数
992デフォルトの名無しさん:2011/01/29(土) 17:20:16
対数も使えるのか
サンクス
993デフォルトの名無しさん:2011/01/29(土) 17:32:51
誤差の問題は大丈夫?
大丈夫じゃないんじゃないの?w
単純にx < pow(10, n)を満たす最小のnを求める方が確実に思うけど
994デフォルトの名無しさん:2011/01/29(土) 17:48:14
>>983
995デフォルトの名無しさん:2011/01/29(土) 17:52:02
と思ったが、よくよく考えてみると誤差が±0.5を超えることは絶対にないといっていいから、
常用対数の結果を(int)Math.Round()すれば問題ないかw

適当なこといってごめんよ
996デフォルトの名無しさん:2011/01/29(土) 17:57:02
いや、やっぱ丸めたらダメかw
酒飲んでると思考力落ちるなやっぱり
997デフォルトの名無しさん:2011/01/29(土) 17:59:40
52ビットを超えるような数を使わないならLog、
それ以上が必要なら誤差を実測して補正を掛けるのがいいんじゃない?

可読性考えなければ、ひたすら定数値との比較をするのが一番早い気はする
998デフォルトの名無しさん:2011/01/29(土) 18:02:59
結果が0になるまで10で割り続ければ
999デフォルトの名無しさん:2011/01/29(土) 19:04:04
へえ
1000デフォルトの名無しさん:2011/01/29(土) 19:08:45
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。