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

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

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

↓これは多分釣です

変数名+1という式を実行したいのです
すなわちなぜ数字の1と文字列型の1が存在し区別する必要があるのかということです?
すごく面倒です
2デフォルトの名無しさん:2007/09/29(土) 12:39:59
カタカナの"ロ" と漢字の"口"を区別する必要があるのかということです?

出口を「でぐち」と読むか、「でろ」と読むかの違いだけじゃないですか?
出入口の話は今は関係ありません。
3デフォルトの名無しさん:2007/09/29(土) 12:42:53
コピペ君って馬鹿だな、まで読んだ。
4デフォルトの名無しさん:2007/09/29(土) 12:55:55
前スレで終わりの方にキャストの話が出ていたけど、
c#にはVBのDirectCast相当のものはないの?

あと、これはドトネトの世界に限った話じゃないんだけど、
そもそも「ダウンキャスト」と、string⇒floatとかint⇒floatのような「変換」
ってまったく意味が違うのにどちらも同じ「キャスト」と呼ぶ事の弊害ってあると思うんだが、
あまり指摘されないのは何でかな。
5デフォルトの名無しさん:2007/09/29(土) 13:10:35
値型と参照型の違いについては理解できたいのですが、それがどのように
クラスと構造体に関わっているのかわかりません。
・インスタンスを作成した際に値型と参照型の違いがでるだけですか?
6デフォルトの名無しさん:2007/09/29(土) 15:22:11
>>5
=演算子でオブジェクトコピーをしたい → 値型の構造体にする
=でいちいちコピーする必要ない → 参照型のクラスにする
それだけでしょ
7デフォルトの名無しさん:2007/09/29(土) 16:15:45
>>6
アドバイスありがとうございます。
オブジェクトをコピーしたいというのは、データが小さい場合ですよね?(他にもあるかもしれませんが)
ここでいう、データとは何をさしているのでしょうか?
お手数をおかけしますが、よろしくお願いします。
8デフォルトの名無しさん:2007/09/29(土) 16:18:10
(非静的な)フィールドのこと。
9デフォルトの名無しさん:2007/09/29(土) 16:32:57
>>8
なんとなくですが、理解することができました。
ありがとうございました。
10デフォルトの名無しさん:2007/09/29(土) 16:48:39
>>4
dynamic_cast/static_cast/reinterpret_cast/const_cast
C++だとこの4つに区分けしたわけだが、
dynamic_castとstatic_castは危険なキャストでなく、
コンパイラもプログラマも混同することはないため、
この2つにはC-Typeのキャストですませることが多い。(異論もあるだろうけど)
C#はキャストのタイプはdynamic_castとstatic_castの2つだけなので、
無駄に構文を増やさずC-Typeのキャストだけで行くことに決めたのだと思うな。

余談だが、継承関係にあるクラス間でexplicit/implicitで変換演算子を定義すると
変なことになる予感もする。DirectCastがあるとこの辺の混乱が防げる??
11デフォルトの名無しさん:2007/09/29(土) 17:28:07
前スレでC#でExcelのシート作るには
マクロを実行させてマクロで作ってしまえと言ってた奴がいたが
これのサンプルとかあります?
12デフォルトの名無しさん:2007/09/29(土) 17:30:59
>>10
そりゃさすがに異論出すよ。

static_castはC形式のキャストで代用できるが、dyamic_castは代用できない。
もし、クラスのダウンキャストにC形式のキャストを使っていたら、
それはstatic_cast相当(実行時チェックなし)で行われる。
13デフォルトの名無しさん:2007/09/29(土) 17:42:35
言語の構文の話だろうに何を言ってんだ?
14デフォルトの名無しさん:2007/09/29(土) 18:57:53
>>10
>継承関係にあるクラス間でexplicit/implicitで変換演算子を定義すると 
さすがにそれはガードがかかってる。

CS0554: 派生クラスへ/からのユーザー定義の変換です。
15デフォルトの名無しさん:2007/09/29(土) 23:49:21
>>11
解釈が違うかもしれないが…

全部VBAでやれ!
全部VBAでやれ!
全部VBAでやれ!
16デフォルトの名無しさん:2007/09/30(日) 00:06:00
Reflectorっていうのを使ってみたら、実行バイナリのソースが全て忠実に見えてしまうんですが。
これはどうしようもないことですか?
17デフォルトの名無しさん:2007/09/30(日) 00:15:58
逆に考えるんだ。

前任者の作ったソースのなくなった糞アプリもナントカできる。
18デフォルトの名無しさん:2007/09/30(日) 00:39:35
>>15
解釈違いすぎだろ

動的にVBAのコード作りたいんだよ
19デフォルトの名無しさん:2007/09/30(日) 00:54:08
いみわけわか
20デフォルトの名無しさん:2007/09/30(日) 01:43:10
>前スレ999
前に試したときはasの方が速かった気がしたんだが、今試してみたら差が出なかった。
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/005castandas/castandas.html
この辺の記事でasの方が速いと思い込んでたかも。
21デフォルトの名無しさん:2007/09/30(日) 01:54:45
VS2005を使ってますが、特定のメソッドを使った場合に投げられる可能性のある例外を列挙することはできますか?

void Hage()
{
  // 例外を投げる可能性のある処理
}

void Baka()
{
  try {
    Hage();
  } catch (...) { // 全て捕まえたい
   ...
  } catch (...) {
   ...
  }
}

処理が同じならExceptionを捕まえるだけでいいと思いますが。
22デフォルトの名無しさん:2007/09/30(日) 02:29:02
できません。
23デフォルトの名無しさん:2007/09/30(日) 02:52:16
>>20
速度が気になるなら.NETは止めれ
24デフォルトの名無しさん:2007/09/30(日) 02:57:30
どんだけクリティカルな処理だよ

あと.NETは最初のJITコンパイルが終われば結構速いぞ
25デフォルトの名無しさん:2007/09/30(日) 11:51:31
asが特殊なIL吐くってわけじゃないしね。
あくまでtryブロックで囲ったりisで二回型チェック入れるよりはマシってだけでしょ。
26デフォルトの名無しさん:2007/09/30(日) 14:31:33
is→キャストの2回チェックをしてたら無駄があるってだけの話だろ。
isチェックなしでいきなりキャストなら別に無駄なんて無い。
27デフォルトの名無しさん:2007/09/30(日) 17:53:30
川俣は記事のネタのためならどんな紛らわしいことでも平気でするからな。
あんな意味ないパフォーマンス比較なんて馬鹿なことを平気でする。
で気になるasとキャストのシンプルな比較はやらない。
でもasの方がやや速いとか書いてる。
まあ正直そんな程度の速度差なんてどうでもいいことではあるが
だったらasのが速いという結果を示せっての。
あの結果だけならむしろキャストのが若干速いようにも見えなくもないぞ。
28デフォルトの名無しさん:2007/09/30(日) 19:47:55
なんか川俣をやたらと目の敵にする奴っているけど何だろうねw
読んだところ別に大げさでもないし間違った方向に誘導するような記事でもないと思うんだが。

こういう奴って2chの政治系の板によくいる、批評家に悪態をつけば自分が賢くなったと思っちゃう
ネトウヨ君と同じメンタルなんじゃないの?
ジャイアンが「のび太のくせに〜」って言うようなさw
29デフォルトの名無しさん:2007/09/30(日) 19:48:37
草生やすほど面白いとは思えない
30デフォルトの名無しさん:2007/09/30(日) 20:13:01
いまいち。
しかし勘違いしてたやつはいっぱいいたなw
31デフォルトの名無しさん:2007/09/30(日) 20:15:43
皆IDLasmでILみたりしないのかね
32デフォルトの名無しさん:2007/09/30(日) 20:15:53
>批評家に悪態をつけば自分が賢くなったと思っちゃう
思わねーよふつうは。
33デフォルトの名無しさん:2007/09/30(日) 20:17:55
思うよふつうは。
34デフォルトの名無しさん:2007/09/30(日) 20:56:26
>>31
il分かんないので教えてくれるサイト教えてください
35デフォルトの名無しさん:2007/09/30(日) 20:59:09
36デフォルトの名無しさん:2007/09/30(日) 21:37:12
DataGridViewのColumnのチェックボックスのコントロールなんですが、
ユーザが行を追加した場合のデフォルト値ってプロパティから決められなかったりします?
37デフォルトの名無しさん:2007/10/01(月) 02:11:29
毎日決められた時刻になったらイベントが起こって何か処理をする
という動きをするコントロールってありますでしょうか?
スケジューラみたいな感じで
38デフォルトの名無しさん:2007/10/01(月) 11:09:20
39デフォルトの名無しさん:2007/10/01(月) 11:12:43
3つほどあるTimerクラスのどれかがそんなんだった
40デフォルトの名無しさん:2007/10/01(月) 12:45:37
>>37
タスクスケジューラーにコマンドで追加か、
常駐APになるけどスレッドタイマーを使うのが一番簡単じゃねーかな
41デフォルトの名無しさん:2007/10/01(月) 21:18:39
42デフォルトの名無しさん:2007/10/01(月) 22:01:49
つうかExcelはSQLServerみたいにCLRのホスティング機能をつける気はないのかね

C#でモリモリマクロ書きたいな
VBAは普段あんま使わないから忘れちゃうんだよな
43デフォルトの名無しさん:2007/10/01(月) 22:05:55
>>42
いちおうVSTOがそれだけど結局COMで中途半端なんだよね。
44デフォルトの名無しさん:2007/10/01(月) 22:13:36
自分でいとうせいこうしてそういうの作ればいいじゃん
45デフォルトの名無しさん:2007/10/01(月) 22:16:33
WSHのJScriptで書くのは結構気持ちいい
46デフォルトの名無しさん:2007/10/02(火) 01:23:19
あえてVSTO買う気にはならんけど
VSTOって使い勝手どう?
Excelのシート作りたいだけなのに
わざわざVSTOに金かけたくないんよね
47デフォルトの名無しさん:2007/10/02(火) 05:42:27
変数とか代入とかわkらないんですけど
どこで勉強すればいいのん?
48デフォルトの名無しさん:2007/10/02(火) 07:28:34
VIP
49デフォルトの名無しさん:2007/10/02(火) 08:08:43
50デフォルトの名無しさん:2007/10/02(火) 18:07:38
質問です。
浮動小数点型の数字を指数部と仮数部に分けたいのですが、
どのようにしたらいいでしょうか?
51デフォルトの名無しさん:2007/10/02(火) 18:26:24
普通にそういうメソッドなかったっけか?
52デフォルトの名無しさん:2007/10/02(火) 18:33:15
ないでしょ。
だって内部では10を基数にしてるわけじゃないんだから、
有効数字を何桁にするかで答え変わっちゃうじゃん。

どうしてもやりたければ書式指定してToStringで一旦文字列にするしかないと思う。
53デフォルトの名無しさん:2007/10/02(火) 18:35:59
>>50
.NETのSingle/Doubleは普通のIEEE 754形式だから、UInt32*/UInt64*にキャストしてビット演算すればおk
54デフォルトの名無しさん:2007/10/02(火) 18:48:00
>>52が何を言いたいのか理解できないんだけど…
55デフォルトの名無しさん:2007/10/02(火) 18:49:49
>>53
だから基数はいくつだよw

>>54
それは52の文章がわからないんじゃなくて基数って概念がわからないんでしょ。
56デフォルトの名無しさん:2007/10/02(火) 18:56:45
IEEE 754形式の基数は2です。
57デフォルトの名無しさん:2007/10/02(火) 19:04:44
で、底が2の指数部の値をもらって嬉しいのかよ?w
58デフォルトの名無しさん:2007/10/02(火) 19:13:23
俺はすぐに思いつかんが、指数部・仮数部のビット列を得て役立つこともあると思う。

それはともかく、50はCでいうところの
frexpのような関数が欲しいという可能性も考えられる気がする。
仮にそうだとしたら、msvcr??.dllからDllImportしろと言うところだが。
59デフォルトの名無しさん:2007/10/02(火) 19:22:50
嬉しいのかどうかは>>50に聞けよ。
6050:2007/10/02(火) 23:23:41
>>51
ないっぽいです。

>>52
やっぱりそれしかないですかね…
C++/CLIでfrexpというのも考えたのですが、そこから基数を10に戻すのがわからない… orz

今やりたいのは仮数部の小数点を消した値と、指数がほしいので、frexpのように2の指数
で返されると後どうすればいいのかわからないので>>52の方法をとろうと思います。

ありがとうございました。
61デフォルトの名無しさん:2007/10/02(火) 23:36:10
俺もそのうち読もうと思っているけど多分これ。
http://portal.acm.org/citation.cfm?id=93559
62デフォルトの名無しさん:2007/10/02(火) 23:48:45
ソフトウェア開発者のテキストで勉強したら?


俺はもう憶えてない…
63デフォルトの名無しさん:2007/10/03(水) 01:58:41
アンマネージ一切触ったことないけど、一度intにキャストしたやつと、
元の浮動点少数変数からキャスト後の値を引いたやつ、とかできないんだっけ?
64デフォルトの名無しさん:2007/10/03(水) 02:00:02
ごめん勘違い。
65デフォルトの名無しさん:2007/10/03(水) 10:09:24
<?php
if (isset($_FILES)) {
// Exif情報の全取得
$exif = @exif_read_data($_FILES["imagefile"]["tmp_name"], 0, true);

if ($exif) {
$exif_data = "";
// Exif情報の解析
foreach ($exif as $key => $section) {
foreach ($section as $name => $value) {
if (is_array($value)) {
foreach($value as $k => $v) {
$exif_data .= htmlspecialchars("$key.$name.$k: $v",
ENT_QUOTES) . "<br />\n";
}
} else {
$exif_data .= htmlspecialchars("$key.$name: $value",
ENT_QUOTES) . "<br />\n";
}
}
}
} else {
$exif_data = "Exif情報がありません";
}

}
66デフォルトの名無しさん:2007/10/03(水) 10:09:54
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Exif関数サンプル</title>
</head>
<body>
<h1>Exif関数サンプル</h1>
<form method="post"
action="<?php echo $_SERVER['SCRIPT_NAME']; ?>"
enctype="multipart/form-data">
<input type="file" name="imagefile" />
<input type="submit" value="送信" />
</form>
<div>
<?php echo $exif_data; ?>
</div>
</body>
</html>
67デフォルトの名無しさん:2007/10/03(水) 10:11:03
>>65-66
これはPHPで書いたものですが、C#で書いたらどのようになるかC#で書いてみてください!





お願いします!!
68デフォルトの名無しさん:2007/10/03(水) 10:19:08
丸投げすんな
69デフォルトの名無しさん:2007/10/03(水) 10:20:41
ASP.NETスレで聞くといい
70デフォルトの名無しさん:2007/10/03(水) 11:13:35
【盧大統領】歓迎夕食会でハプニング〜金総書記「長生きして」突然マイク握り乾杯の音頭[10/02]
http://news21.2ch.net/test/read.cgi/news4plus/1191357269/
71デフォルトの名無しさん:2007/10/03(水) 11:14:20
やば誤爆った
すまん
72デフォルトの名無しさん:2007/10/03(水) 18:49:56
ネトウヨ君PGかw
はっきり言ってネトウヨになっちゃう程度の知能ならPGとしての大成は望めないと思うよ
73デフォルトの名無しさん:2007/10/03(水) 19:37:29
ウヨクもサヨクもPGとしての大成は望めないと思うよ
74デフォルトの名無しさん:2007/10/03(水) 19:49:48
PGってなに?w
75デフォルトの名無しさん:2007/10/03(水) 19:51:04
プロクター ギャンブル
76デフォルトの名無しさん:2007/10/03(水) 20:00:10
ペログリ
77デフォルトの名無しさん:2007/10/03(水) 21:22:21
PGが大成するとどうなるの?
78デフォルトの名無しさん:2007/10/03(水) 21:29:17
SEになる
79デフォルトの名無しさん:2007/10/03(水) 21:38:47
Super Ero
80デフォルトの名無しさん:2007/10/03(水) 21:54:11
>>78
。・゚・(ノД`)・゚・。
81デフォルトの名無しさん:2007/10/03(水) 22:33:03
List<Hoge> 内の物を List<object> にAddRangeする場合、そのままじゃダメなんですが、どうすればいいですか
82デフォルトの名無しさん:2007/10/03(水) 22:40:42
objectList.AddRange(hogeList.ToArray())
でとりあえずは出来るんじゃない?
効率がいいかどうかは知らないけど
83デフォルトの名無しさん:2007/10/04(木) 00:02:53
C#って(ってかMSILって)飽和演算ないんでしょうか?

2枚のBitmapを飽和加算したいんですが、
各ピクセルのRGBそれぞれについてMath.Min(c,255)とかやりたくないんで...
84デフォルトの名無しさん:2007/10/04(木) 00:04:42
Cの様にビット演算を駆使すれ
85デフォルトの名無しさん:2007/10/04(木) 01:10:38
string str = @"c:\hoge.txt";
みたいに@をつければstrをファイルパスとして扱えますが、
str = "c:\hoge.txt";
のように、普通の文字列として値が入っているstrをファイルパス用の
文字列に変換するにはどうすればいいのでしょうか?
str = @str;
みたいなイメージなんですが…
86デフォルトの名無しさん:2007/10/04(木) 01:18:22
>>85
ファイルパス…
87デフォルトの名無しさん:2007/10/04(木) 01:20:59
>>85
@使った文字列リテラルは、単に\のエスケープをしなくなるだけで、同じstringだぞ。
88デフォルトの名無しさん:2007/10/04(木) 02:20:43
世のシステムはこんなやつらが作ってんだぜ?
89デフォルトの名無しさん:2007/10/04(木) 03:51:24
まあここはふらっとだし
90デフォルトの名無しさん:2007/10/04(木) 03:58:13
エスケープ文字について調べてごらんよ。

>普通の文字列として値が入っている
というあたりに、ちょっと理解不足がかいま見えるので。

string str1 = "c:\hoge.txt";
string str2 = "c:\\hoge.txt";
string str3 = @"c:\hoge.txt";
string str_newline = "c:\noge.txt";

として、それぞれメッセージボックスにでも表示してみれば分かるよ。
91デフォルトの名無しさん:2007/10/04(木) 04:10:03
StringってUTF-16じゃなくてもいいの?ヌル文字入れたり、ushort[]のように使ったり。
あと、UTF-8とかUTF-32の文字列クラスってないの?
92デフォルトの名無しさん:2007/10/04(木) 07:38:28
つbyte[]
つSystem.Text.Encoding
93デフォルトの名無しさん:2007/10/04(木) 16:39:41
文字列を後ろから順番に処理していきたい
例えば
string s="1234567890";
を処理して 1,234,567,890
ってやろうとしてるんだが、文字列を後ろから一文字ずつ取得はどうやるんでしょう?
Cだと、レングス求めてポインタをマイナスしてくとか、char str[100]とかで配列の後ろから処理してけば楽勝なんですが
同じような事出来ますか?
今はかなり煩雑なことやってます
94デフォルトの名無しさん:2007/10/04(木) 16:46:36
for(int i=sLength-1;i>=0;i--)
{
char c =s[i];
}
95デフォルトの名無しさん:2007/10/04(木) 16:47:27
>>93
>レングス求めてポインタをマイナスしてくとか、
Chars, Length

>char str[100]とかで配列の後ろから処理
ToCharArray
96デフォルトの名無しさん:2007/10/04(木) 16:48:06
>>94
訂正
sLength → s.Length
97デフォルトの名無しさん:2007/10/04(木) 17:00:51
とりあえず例が例になってないからおちつけ。

1、lengthでforループして後ろから順番に文字を取得して文字配列を作る。>>94と同じ
2、Stringインスタンスを作る。その際に文字配列を渡す。
98デフォルトの名無しさん:2007/10/04(木) 17:05:21
99デフォルトの名無しさん:2007/10/04(木) 17:37:35
>>94-98
サンクス
char[] c = s.ToCharArray();
これで文字列からcharの配列に変換出来るんですね。
感謝です。
符号無視で適当に作ったもの↓

string s = "123456789";
char[] c = s.ToCharArray();
int j = s.Length - 1;
string s2 = "";
for (int i = 0; i < s.Length; i++)
{
s2 = c[j--] + s2;
if (i % 3 == 2 && i != s.Length-1)
s2 = "," + s2;
}

または小数点部が無い場合は

string s3 = String.Format("{0:#,0}",int.Parse(s));

で簡単に出来ました。
@ITの資料ページは参考になりました。
有難うございます。
100デフォルトの名無しさん:2007/10/04(木) 17:56:16
なんでchar配列にする必要があるの?
・・・まさかstringのインデクサで文字が取得できることを知らない?

101デフォルトの名無しさん:2007/10/04(木) 18:21:28
XMLコメントをソースとは別の外部ファイルに書くなんてことはできないでしょうか?
インテリセンスで説明を出せるのは便利なんですが、
コード中にだらだら書いてるとコメントだらけになって見づらいのでなんとかしたいのです。
102デフォルトの名無しさん:2007/10/04(木) 18:28:43
>>100
インデクサという言葉も知りませんでした
今調べてそんなことが出来ると知りました
そのまんま s[1] みたいに使えるんですね・・・
便利。
103デフォルトの名無しさん:2007/10/04(木) 21:17:19
異なるクラスを as でキャストするようなサンプルが手元にあります。
ふたつのクラスは共に同じ親を持っていません。
ですが、 as によるキャストでは true が返って来ます。

ClassB cb = new ClassB();
ClassA ca = cb as ClassA

as はメンバの名前やそのサイズが一致していればクラスをキャストできるのでしょうか?

手元にあるソースコードというのは、↓の XNA のサンプルコードです。

http://creators.xna.com/Headlines/developmentaspx/archive/2007/01/01/Collision-Series-4_3A00_--Collision-with-a-Heightmap.aspx
104デフォルトの名無しさん:2007/10/04(木) 21:29:08
as検索しても一箇所しかなかったんだが、これか?
heightMapInfo = terrain.Tag as HeightMapInfo;

これのことなら、ObjectをHeightMapInfoにダウンキャストしてるだけ。
105デフォルトの名無しさん:2007/10/04(木) 21:33:02
コードみてないけど、変換演算子でも定義されてんじゃね
106デフォルトの名無しさん:2007/10/04(木) 21:42:05
asでユーザ定義変換は呼ばれないよ。
107デフォルトの名無しさん:2007/10/04(木) 21:43:37
>>104

TerrainProcessor.cs の

model.Tag = new HeightMapInfoContent(heightfield, terrainScale, terrainBumpiness);

というところで、 HeightMapInfoContent というクラスを model.Tag へ代入しているのですが、


HeightmapCollision.cs の

heightMapInfo = terrain.Tag as HeightMapInfo;

というところでは、 その model.Tag に代入された HeightMapInfoContent クラスを、
HeightMapInfo クラスとして取り出しています。


>>105

変換演算子は定義されてないと思います。
108デフォルトの名無しさん:2007/10/04(木) 22:02:35
>>107
処理系持ってないしXNA触ったことないから、ソース見た印象でしか答えられないんだが、
おそらくコンパイルタイムにシリアライズされて、ランタイムにデシリアライズされることを利用してる。

即ち、HeightMapInfoWriterを用いて、HeightMapInfoContentをHeightMapInfoと同じ形式で
シリアライズすることによって、デシリアイザを騙して実行時にHeightMapInfoにデシリアライズ
されるようにしているんだと思う。推測だけど。
109108:2007/10/04(木) 22:05:37
要するに、HeightmapCollisionPipelineディレクトリとHeightmapCollisionディレクトリの
プログラムが実行されるタイミングが違うってところが味噌だね。これも適当だけど。
110デフォルトの名無しさん:2007/10/04(木) 22:14:19
>>108

分かりやすい説明ありがとうございます。
なんとなく処理の内容が掴めました。
override している辺りが最高に怪しいですね。
111デフォルトの名無しさん:2007/10/04(木) 23:32:59
>107
asは型が違う場合、nullが返るだけだから
とりあえず動くんじゃないかと。
112デフォルトの名無しさん:2007/10/05(金) 00:05:50
DataGridViewRow row = new DataGridViewRow();
row.CreateCells( datagridview );
として行の初期化処理を行った後、
row.Cells[ "Key" ] = value;
と値を入れ込んで、最後にdatagridviewに追加したいのですが、
CreateCellsではセルのName属性までは設定してないようです。
datagridviewで設定してある各列のName属性をrowのCellsに設定する
良い方法はありますでしょうか?
それともforeachで一個ずつ指定して行かないとダメでしょうか。
113デフォルトの名無しさん:2007/10/05(金) 00:15:55
ああ、CellとかColumnにName属性があるわけじゃなく、
datagridviewで単にColumnのコレクションのキーをNameとして表示してるだけ…なんですかね?
要するに
DataGridViewRow row = new DataGridViewRow();
row.CreateCells( datagridview );
//なにか
row.Cells[ "Key1" ] = value1;
row.Cells[ "Key2" ] = value2;

ということがしたいだけなんですが…
114デフォルトの名無しさん:2007/10/05(金) 01:14:41
lockを使った同期についてなんですが、すべてのスコープから見えるところに
object lockObj = new object();
を作り、すべてのスレッドのすべてのメソッドの中身をlock ( lockObj ) で
囲ってやれば、シングルスレッドと同じような意識でコーディングできるという
考えは正しいでしょうか?
周期的にある処理を呼び出したいのでTimerのTickを使ってるんですが、
必ずしもn秒毎とかじゃなくて、他の処理の邪魔にならないタイミングで
呼ぶようにしたいのです。
115デフォルトの名無しさん:2007/10/05(金) 01:43:12
>>114
ロックは局所的に考えて使わないとデットロックとかいろいろ起きるぞ。
なにも考えないでというのは無理。
116デフォルトの名無しさん:2007/10/05(金) 04:02:52
× デットロック
○ デッドロック
117デフォルトの名無しさん:2007/10/05(金) 04:31:17
>>114
よくある方法としてはスレッド間で共有する変数とその操作をクラスでラップする。
class ThreadShare {
 int i, int j; // 共有する変数
 object sync = new object(); // 同期オブジェクト
 public void 操作1() { lock(sync){ i, j へのアクセス} }
 public int 操作2() { lock(sync){ i, j へのアクセス} }
}
lock(this) でも良さそうなものだが、thisは外部から使われる可能性があるので
privateに同期用のobjectを持つことが推奨されている。
そういう意味でどこからでも見える位置にsyncを置くのは良くない。
118デフォルトの名無しさん:2007/10/05(金) 11:19:11
IEやFirefoxなどのブラウザに付いている様なキャッシュ機能を付けたいのですが、
どこかにStreamベースの実装例はないでしょうか?
119デフォルトの名無しさん:2007/10/05(金) 18:35:20
構造体は値型なので、構造体をメソッドに渡すときは、できるだけrefを使うと思うんですが、
.NETのライブラリでrefを使ってるところを見たことがありません。
たとえば Graphics.DrawString は構造体 RectangleF を受け取りますが、refは使わないでコピーしてます。
このメソッドはGDI+の Gdiplus::Graphics::DrawString に当てはまると思いますが、
ネイティブのC++での定義を見ると const Gdiplus::RectF & なので、ちゃんと参照使ってます。constなので書き換えもされません。
C#のほうでrefが使われていない理由が分からないんですが、何か理由があるんですか。
120デフォルトの名無しさん:2007/10/05(金) 18:53:25
JITコンパイル時に最適化されるから。

構造体をポインタや参照で渡したり返したりするのは、
オプティマイザが馬鹿だった時代の名残にすぎない。
121デフォルトの名無しさん:2007/10/05(金) 19:08:10
されてるといいね。
122デフォルトの名無しさん:2007/10/05(金) 19:10:46
>>119
P/Invokeなど特殊な用途を除いてライブラリではサイズの大きな構造体がそもそもない。
サイズが小さければ参照よりコピーの方が効率的。
関数から構造体を返す場合関数の値(戻り値)で返す。
refを使うケースは2値以上返す必要がある場合に限られる。
123デフォルトの名無しさん:2007/10/05(金) 20:47:49
>>120
値で渡したのに最適化されて参照わたすのかよ
おかしくね?
124デフォルトの名無しさん:2007/10/05(金) 20:48:24
論理的に同じことなら何してもかまわんさ
125デフォルトの名無しさん:2007/10/05(金) 20:51:35
時々思うんですがイベントで

 if (this.ItHappened != null) this.ItHappened(this, new EventArgs());

みたいに明示的にnullチェックする必要があるのは何故なんでしょう?

 this.ItHappened(this, new EventArgs());

だけでnullチェックを内包してくれた方が便利だと思うんですが。
パフォーマンスの観点でも無視できる範囲、というかnullチェックしないでいい場面自体思いつかないですし。
自分の場合毎回nullチェックするのが馬鹿馬鹿しいのでInvokeItHappened()のようなメソッドを定義しているのですが・・・。

まあ割りとどうでもいい素朴な疑問です。
126125:2007/10/05(金) 20:53:18
あー書き込んだ瞬間理由がわかりました。
後者だとイベントを実行する必要がない場合でも無駄にEventArgsがインスタンス化されてしまうからですね。
スレ汚し失礼しました。
127デフォルトの名無しさん:2007/10/05(金) 20:53:45
違うし
128デフォルトの名無しさん:2007/10/05(金) 20:54:23
イベントごとにOnItHappened(EventArgs e)を作れってMSDNに書いてあるだろう?
129デフォルトの名無しさん:2007/10/05(金) 20:56:26
使っていないイベント一つ一つにインスタンスを持たせるのはもったいないからnullにしたいというのとか
コンストラクタでデリゲート渡してそのまま変更しないとかの場合にはnullになるケースがないから
nullチェック要らないとか
130デフォルトの名無しさん:2007/10/05(金) 20:59:14
>>125
nullチェックが何度も要るってのはどこか設計がおかしいだろ。

protected void OnItHappened(EventArgs e){
if (this.ItHappened != null) this.ItHappened(this, e);
}

普通はこうやって定義して一回で済むと思うんだが。
131125:2007/10/05(金) 21:03:12
>>128
そういえばそうでした・・・
じゃあ明示的なnullチェックが必要になっているのは何故なんでしょうね?

>>129
一行目に関しては毎回暗黙的にnullチェックしてくれれば問題はなく、
二行目に関しては余分なnullチェックくらいではパフォーマンスへの影響は皆無だというのが自分の考えです。

まあいずれにせよOnItHappenedパターンではイベントを呼び出すのは一箇所なので
余分にコーディングが必要になってもさほど問題はないってことなんですかね。
132デフォルトの名無しさん:2007/10/05(金) 21:07:39
まあ正直eventにnullチェック要求するのは美しくない思うけどね
C++/CLIみたいにraiseが欲しかった
133デフォルトの名無しさん:2007/10/05(金) 21:48:38
>>128
2005になってからMSDNのその場所は読んでなかった。
今は委譲モデルと継承モデルを両方サポートしろになってるし、
null判定後にnullになる可能性があるからtempにコピーしろとか書いてありますね。
EventHandler temp = myEvent;
if (eh != null) temp(this, new EventArgs());
ちゃんと読まないといかんな。
134デフォルトの名無しさん:2007/10/05(金) 22:40:00
>>133
委譲でも継承でもないイベントモデルがC#3.0で追加されてる
Partial Method、これはある意味最強
135デフォルトの名無しさん:2007/10/05(金) 22:45:28
>>132
俺は逆に美しいと思うよ。

VB系の暗黙の〜見てると反吐が出る。
136デフォルトの名無しさん:2007/10/05(金) 22:45:33
>>134
ちょっとでも、用途限られるけどね。
あと、副作用強い。

a = 0;
this.SomePartialMethod(a = 10);
の挙動とか考えるとちょっと怖い。
137デフォルトの名無しさん:2007/10/05(金) 23:02:56
呼び出しが削除されたらaが昇格されないってこと?
どうせ使用されないんだから問題ないんじゃないの?
138デフォルトの名無しさん:2007/10/05(金) 23:08:36
そこはTrace, DebugオブジェクトやConditionalAttributeも同じ。
>>136の例だとパーシャルメソッドの実体が定義されなければaが10にならない。
139デフォルトの名無しさん:2007/10/05(金) 23:21:26
人間に直接呼ばれないメソッドのための機能でしょ?
140デフォルトの名無しさん:2007/10/06(土) 00:01:50
>>133
みたいなのシングルスレッドなら必要ない?
141デフォルトの名無しさん:2007/10/06(土) 00:20:08
意図せずして他のスレッドから呼ばれるかもしれないから、要る。
142デフォルトの名無しさん:2007/10/06(土) 00:32:47
でもそこまで気にするんだったら
if (obj.SomeProperty is SomeType) (SomeType)obj.SomeType ...はやめろとか
考えてたらキリが無いと思うけど
143デフォルトの名無しさん:2007/10/06(土) 00:35:56
as 使えよ
144デフォルトの名無しさん:2007/10/06(土) 00:58:30
>>135
暗黙の〜が何を意味しているか分からないけど
イベントに関してはVBのRaiseEvent方式の方がずっと直観的で美しいと思うけどな。

もちろんその美しさはイベントの本来の姿を隠蔽することによって得られたものではあるが、
かといって何か不都合があるほど隠蔽しているわけでもなし。
145デフォルトの名無しさん:2007/10/06(土) 01:20:39
せっかくイベントをデリゲートから分離したのに、
結局まるっきりデリゲートってのが気に食わん
146デフォルトの名無しさん:2007/10/06(土) 01:32:14
イベントをデリゲートから分離

↑なにこのアフォw
147デフォルトの名無しさん:2007/10/06(土) 02:08:41
VB.netの話しじゃね
148デフォルトの名無しさん:2007/10/06(土) 02:44:03
149デフォルトの名無しさん:2007/10/06(土) 02:56:20
forループ内でThreadPoolを使用したメソッドを3回実行した場合、
実行される順序を1、2、3と固定にしたいのですが、どんな手があるでしょうか?
150デフォルトの名無しさん:2007/10/06(土) 03:22:11
>>149
それぞれスレッドの開始時にフラグを立て、
二番目のスレッドの先頭で一番目のフラグが立つまでブロックし、
三番目のスレッドの先頭で二番目のフラグが立つまでブロック。
これくらいしかないんじゃない?
151デフォルトの名無しさん:2007/10/06(土) 09:03:37
>>149
ひとつのスレッドで3つの処理を順に処理する。早い話が専用threadpoolを作る。
BlockingQueueがあれば実装は楽だが、見当たらないので作ってみた。

class BlockingQueue<T> {
 object sync = new object();
 Queue<T> qu = new Queue<T>();
 public T Dequeue() { lock(sync) { 
  while (qu.Count==0) Monitor.Wait(sync);
  return qu.Dequeue(); }}
 public void Enqueue(T item) { lock(sync) { qu.Enqueue(item); Monitor.PulseAll(sync); }}
}
152デフォルトの名無しさん:2007/10/06(土) 09:05:39
class SinglePool {
 struct QueueItem { public WaitCallback callback; public object state; };
 Thread worker;
 BlockingQueue<QueueItem> bq = new BlockingQueue<QueueItem>();
 public SinglePool() {
  worker = new Thread(Worker); worker.IsBackground = true; worker.Start();
 }
 void Worker() {
   for (;;) { QueueItem qi = bq.Dequeue(); qi.callback(qi.state); }
 }
 public bool QueueUserWorkItem(WaitCallback callback, object state) {
    if (callback == null) return false;
    QueueItem qi; qi.callback = callback; qi.state = state; bq.Enqueue(qi);
    return true;
 }
 public bool QueueUserWorkItem(WaitCallback callback) {
    return QueueUserWorkItem(callback, null);
 }
}
153デフォルトの名無しさん:2007/10/06(土) 12:20:26
初心者向けによさそうな本が出ていたよ。
154デフォルトの名無しさん:2007/10/06(土) 12:35:17
なんて本か書いてくれよ…
155デフォルトの名無しさん:2007/10/06(土) 13:18:37
System.Drawing.Imageクラスを継承したいのですが、Imageクラスのコンストラクタのアクセスレベルがinternalのため参照できず、コンパイルエラーとなってしまいます。
このようなクラスを継承する方法はないのでしょうか。
156デフォルトの名無しさん:2007/10/06(土) 13:31:08
それ以前にどうして「System.Drawing.Imageクラスを継承したい」の?
157デフォルトの名無しさん:2007/10/06(土) 13:38:32
どうせ継承しても無駄だよ
System.Drawing系は継承によるカスタマイズとか基本的に無理
158149:2007/10/06(土) 14:16:16
>>150-152
thx!!今から試してみます。
159デフォルトの名無しさん:2007/10/06(土) 16:29:03
その各メソッドってなんでスレッドプールになってんの?
まあ市販のコンポーネントとか都合なら仕方ないかもしれないけど
そもそも現在のスレッドで同期的に実行するとか、
単に終わるまでブロックするとかの選択肢は取れないのかな?
160デフォルトの名無しさん:2007/10/06(土) 16:43:50
>>155
処理1の直後に処理2の起動処理を突っ込んじゃだめなの?
匿名メソッドとか使えばさくっと書けそうだけど。
161149:2007/10/06(土) 17:50:44
>>159
説明が分かりづらくてすいません、正しくは
 forループ内でThreadPoolを利用して、特定のメソッド(SampleMethod)を3回実行した場合
でした。以下のような感じです。

WaitCallback wc = new WaitCallback(SampleMethod);
for (int i = 1; i <= 3; i++)
ThreadPool.QueueUserWorkItem(wc, i);

151-152さんので実現できていますが、他に効率的な方法ありますでしょうか?
162デフォルトの名無しさん:2007/10/06(土) 17:54:17
>>161
 delegate{ SampleMethod(1); SampleMethod(2); SampleMethod(3); }
みたいな匿名メソッドを一個だけ起こせばいいんでね?
163149:2007/10/06(土) 18:25:56
>>161
理解力が乏しいので、もう少しお詳しくお願いします。非同期でSamleMethodを実行したいのでThredPoolを利用してます。
164デフォルトの名無しさん:2007/10/06(土) 18:27:17
順序を固定して非同期って?
165149:2007/10/06(土) 18:29:49
非同期と言うよりはFormの操作を受け付けたいのが目的です。
166デフォルトの名無しさん:2007/10/06(土) 18:32:59
あるオブジェクトから他のオブジェクトのイベントを呼び出すには
どうするのが安全でしょうか?
例えば、ボタンAがクリックされたときにある条件がtrueなら、
ボタンAの代わりにボタンBがクリックされたことにするとか
単純に、
A_Click( object sender, EventArgs e ) {
 B_Click( sender, e );
}
とするのは、本来Bがクリックされたときに渡されるsenderとeとは
別のものが渡されて、動作がおかしくなる場合とかないのかと思いまして。
ユーザがBをクリックしたときに呼ばれる場合と同じ条件で呼ぶには
どうすればいいのでしょうか?
167デフォルトの名無しさん:2007/10/06(土) 18:39:16
>>166
まず落ち着いて文章を推敲した方がいいでしょ。
何言ってるのかワケワカランよ。
168デフォルトの名無しさん:2007/10/06(土) 18:39:25
>>165
だったら>>162でいいだろ

>>166
PerformClick
169デフォルトの名無しさん:2007/10/06(土) 19:38:08
ThreadPool.QueueUserWorkItem(delegate{ SampleMethod(1); SampleMethod(2); SampleMethod(3); });
170デフォルトの名無しさん:2007/10/06(土) 20:14:26
>>166
ボタンなら>>168の通りにbuttonB.PerformClick

一般的な話ならBのイベントの動作をメソッドに切り出して
別オブジェクトのイベントからもそのメソッドを呼ぶようにする。

まずはsenderとかEventArgsの実体がどうなってるか調べるべきじゃない?
171デフォルトの名無しさん:2007/10/06(土) 22:44:24
SerializationBinderについての質問なんですが、
現在、
以下のような感じで処理しているのですが、

        Assembly[] asms;
        List<Assembly> referenceAsm;

        public override Type BindToType(string assemblyName, string typeName)
        {
            Type t = null;
            t = Type.GetType(String.Format("{0}, {1}", typeName, assemblyName));
            if (t != null)
            {
                return t;
            }
17250:2007/10/06(土) 22:46:11
>>171 続き
else{
for (int i = 0; i < asms.Length; i++){
t = asms[i].GetType(typeName);
if (t != null){
return t;
}
}for (int i = 0; i < referenceAsm.Count; i++){
t = referenceAsm[i].GetType(typeName);
if (t != null){
return t;
}
}
return null;}}
これだと、List<T>などが渡されたときにうまくTypeを取得できずにSerializationException
が発生してしまいます。
これを解決するにはどのようにしたらいいでしょうか?
173デフォルトの名無しさん:2007/10/06(土) 22:47:05
>>172
読みづらくなってしまってすいません orz
あと、名前も間違って入力されてしまいました orz
174デフォルトの名無しさん:2007/10/07(日) 00:17:14
リファラを指定してダウンロードしたいです
System.Net.HttpRequestHeader.Referer というのを見つけましたが使い方が分かりません
助けてください
175デフォルトの名無しさん:2007/10/07(日) 00:28:48
WebClient.Headersを使うのが楽。

WebClient wc = new WebClient();
wc.Headers[ "Referer" ] = 〜;

というふうにヘッダを追加したあと、Download*メソッドを使えばいい。
携帯からなんでスペルが間違ってるかも知れないが。
176デフォルトの名無しさん:2007/10/07(日) 00:30:12
OpenFileDialogとかSaveFileDialogとかのRestoreDirectoryプロパティの
意味がいまいちよくわかりません。
教えていただけますでしょうか。
ダイアログを開いて閉じた後、もう一度開いたときに前回開いていたディレクトリを
覚えていて、そこを開いた状態にするのかと思っていたんですが、
falseにしても前回のディレクトリを開くみたいで…
177175:2007/10/07(日) 00:32:04
上のやり方ではヘッダを追加できないかもしれないので、その時は

wc.Headers.Add("Referer", 〜)

で。
178デフォルトの名無しさん:2007/10/07(日) 00:36:19
>>176
現在のって訳されてるから分からんだろうけど、要はカレントディレクトリ
179デフォルトの名無しさん:2007/10/07(日) 00:40:45
あー、じゃあユーザがダイアログの中でディレクトリを移動したときに、
閉じてもう一回開くと、移動先のディレクトじゃなくて移動前に開いていた
ディレクトリを開くってことでしょうか?
180デフォルトの名無しさん:2007/10/07(日) 00:46:38
そっちはそっちでシェルが独自にレジストリで管理してる
181デフォルトの名無しさん:2007/10/07(日) 00:56:08
>>175,177さん
どうも有難うございました
助かりました
これから頑張ってやってみます
182デフォルトの名無しさん:2007/10/07(日) 01:03:10
>>178
>>180

うーん、よくわからないのでもう少し詳しく教えて貰えませんか。
183デフォルトの名無しさん:2007/10/07(日) 01:06:44
ダイアログの中でディレクトリを移動する前と後で
Environment.CurrentDirectoryを見てみろ
184デフォルトの名無しさん:2007/10/07(日) 01:14:32
ありがとうございます
185デフォルトの名無しさん:2007/10/07(日) 03:54:16
ListViewの複数の項目をマウスで選ぶとき、点線の枠が出ますが、
これをExplorerみたいに、色の付いた枠・背景で描くにはどうしたらいいですか。
186デフォルトの名無しさん:2007/10/07(日) 07:56:16
オーナードロー
187デフォルトの名無しさん:2007/10/07(日) 07:57:15
読み間違えた
ダブルバッファリングを有効にするとなぜかそうなる
188デフォルトの名無しさん:2007/10/07(日) 21:43:31
NotifyIconでバルーンを出そうとしているのですが、
ShowBaloonTipを呼び出しているのにもかかわらず、バルーンが表示されていません
呼び出しているのはデバッグモードでステップ実行して確認しています
バルーンが表示されないのはどのような原因が考えられるでしょうか?
他のバルーン関係のイベントで呼び出すメソッドは空になっているので、
呼ばれた瞬間クリックイベントが呼ばれているとかもないみたいです
189デフォルトの名無しさん:2007/10/07(日) 23:12:20
バルーンがさりげなく別のウィンドウの下に潜ってるとか、たまにある。
190デフォルトの名無しさん:2007/10/08(月) 01:12:40
>>188
出るのはXP以降だからな
191デフォルトの名無しさん:2007/10/08(月) 13:38:21
マウスの自動操作をしたいのですが、
カーソルを動かすのはCursorクラスで出来ます。
しかしクリックを自動で行う方法は見当たりません。
WindowsAPIを使うしかないですか
192デフォルトの名無しさん:2007/10/08(月) 14:03:03
そんなウィルス今時流行らないだろ
193デフォルトの名無しさん:2007/10/08(月) 14:13:14
ネトゲのボットじゃねぇの
194デフォルトの名無しさん:2007/10/08(月) 14:54:47
DateTimePickの上向きのボタンが押されたか、下向きのボタンが押されたかって
イベントとれないものでしょうか?
イベントのリスト探したけど見あたらなかったので…
195デフォルトの名無しさん:2007/10/08(月) 15:39:20
Valueの変化で判断つくのでは?
196デフォルトの名無しさん:2007/10/08(月) 16:28:43
ChangeValueは他で値を入れ込んだりしてるのであまり使いたくないなぁと
ユーザがボタンを操作したってイベントがあれば助かるんですが…
197デフォルトの名無しさん:2007/10/08(月) 18:31:49
Mouse_DownイベントののPointとかは?
198デフォルトの名無しさん:2007/10/08(月) 18:52:21
ネイティブのDateTimePickerにもどっちをクリックしたかの
notifyメッセージは無かった気がする

場所で判断するにも、環境とかビジュアルスタイルとかで大きさが変わるから
難しそう
199デフォルトの名無しさん:2007/10/08(月) 22:45:29
200デフォルトの名無しさん:2007/10/08(月) 22:50:23
> Windows NT/2000:この関数は、SendInput 関数にとって代わられました。SendInput 関数を使ってください。
201デフォルトの名無しさん:2007/10/08(月) 23:02:06
それ以前に頓珍漢だよねw
なんでこの命令口調の「プチ北方謙三」クンってえのは例外なく馬鹿なんだろうね
202デフォルトの名無しさん:2007/10/08(月) 23:36:16
treeView1.TopNode
treeView1.SelectedNode
で、ツリーノードが取り出せるのはわかるんですけど、
指定した場所のノードを取り出したいとき(プログラムで指定する)はどうすればいいのでしょうか?
203デフォルトの名無しさん:2007/10/08(月) 23:38:16
いや、どうやって指定するのさ
204デフォルトの名無しさん:2007/10/08(月) 23:44:53
tree.GetNodeAt とか?
205デフォルトの名無しさん:2007/10/08(月) 23:44:59
treeViewの内容を全て保存(テキスト形式で)したいんです。
そのばあい、どのように取り出せばいいのか悩んでいるんです
206デフォルトの名無しさん:2007/10/08(月) 23:53:13
内容を全部なら普通に再帰させていけばいいじゃん?
207デフォルトの名無しさん:2007/10/09(火) 00:00:44
最初に、treeView1.TopNodeで取り出して、
その後は、どんな命令を繰り返せばいいのですか?

初心者ですみません
208デフォルトの名無しさん:2007/10/09(火) 00:08:03
extern "C" { ... } の意味がよく分からんのですが、
これってなんのおまじない?
209デフォルトの名無しさん:2007/10/09(火) 00:11:16
>>207
とりあえずコレでノード全部列挙できると思う。
ちゃんと試してはいないが。

using (StreamWriter sw = new StreamWriter(fileName))
{
    if (treeView1.Nodes.Count > 0)
    {
        TreeNode node = treeView1.Nodes[0];
        while (node != null)
        {
            sw.WriteLine(node.FullPath);
            if (node.Nodes.Count > 0)
                node = node.Nodes[0];
            else if (node.NextNode != null)
                node = node.NextNode;
            else if (node.Parent != null && node.Parent.NextNode != null)
                node = node.Parent.NextNode;
            else
                break;
        }
    }
}
210デフォルトの名無しさん:2007/10/09(火) 00:11:57
>>208
ここはC#スレです。
211デフォルトの名無しさん:2007/10/09(火) 00:13:25
って、階層が深いところから戻ったときに止まっちゃうな。
やっぱ再帰が無難か。
212デフォルトの名無しさん:2007/10/09(火) 00:15:36
関数ってのがいまいちよくわからないんだけど・・・
213209:2007/10/09(火) 00:18:26
>>207
これでOK.

public void Save(String fileName)
{
    using (StreamWriter sw = new StreamWriter(fileName))
    {
        _Save(treeView1.Nodes, sw);
    }
}
void _Save(TreeNodeCollection nodes,StreamWriter sw)
{
    foreach (TreeNode node in nodes)
    {
        sw.WriteLine(node.FullPath);
        Save(node.Nodes, sw);
    }
}

214デフォルトの名無しさん:2007/10/09(火) 00:21:15
ちなみに、ロードのことも考えるとFullPath書いてくだけじゃあとで面倒になるかもよ。
215デフォルトの名無しさん:2007/10/09(火) 00:24:50
ロードのことまで考えるならXMLDocument にして Save() Load() した方がよさそうだなぁ。
216デフォルトの名無しさん:2007/10/09(火) 00:40:39
_Save関数の中身ですが、Save(node.Nodes, sw); ではなくて_Save(node.Nodes, sw); になりますか?
217デフォルトの名無しさん:2007/10/09(火) 00:43:30
あぁ、そうだね。ごめん。
218デフォルトの名無しさん:2007/10/09(火) 00:46:59
大変助かりました。

ロードも必要ですよね。
XMLDocumentにするというのは、タグで囲むようにテキストファイルに出力するということですか?
219デフォルトの名無しさん:2007/10/09(火) 01:00:03
>>218
System.Xml.XMLDocument に読み込ませてあげれば
自動的にタグ付きで出力してくれるよ。

軽く作ってみたんでよく読んでみて。
まずは保存から。

public void SaveToXml(TreeView tree, string fileName)
{
  XmlDocument xml = new XmlDocument();
  XmlNode xnode = xml.CreateNode(XmlNodeType.Element, "tree", null);
  _SaveToXml(xml, xnode, tree.Nodes);
  xml.AppendChild(xnode);
  xml.Save(fileName);
}

void _SaveToXml(XmlDocument xml, XmlNode parent, TreeNodeCollection nodes)
{
  foreach (TreeNode node in nodes)
  {
    XmlNode child = xml.CreateNode(XmlNodeType.Element, "node", null);
    XmlAttribute xa = xml.CreateAttribute("name");
    xa.Value = node.Name;
    child.Attributes.Append(xa);
    xa = xml.CreateAttribute("text");
    xa.Value = node.Text;
    child.Attributes.Append(xa);
    _SaveToXml(xml, child, node.Nodes);
    parent.AppendChild(child);
  }
}
ツリーを総なめしながら同時にXMLDocumentを作成して最後に保存。
220209:2007/10/09(火) 01:02:37
続いて読込。
XMLファイルからXMLDocumentを作成して
XMLDocumentを総なめしながらツリーを構築。

public void LoadFromXml(TreeView tree, string fileName)
{
  XmlDocument xml = new XmlDocument();
  xml.Load(fileName);
  XmlNode xnode = xml.DocumentElement;
  _LoadFromXml(xnode, tree.Nodes);

}
void _LoadFromXml(XmlNode parent, TreeNodeCollection nodes)
{
  foreach (XmlNode child in parent.ChildNodes)
  {
    if (child.Name == "node")
    {
      TreeNode node = new TreeNode();
      node.Name = child.Attributes["name"].Value;
      node.Text = child.Attributes["text"].Value;
      nodes.Add(node);
      _LoadFromXml(child, node.Nodes);
    }
  }
}

エラー処理とかまったく書いてないんでその辺は補って。
つか便利そうなんで俺もこれ使うw
221デフォルトの名無しさん:2007/10/09(火) 01:04:05
Tree構造なんてXMLがウハウハ喜ぶデータ形式だよね
222デフォルトの名無しさん:2007/10/09(火) 01:05:36
Name, Text 以外の情報もAttributesを増やせば対応できるし
TreeViewとXMLの相性は抜群だな。
223174:2007/10/09(火) 02:21:28
wc.Headers.Add("Referer", 〜);
これで簡単に出来ました
どうも有難うございましたm(__)m
224デフォルトの名無しさん:2007/10/09(火) 03:23:43
C#でManagedDirectXを使っているのですが、適切なDirectxバージョン(dll)が無い場合例外が発生します。
バージョンが無い場合の例外に対する警告を表示させたいのでtryで囲もうと思うのですが、

例外が発生するのは何をはじめてやったときなのでしょうか?
225デフォルトの名無しさん:2007/10/09(火) 05:36:16
WPFについてなのですが、他に適切なスレが見つけられなかったので、ここで質問させていただきます。
スレ違いでしたらすいません。

<Ellipse Width="300" Height="300" Canvas.Top="50" Canvas.Left="50" Fill="Transparent" Stroke="Black" StrokeThickness="1"/>

このような楕円がCanvas内にあります。
任意の座標が、この楕円の境界線上にあるかどうかを調べるにはどうすればよいのでしょうか。
226デフォルトの名無しさん:2007/10/09(火) 07:34:30
それってWPFどうでもよくね?
楕円の式に突っ込めばよくね?
227デフォルトの名無しさん:2007/10/09(火) 08:10:27
確かにこの場合はこの式使えばいけますね。
(x-50)*(x-50)/(150*150) + (y-50)*(y-50)/(150*150) == 1

ただ、今後楕円だけじゃなくて、もっと複雑な曲線についても同様なことをするつもりなので、
ちょっとこれではだめそうです。
説明不足ですいませんでした。
228デフォルトの名無しさん:2007/10/09(火) 10:25:11
質問なのですけれど、SQLをDataSetにセットし、その中の必要な列だけ取り出して表示させるにはどのようにすれば
宜しいでしょうか?

SELECT A,B
FROM TABLE

このようなSQLを取得し、AだけをDataGridに表示させたいのですが・・・・。
229デフォルトの名無しさん:2007/10/09(火) 10:28:42
Bのカラムを非表示
230デフォルトの名無しさん:2007/10/09(火) 10:47:21
>>225
http://msdn2.microsoft.com/ja-jp/library/ms752097(VS.80).aspx
このサンプルを参考にして、intersectionDetailがIntersectionDetail.Intersectsのときに
境界線上にあると判断したらいいんじゃね
231230:2007/10/09(火) 10:50:45
サンプル訂正
http://msdn2.microsoft.com/ja-jp/library/ms750584(VS.80).aspx
232デフォルトの名無しさん:2007/10/09(火) 19:32:18
>>230
ありがとうございます。
なんとか解決することができました。
233デフォルトの名無しさん:2007/10/09(火) 23:31:33
XmlTextWriter で XHTML を生成することを考えています。
動的に内容が変化しない部分が多く WriteStartElement などのメソッド呼び出しが酷く無駄に思えるのですが、
その部分を手っ取り早く埋め込むのに良い方法はありませんか?
234デフォルトの名無しさん:2007/10/09(火) 23:41:59
ラップしたクラス作っとけばいいんじゃね?
235デフォルトの名無しさん:2007/10/10(水) 16:05:44
ネットワーク図(PERT図みたいな)を描画するプログラムを開発いています。
ただ、固定的な図ではなくて、データによって変えたいのですが苦戦しています。

今、考えているのが、テキストでデータを与える形です。
(1,2はノード1からノード2へ繋がるということ)
1,2
1,3
2,4
3,4
のようにデータを与えます。
ただ、実際に描画を実現させることはできていません。
ほとんどプログラムが思い浮かばない状態なのですが、c#は図形絵画の関数が豊富なので、やってみたいと思いました。
図が描画できればokなので、生成されたノードなどをマウスで操作するなどは必要ないです。
アドバイスお願いします。
236デフォルトの名無しさん:2007/10/10(水) 16:07:23
適当に点並べて線引けばいいでしょ
237デフォルトの名無しさん:2007/10/10(水) 16:25:32
重ならないように点をとるようにしないといけないから面倒くさいな。
グラフ理論とかの知識があればいいのか?
238デフォルトの名無しさん:2007/10/10(水) 16:39:42
点の並べ方は正直センスの問題でしょ
どういうのがいいのか俺にはわからん
考えられる案としては、点三つなら正三角形、四つなら正方形・・・と増やしていって、
あるとこまで行ったらそれを縮小してその外側に三角形、四角形・・・と増やしていく
それを繰り返していく感じかな
239デフォルトの名無しさん:2007/10/10(水) 16:50:20
>>238
それだと三角形・四角形が増えたときに
結びたい点と点の間に別の点が入ってきたりしない?

ただ点をとるだけじゃなくて線がどのように引かれるかも考えないといけないから大変だな。
240デフォルトの名無しさん:2007/10/10(水) 16:52:25
線が重ならないようにするには、外周にいくたびにちょっと回転させれば
大丈夫だと思うよ
241デフォルトの名無しさん:2007/10/10(水) 16:57:22
とりあえず依頼者は例になるような画像を提示すべし。
242デフォルトの名無しさん:2007/10/10(水) 17:00:06
C#関係ないな
243デフォルトの名無しさん:2007/10/10(水) 19:08:10
オープンソースでいくらでもあるだろ
適当に探してパクれ
244デフォルトの名無しさん:2007/10/10(水) 19:56:40
そういうノードの描画は
ミクシなんちゃらってミクシのマイミクとかいうのを
グラフ化するソフトがイカしてたなそういや
245デフォルトの名無しさん:2007/10/10(水) 21:27:40
ミクシィグラフ?
トーナメント表みたいなのがみやすいと個人的には思う
246デフォルトの名無しさん:2007/10/10(水) 23:46:49
247デフォルトの名無しさん:2007/10/11(木) 00:25:09
C#.netではじめるTCPネットワークプログラミング

ってのを買ったわけでつが、
どうも内容が薄くて、これは一体?とかこのエラーは何?とか
〜もしたいんだがどうすれば? とか
そういう痒いところに手が届かない本でした
で、もっと突っ込んだ内容のネットワーク本が欲しいんですが
ネットワークに特化した解説書でお勧めなのってありまつか?
248デフォルトの名無しさん:2007/10/11(木) 00:31:22
MSDNと普通のSOCKET関連を勉強したほうが良くない?
TCPのサイトや本は死ぬほどあるよ。
249デフォルトの名無しさん:2007/10/11(木) 00:40:13
死ぬほどあるならからおすすめ希望なわけだが

死ぬほどあるんならひとつくらいあるでしょ?
250デフォルトの名無しさん:2007/10/11(木) 00:44:16
MSDN
251デフォルトの名無しさん:2007/10/11(木) 00:48:57
MSDN以外では?

DOBONチャットを参考にしてみたけど
あれよりいい教材がMSDNにあるなら
トピ名を教えてくれや
252248:2007/10/11(木) 00:52:02
定番のマスタリングTCP/IPシリーズなんてどうでしょう?
253デフォルトの名無しさん:2007/10/11(木) 02:30:06
PropertyGridで、int型のプロパティを16進で表示したいのですが、
どうしたら良いでしょう?プロパティをstringにすればできるんですけど、
入力は 16 進でも 10 進でも受け付けるようにしたいんです。
254デフォルトの名無しさん:2007/10/11(木) 05:07:25
.NET1.1のPrintPreviewContorlでMouseWheelイベントが拾えないのですが
解決方法を教えてください。

this.printPreviewControl1.MouseWheel += new MouseEventHandler(printPreviewControl1_MouseWheel);

としているのですが、

private void printPreviewControl1_MouseWheel(object sender, MouseEventArgs e) {
}

を呼び出してくれないのです
255デフォルトの名無しさん:2007/10/11(木) 05:08:37
256デフォルトの名無しさん:2007/10/11(木) 06:05:07
>>253
TypeConverter 派生クラス書いて TypeConverter 属性につける
257253:2007/10/11(木) 06:52:48
>>256
やはりクラスを作らないとダメなんですね…。
楽しようと思ったのが間違いでした。がんばります。
258デフォルトの名無しさん:2007/10/11(木) 10:08:43
助けてください・・・今、急にVCでプログラム組む事をしているのだけど、
関数の補間は、どの様にするのでしたっけ?
int PASCAL WinMain(HINSTANCE〜
とかを入れています。
今は何とかカット・ペーストでやっているのですが、泣きが入ります。
関数の入力とか、上手い使い方とか、サイト等を教えてもらえると有り難いです。
259デフォルトの名無しさん:2007/10/11(木) 10:30:46
Ctlr+Space ってスレ違いw
260254:2007/10/11(木) 15:41:22
>>254の質問ですが、MouseEnterイベントでFocus()を実行したら動きました。

で、別な質問なのですが、PrintPreviewControlをAcrobatみたいにドラッグで
スクロールするようにしたと思ったのですが、それらしいプロパティなどが
見あたりません。

なにか良い方法を教えてください。
お願いします。
261デフォルトの名無しさん:2007/10/11(木) 16:17:55
C#で、POP3のproxyプログラムを作成したいのですが(具体的には添付ファイルをすべて削除)、POPのproxyプログラムサンプルとかありますか?
262デフォルトの名無しさん:2007/10/11(木) 17:36:43
>>261
あなたの心の中に
263デフォルトの名無しさん:2007/10/11(木) 17:37:16
うわぁ・・・
264デフォルトの名無しさん:2007/10/11(木) 23:00:04
>>261
あのなあ、それってプログラム作成って言うの?

最近自分で作らないでサンプルプログラムとか言うやつ増えたなあ
仕組みを調べて自分で作るものだとおもってたけどな。
265デフォルトの名無しさん:2007/10/11(木) 23:42:00
仕組みを調べる一番早い方法がサンプルプログラムってのは一理あるけどな
266デフォルトの名無しさん:2007/10/12(金) 00:19:47
C#じゃなきゃいろいろあるんじゃね
267デフォルトの名無しさん:2007/10/12(金) 01:21:15
2008からは.NETの中のソースまで見れるようになるらしいね。
268デフォルトの名無しさん:2007/10/12(金) 01:27:14
マジで?それは非常に参考になる。
269デフォルトの名無しさん:2007/10/12(金) 01:42:19
今でも見れるんじゃね?
270デフォルトの名無しさん:2007/10/12(金) 01:59:03
http://japan.cnet.com/news/ent/story/0,2000056022,20358152,00.htm

ところでフレームワークのネイティブ周りの構造体で
引数なしのデフォルトコンストラクタの中でメンバを初期化してるやつがあるんだけど
あれはどうやってるの?
271デフォルトの名無しさん:2007/10/12(金) 02:14:01
ソフトフェアなんてソースにたいした意味はない

設計資料などを公開しない限りソースだけでライブラリ全体を把握できる奴なんて極少数
272デフォルトの名無しさん:2007/10/12(金) 02:24:16
>>270
C#以外の言語、例えばMSILを使えば作れる。
でも期待したところでコンストラクタ呼び出しが行われなかったりすることがあるので
素人にはお勧めできない。

たとえばArray.Initializeとか知らないと嵌りそうだね。
ttp://msdn2.microsoft.com/ja-jp/library/system.array.initialize(VS.80).aspx
273デフォルトの名無しさん:2007/10/12(金) 11:03:13
今WPFを勉強しています
C#で書いているんですが、100枚の画像を順に表示するプログラムを組みたいのですが、
keyUpで次の画像へ、keyDownで前の画像を表示したいのですが、画像の場所を100枚ともあらかじめ指定しないといけないのでしょうか?
001.jpgから100.jpgまでfor文か何かで回すにはどうすればよいのでしょうか?
274デフォルトの名無しさん:2007/10/12(金) 11:22:35
ん? 普通にforで回せばいいよ
iに回数が入っているわけだから
275デフォルトの名無しさん:2007/10/12(金) 11:24:46
i.ToString() + ".jpg"
276デフォルトの名無しさん:2007/10/12(金) 11:50:52
1.jpgじゃなくて001.jpgになってるなら
i.ToString("000")+".jpg" だな
277デフォルトの名無しさん:2007/10/12(金) 12:23:20
質問です。

リトルエイディアンに従ったバイト配列の扱いなのですが、

0x12345678
をbyte配列にしようとしたら
i = 0x12345678;
byteArray = BitConverter.GetBytes(i);
Console.WriteLine(BitConverter.ToString(byteArray));

のようにすればいいのはわかったのですが、

逆に 0x78 0x56 0x34 0x12を
uint配列に0x12345678のように格納するにはどのようにすればいいのでしょうか?

お願いします。
278デフォルトの名無しさん:2007/10/12(金) 12:45:37
2つ数字を入力して四則演算するプログラムで、
例えば10と2だと 12、8、20、5が答えですが、
実行すると一気に4つ表示されるのですが、1秒おきに表示させる方法ってどうすればいいのでしょうか?
最初に足し算の12が表示され、1秒後に引き算の8が表示される、というものです
279デフォルトの名無しさん:2007/10/12(金) 12:47:34
Thread.Sleep(1000)
280デフォルトの名無しさん:2007/10/12(金) 12:52:36
>>277
byte配列をuintに格納するって話だよな?
ビットシフトを使うと良いよ。

uint i = 0x12345678;
byte[] byteArray = BitConverter.GetBytes(i);
Console.WriteLine(i.ToString("x"));
uint j = (uint)((byteArray[3] << 24) + (byteArray[2] << 16) + (byteArray[1] << 8) + byteArray[0]);
Console.WriteLine(j.ToString("x"));


出力

12345678
12345678
281280:2007/10/12(金) 12:55:01
こんな関数も用意されているみたいだね。

BitConverter.ToUInt32

こっちの方が簡単そうだ。
282デフォルトの名無しさん:2007/10/12(金) 12:56:16
マウスが押されているかどうかを調べたいのですが、
if (mouseDown()) {
i++;
}
は使えないんでしょうか?エラーが出てしまいます
こうしたい場合、どうすればよいでしょうか?
283デフォルトの名無しさん:2007/10/12(金) 12:59:55
moseDown() の中身はどうなっているんだ?
284デフォルトの名無しさん:2007/10/12(金) 13:01:57
ComboBoxをDropDownListにした状態(HTMLの<select>タグみたいな感じで)で、
その中の文字列を右寄せにしたのですが、どのようにやれば良いのでしょうか?

TextBoxなどと違ってTextAlignプロパティが無いので、何か強引な方法でもいいので
解決方法を教えてください。
285282:2007/10/12(金) 13:06:07
中身・・・ですか
すいませんよく分かりません
最初が0で、クリックするたびに数字が1増えて表示されるプログラムを作ろうとしています。
学び始めたばかりなのでホントよく分かってない状況です。
286デフォルトの名無しさん:2007/10/12(金) 14:21:35
>>284
オーナードロー

>>285
mouseDown()ってのはどこから出てきたんだろうね?
そのクリックされるコントロールにClickイベントを付ければいいよ
287284:2007/10/12(金) 16:21:03
>>286
出来ました
thx
288デフォルトの名無しさん:2007/10/12(金) 18:33:46
VCLのTDrawGridに似たようなコンポーネントはありますか
289デフォルトの名無しさん:2007/10/12(金) 18:37:22
DataGridViewは?
290デフォルトの名無しさん:2007/10/12(金) 22:30:38
treeViewを画像にすることってできますか?
今、treeViewを印刷できるようにしたいと思い、treeViewを画像にして(ビットマップなどの)
印刷しようと考えています。
または、画像にしないでtreeViewを印刷する方法があれば教えてください。
よろしくお願いします。
291デフォルトの名無しさん:2007/10/12(金) 22:43:45
対象ウィンドウのデバイスコンテキスト取得して
BitmapのデバイスコンテキストにBitBlt
292デフォルトの名無しさん:2007/10/12(金) 23:28:40
文字列だけだったらGraphicsで自分で描いても簡単なんじゃね
293デフォルトの名無しさん:2007/10/13(土) 00:10:26
すみません。"Fri, 5 Oct 2007 9:0:59 GMT" をパースできる書式は何ですか?
"ddd, d MMM yyyy H:m:s zzz" かと思ったのですが、どうもタイムゾーンの書式が違うみたいで……
294デフォルトの名無しさん:2007/10/13(土) 00:17:26
.NET3.5でListViewの1行目の編集ボタンを押すと、EditItemがNullになるんですが、これが仕様なんですか?
2行目とか3行目だと、ちゃんと値(?)が入ってるのですが
295デフォルトの名無しさん:2007/10/13(土) 00:18:50
Exact使わんでもParseできるが?
zzzは+9:00とかその辺
296デフォルトの名無しさん:2007/10/13(土) 00:21:49
DateTime.Parse("Fri, 5 Oct 2007 9:0:59 GMT");
で普通に通った。
297デフォルトの名無しさん:2007/10/13(土) 00:29:29
>>295-296
なんですとー(;´Д`)

って、これ RFC1123 の先行セロを省略したパターンか。
"ddd, d MMM yyy H:m:s GMT" でパースできました。すいませんありがとうございます。
ちなみにほかの書式もいっぱい突っ込んであるんで ParseExact で一気にやるつもりでいました。
298デフォルトの名無しさん:2007/10/13(土) 00:47:05
VB6とVB.NETではVB6のEXEのほうが高速に動作するのでしょうか?
299デフォルトの名無しさん:2007/10/13(土) 01:11:25
フォルダのセキュリティタブにそのフォルダを操作できるアカウントが表示されますが
C#でフォルダのパスを指定すると、そのアカウント一覧を取得するというのをやってみたいのですが
そういうライブラリってあるのでしょうか?
300デフォルトの名無しさん:2007/10/13(土) 02:37:19
>>298
とりあえずVBの質問はこちらでどうぞ。
VB.NET質問スレ
http://pc11.2ch.net/test/read.cgi/tech/1189038267/l50

あとちょっとはググれw

Visual Basic .NETは遅いのか!? − @IT
ttp://www.atmarkit.co.jp/fdotnet/vbcheer/vbcheer08/vbcheer08.html
301デフォルトの名無しさん:2007/10/13(土) 03:38:29
NGENのとこは無視しとけ、大抵は大して変わらん。
あんな極端な例出されても意味がないわ。
302デフォルトの名無しさん:2007/10/13(土) 03:51:02
グラフィック系やシステム常駐系のアプリを.NETなんかで書かれたら冗談じゃないな
何系なら許せるか考えてたら、なにも浮かばなかった・・・
303デフォルトの名無しさん:2007/10/13(土) 06:08:28
Paint.net使ってみろ
304デフォルトの名無しさん:2007/10/13(土) 06:09:40
>>302
>グラフィック系やシステム常駐系のアプリ

XNAとかASP.NETのことかーーーー!
ttp://jp.youtube.com/results?search_query=XNA
305デフォルトの名無しさん:2007/10/13(土) 06:19:25
>>299
Directory.GetAccessControl...かな
306デフォルトの名無しさん:2007/10/13(土) 12:11:10
>>303
Paint.netで金を取ることは不可能でしょ
あんなの1円の価値もなくね?

Paint.net程度ならC/Win32APIで書いても大した工数掛からない
307デフォルトの名無しさん:2007/10/13(土) 12:16:04
1円の価値もないお前が言ったところで…
308デフォルトの名無しさん:2007/10/13(土) 12:21:49
>>307
1円の価値もないお前が言ったところで…

309デフォルトの名無しさん:2007/10/13(土) 12:27:51
スルーしろよ……
310デフォルトの名無しさん:2007/10/13(土) 12:31:13
AudioEncoderは実に重宝してるな
対応フォーマットが多いし使いやすい
311デフォルトの名無しさん:2007/10/13(土) 12:34:42
>>301
またまた川俣にからむいつもの人かな?w
NGENに意味はあるし、極端な例って具体的になんのことよ?
312デフォルトの名無しさん:2007/10/13(土) 13:14:41
313デフォルトの名無しさん:2007/10/13(土) 13:16:28
コピペ君って馬鹿だな、まで読んだ。
314デフォルトの名無しさん:2007/10/13(土) 14:23:39
315デフォルトの名無しさん:2007/10/13(土) 14:25:55
コピペ君って馬鹿だな、まで読んだ。
316デフォルトの名無しさん:2007/10/13(土) 14:26:57
317デフォルトの名無しさん:2007/10/13(土) 14:27:56
コピペ君って馬鹿だな、まで読んだ。
318294:2007/10/13(土) 14:29:12
どなたか分かる人いませんか?
319デフォルトの名無しさん:2007/10/13(土) 14:50:31
3.5使ってる人いない予感。
320デフォルトの名無しさん:2007/10/13(土) 14:56:28
>>311
なんかよく分からんが100000行のメソッドなんて作らんだろう。
仮に1000行レベルだったら差は100分の1だぜ。
1000行でもまず作らんと思うが。
321デフォルトの名無しさん:2007/10/13(土) 14:58:43
普通にアプリ書いたら10万行ぐらいすぐだろ
322デフォルトの名無しさん:2007/10/13(土) 14:59:42
GUIアプリで起動が100ミリ秒早くなってもあんまり意味はない。
ngenが無意味だとは言わんが、明らかに効果があるというような場面は限られてる。
323デフォルトの名無しさん:2007/10/13(土) 15:02:00
>>321
JITの意味分かってないだろ。
起動時にいきなり自作コード100000行も実行が必要なGUIアプリなんかそうそうないわ。
324デフォルトの名無しさん:2007/10/13(土) 15:43:14
似たような似てないような話で、
正規表現は常にコンパイルオプションつけた方が速いと思ってるやつもいるな。
325デフォルトの名無しさん :2007/10/13(土) 21:59:23
C#で宣言と同時に初期化の方法について教えて頂きたいのですが。
int型の場合は
int [] val = new int[3] {1,2,3};
とすれば良いのはわかるのですが、
クラス宣言時に初期化するにはどうしたら良いのでしょうか。

以下のクラスのstr1に"aaa"、str2[0]に"bbb", str2[1]に"ccc"
をクラス宣言時に設定したいのです。
class Test {
string str1;
string str2[];
}


Test [] tObj = new Test[2];
tobj[0]=new Test();
tObj.str1 = "aaa";
tObj.str2[0] = "bbb";
tObj.str2[1] = "ccc";
今、こんなカンジなんですけど。。。

326デフォルトの名無しさん:2007/10/13(土) 22:09:06
コンストラクタ
327デフォルトの名無しさん:2007/10/13(土) 22:11:57
コンストラクタを定義した上で、
Test[] tObj = { new Test("aaa", new string[]{"bbb", "ccc"}), new Test("aaa", new string[]{"bbb", "ccc"})
328デフォルトの名無しさん:2007/10/13(土) 22:13:08
C#3.0ならまとめて初期化できるようになるな
329デフォルトの名無しさん:2007/10/13(土) 22:13:19
コンストラクタw

ふらっとスレであまり叩くのもどうかとも思うが、
そもそも325は言ってることがオカシイんだよ。

>int [] val = new int[3] {1,2,3};
これがメソッド内のローカル変数の初期化のことを言っているのなら、
クラスのフィールドの初期化に関しても書き方は何もかわらなし、
型がint[]だろうがstring[]だろうが変わらない。
330デフォルトの名無しさん:2007/10/13(土) 22:21:46
Test[]を初期化したいのか配列フィールドを初期化したいのか
331デフォルトの名無しさん:2007/10/13(土) 22:27:28
現在のC#ではコンストラクタとでパラメータを渡せるようにしとかないとできない。と思う。

332デフォルトの名無しさん:2007/10/13(土) 22:31:31
var tObj = new[] { {"aaa", new[] {"bbb", "ccc"}, …};
こんな感じになるの?
333デフォルトの名無しさん:2007/10/13(土) 22:31:33
>>329
インスタンスのプロパティやらフィールドといったメンバの初期化を
配列のように列挙して記述する方法があるか?って話だろ。
でC#3.0ならある程度できる。それより前のC#ではできない。
というだけの話で、つまりお前は何が言いたい?
334デフォルトの名無しさん:2007/10/13(土) 22:32:10
なんで匿名型に…
335デフォルトの名無しさん:2007/10/13(土) 22:32:49
new[]は同じ型じゃないと通らん
336デフォルトの名無しさん:2007/10/13(土) 22:32:53
>>332
プロパティ名=
を忘れてた
337デフォルトの名無しさん:2007/10/13(土) 22:41:13
>>333
str2フィールドに対して宣言時に値を設定したいと>>325を解釈することもできる
338デフォルトの名無しさん :2007/10/13(土) 22:53:31
325です。
どうもありがとうございます。
メンバ変数の定義にCの様に初期値をかけないものかと
思って質問しました。

class Test {
string str1;
string str2[];
 
  public Test(string p1, string [] p2) {
str1 = p1;
string [] str2 = new string[2];
str2[0] = p2[0];
str2[1] = p2[1];
}
}

class MyClass
{
Test [] tObj = new Test[2] {
{"aaa", {"bbb", "ccc"} },
{"aaa", {"bbb", "ccc"} }
};

public static void Main(string[] args)
}
}
の様に書けばいいのですね。
ありがとうございました。
今まではMainの中で初期化部分を書いていました。
339デフォルトの名無しさん:2007/10/14(日) 10:52:36
>>338
なんぞこれ
340デフォルトの名無しさん:2007/10/14(日) 12:26:06
>>338
配列の複製はArray.CopyかCloneを使え
341デフォルトの名無しさん:2007/10/14(日) 12:30:31
プチ北方謙三くんの言うことっていつもトンチンカンだねw

〜を使え(w
〜しろ(w
342デフォルトの名無しさん:2007/10/14(日) 12:34:32
北方謙三本人だったらどうする?
343デフォルトの名無しさん:2007/10/14(日) 12:40:08
いつも「北方謙三」を連呼してる人ってなに?
加齢臭?
344デフォルトの名無しさん:2007/10/14(日) 13:55:25
ビリー隊長に変えます。
345デフォルトの名無しさん:2007/10/14(日) 16:36:16
質問です。
一度Labelをクリックした後、スクリーン上のどこかをクリックするまでのMouseMoveイベント
とMouseClickイベントをLabelで取得したいのですが、どのようにしたらいいでしょうか?
SetCapture()も使ってみましたが、上手くいきませんでした。

よろしくお願いします。
346デフォルトの名無しさん:2007/10/14(日) 16:57:51
treeView.SelectedNode = 5;という感じで選択状態にしたいのですが
どうしたら良いでしょうか?
347デフォルトの名無しさん:2007/10/14(日) 17:03:09
5ってなんだよw単位わかんねぇw
348デフォルトの名無しさん:2007/10/14(日) 17:05:29
>>347
treeviewはインデックス番号でデータを管理しているわけではないのでしょうか?。
349デフォルトの名無しさん:2007/10/14(日) 17:07:16
してない。ツリーなんだから。
350デフォルトの名無しさん:2007/10/14(日) 17:14:12
>>349
つまりプログラム側からアイテムを選択させる方法はないという事になるのかな?
351デフォルトの名無しさん:2007/10/14(日) 17:18:44
あります。
352デフォルトの名無しさん:2007/10/14(日) 17:23:32
質問を2つさせてください。
1.Listコレクションの内容を全て削除する方法を教えてください。
2.Directory.GetDirectoriesなどのライブラリでパスを指定したら
  それ以下の全てのディレクトリを返すメソッドを教えてください。
  Directory.GetDirectoriesだとサブディレクトリしか返さないようなので。
  一番下の階層のディレクトリも返すようなものがあれば教えてください。
353デフォルトの名無しさん:2007/10/14(日) 17:25:47
>>352
1. List<>.Clear
2. 再帰的に適用すれ
354デフォルトの名無しさん:2007/10/14(日) 17:28:05
>>352
MSDN読めよ阿呆か
1. Clear
2. SearchOption
355デフォルトの名無しさん:2007/10/14(日) 18:13:34
まあまあふらっとスレだし。

昨日から始めました、みたいな初心者はまず「型」に気をつけよう
>>346とかみたいのはMSDNをちらっとでもいいから見て
(もしくはVS使ってるならF1キー押して)

 public TreeNode SelectedNode { get; }

って書いてあるのを探す。この場合SelectedNodeプロパティの型はTreeNode型ね。
5、てのはまあint型だから設定できない。
つーか、これはgetしかないから設定できないけどね。

手っとり早く言うと
TreeNode.Selected というプロパティ。

 public bool Selected { get; set; }

ってあるからset出来るね。
node.Selected = true;が答え。
356デフォルトの名無しさん:2007/10/14(日) 18:24:04
>>355
>  public TreeNode SelectedNode { get; }
> つーか、これはgetしかないから設定できないけどね。

落ち着け、それはSystem.Web.UI.WebControlsの方だw
357デフォルトの名無しさん:2007/10/14(日) 18:46:10
>>356
あらまぁはじかしぃw

つーか検索する文字列つっこんでWeb.UIが先にでてくるなんてブツブツ
フィルターさせてほしいよまったくブツブツ
358346:2007/10/14(日) 18:50:09
上手く行かない人を差し置いて楽しみやがってっ!!笑
359デフォルトの名無しさん:2007/10/14(日) 20:05:03
タブコントロールの関係でD&Dできなくなるとかいう話はありますか?
360デフォルトの名無しさん:2007/10/14(日) 20:57:41
インスタンス化したクラスはどうやって解放すれば良いっすか?
C言語のfreeみたいなのって無いんでしょうか?
それともとりあえずNULLをセットしとけば良いっすか?
361デフォルトの名無しさん:2007/10/14(日) 20:58:45
>>360
nullセットすればよし
362デフォルトの名無しさん:2007/10/14(日) 21:01:16
nullセットする必要がある場面なんてまずないけどな
基本は放置
IDisposable だけ Dispose
363デフォルトの名無しさん:2007/10/14(日) 21:15:16
メモリの解放をしなくて良いなんて時代は変わりましたね。
364デフォルトの名無しさん:2007/10/14(日) 21:22:38
GC自体は大昔からあるが?
C/C++にはなかったってだけで
365デフォルトの名無しさん:2007/10/14(日) 21:26:07
BohemGCを忘れないであげてください
366デフォルトの名無しさん:2007/10/14(日) 21:36:07
C/C++ でも、参照カウンタとか使ったスマートポインタで、
(メモリの管理はライブラリに責任移して)
プログラマはメモリの解放しなくていいようにしてたけどね。
367デフォルトの名無しさん:2007/10/14(日) 22:35:57
BASIC
368デフォルトの名無しさん:2007/10/15(月) 01:07:39
えっ?Cでshared_ptr並のスマートポインタってあるの?
369デフォルトの名無しさん:2007/10/15(月) 08:29:04
このスレって回答者が初心者らしいなw
370デフォルトの名無しさん:2007/10/15(月) 09:46:15
button用にアイコン画像をフォトショで作っているんですが、32bit(アルファ込)の画像って
何形式ですか?bmp32bitは使えないようですし、ICOも使えない。png32bitってVista
からだったようなのでXPだとどの形式なのかわからんのです。
あと、ImageTransparentColorにalphaとかないので、もしかしてalphaブレンド
できないんですかね?でもWindowsアプリのツールバーアイコン見てると
確実にalphaブレンドしてるのですが・・・(XPで)
371デフォルトの名無しさん:2007/10/15(月) 12:26:04
>>370
>png32bitってVista からだったようなので

初心者が何も行動を起こす前にうだうだ言っててどうするんだよ。
まず実際やってみれ。
質問なんてのは、それでダメだということがはっきりしてからやるもんだろ。
372デフォルトの名無しさん:2007/10/15(月) 12:54:15
>>371
答えれないなら書き込むなよ馬鹿が。
373デフォルトの名無しさん:2007/10/15(月) 15:20:34
トレースを別のテキストファイルに出力する際に、日時も出力したいので、
TextWriterTraceListenerのTraceOutputOptionsが使えるな?と、
TraceOutputOptionsにDateTimeを設定してみたんだけど、出力されない。
教えてください。


374デフォルトの名無しさん:2007/10/15(月) 15:22:53
>>370
png32bitで出来る。
375デフォルトの名無しさん:2007/10/15(月) 17:56:04
RC6キーさえあれば、暗号復号ができるようなC#のクラスとか公開されてませんかね・・・

自分で作ってみたけどわけわかめなのでorz

どなたか知っていたら教えてください。
376375:2007/10/15(月) 17:56:47
追記。RC6で暗号、復号できる、、、です。
377デフォルトの名無しさん:2007/10/16(火) 01:19:14
>>375
特許に引っ掛かるからないんじゃない?
378デフォルトの名無しさん:2007/10/16(火) 02:26:37
海外のでいくつかあるようだが…
RC6の仕組み知らんけど、初期ベクタとかパディングとかどうなのかね
379デフォルトの名無しさん:2007/10/16(火) 12:33:58
>>375
自分も仕組みは詳しく知らんけど↓はRC6対応してるって書いてある。
ttp://www.programmersheaven.com/download/54166/download.aspx
380デフォルトの名無しさん:2007/10/16(火) 12:35:01
>>373
Log4Netを使うのは駄目なん?
381デフォルトの名無しさん:2007/10/17(水) 02:24:03
VC#2005を使っています
TreeViewのノードドラッグ移動について質問です。

ドキュメントアウトラインのようにドラッグ中、ノードとノードの間に横線(━━━━)を入れたいのですが
TreeViewコントロールにそういう機能は付いてないのでしょうか?
なければ自分で線を描画するしかないですよね?
382デフォルトの名無しさん:2007/10/17(水) 02:27:24
System.Security.Cryptography.Rijndaelを使いたいのですが、
初期化ベクタに何を指定すればS-Boxを使用した際と同等の暗号化が出来るのでしょうか?
それとも私は根本的な勘違いをしてるのでしょうか?
ご教授お願いします。
383382:2007/10/17(水) 04:07:08
すみません。自己解決できました。
384デフォルトの名無しさん:2007/10/17(水) 06:03:50
>>381
yes
385デフォルトの名無しさん:2007/10/17(水) 15:40:04
>>380
なんぞや!!こんな便利なものが。検討してみますthx
386デフォルトの名無しさん:2007/10/17(水) 18:50:46
vs2005C#expressに関する質問です。

関数名や変数名を一括変更する要領で、
名前空間を一括変更したいのですが、どうすればいいでしょうか?
387デフォルトの名無しさん:2007/10/17(水) 19:05:02
気持ちは理解できるけど無理でしょ。
同じ名前空間が複数のプロジェクトを跨いで存在したらどういうことになるか考えれば。。
388デフォルトの名無しさん:2007/10/17(水) 19:12:14
Ctrl+Shift+h
389デフォルトの名無しさん:2007/10/17(水) 19:19:20
名前空間は階層構造になってないのにそんなことしたらどうなることやらw
390デフォルトの名無しさん:2007/10/17(水) 20:57:50
ああ?

expressって複数のプロジェクト持てるの???
391デフォルトの名無しさん:2007/10/17(水) 21:24:38
>>390
なんで出来ないと思うの?
392デフォルトの名無しさん:2007/10/17(水) 21:44:41
出来ないのはWebデベロッパ
393デフォルトの名無しさん:2007/10/18(木) 02:42:17
BinaryFormatterとかでシリアライズしたとき、アセンブリバージョンが違うと逆シリアライズ
ができないのですが、これってどうにかなりませんかね?
XMLにするとサイズが馬鹿みたいにでかくなるし…
394デフォルトの名無しさん:2007/10/18(木) 08:21:35
>>393
試してないけど、2.0以降ならこれでいけるらしいよ。
http://msdn2.microsoft.com/ja-jp/library/ms229752(VS.80).aspx
395デフォルトの名無しさん:2007/10/18(木) 10:15:47
>>393
それってどういう状況での話?
構造に変化が無ければバージョン変わってもいけなかったっけ?
396デフォルトの名無しさん:2007/10/18(木) 11:29:50
みなさんシリアル化ってどんな場面で使ってるの?
397デフォルトの名無しさん:2007/10/18(木) 11:32:15
保存したい時
398デフォルトの名無しさん:2007/10/18(木) 14:11:30
オブジェクトを保存したいケースを教えてほしいです。
399デフォルトの名無しさん:2007/10/18(木) 14:12:34
何のデータであってもオブジェクトをまんま保存しまんま戻せれば便利じゃん
400デフォルトの名無しさん:2007/10/18(木) 14:15:08
まあそうなんですが…個々の情報をファイルにしようと考えてしまう古いタイプな者で・・
401デフォルトの名無しさん:2007/10/18(木) 14:18:09
個々の情報を個々の情報オブジェクトにしてさくっとシリアライズするんじゃだめなの?
402デフォルトの名無しさん:2007/10/18(木) 15:08:55
保存する手段としてシリアライズがパッと思いつかなかったけど、今度からそれやってみます。
403393:2007/10/18(木) 15:55:39
亀ですいません orz
>> 394
バージョンだけが違う場合でも逆シリアライズ出来ないのでちょっと違いますね。

>>395
中身は全く変えてないのですが、バージョンが違うとだめみたいです。
404393:2007/10/18(木) 15:56:32
すいません、安価ミスしました orz
>> 394→>>394
405デフォルトの名無しさん:2007/10/18(木) 16:53:43
画像を拡大する方法は分かるんですが、特定の範囲を指定してその部分だけ拡大するというのはどうすればよいのでしょうか?
例えば480x360の画像ファイルの真ん中240x180分を480x360に拡大する、というふうにしたいのです
どのように書けばよいでしょうか?
406デフォルトの名無しさん:2007/10/18(木) 17:06:56
>>403
やっぱISerializableインターフェース実装してカスタム化するしかないんじゃないかな
407デフォルトの名無しさん:2007/10/18(木) 17:40:29
>>406
マジっすか…orz
それなら始めから実装しときゃ良かった。今から10数個分も修正とか考えたくない…


今気づいたのですが、コンパイル時に参照に加えたものと動的にアセンブリを
読み込んだときってBinaryFormatterの動作って違いますか?
バージョン違いのみでも読み込めるものとそうでないものが出てきたのですが…
408デフォルトの名無しさん:2007/10/18(木) 17:40:49
>>405
Bitmap bmp = new Bitmap( 480, 360 );
using( Graphics g = Graphics.FromImage( bmp ) )
{
 g.DrawImage( bmpOriginal,
   new Rectangle( 120, 90, 240, 180 ),
   new Rectangle( 0, 0, 480, 360 ),
   うんちゃら単位.Pixel );
}

みたいな感じ? うろ覚えだけど
409デフォルトの名無しさん:2007/10/18(木) 18:25:41
>>403
>バージョンだけが違う場合でも逆シリアライズ出来ない
え?そんなことどこにも書いてないと思うけど。。
410デフォルトの名無しさん:2007/10/18(木) 19:05:18
>>403
重要な情報が多分抜けてる。
動的な読み込みって、LoadFrom使ってるんじゃないかい?
411デフォルトの名無しさん:2007/10/18(木) 21:30:43
C#.netというのは
ソースコードをドットネットフレームワークというのが
ネイティブコードにして実行してると聞いたのですが
ネイティブコードに変換した後のEXEファイルを配布することはできますか?
412デフォルトの名無しさん:2007/10/18(木) 21:41:21
できませんがngenで近いことはできます
ただし効果に期待してはいけません
413デフォルトの名無しさん:2007/10/18(木) 22:03:36
>ただし効果に期待してはいけません
そう?体感できるくらい結構違うけど・・・
まあプログラムの規模とかにも依るのかね。
414デフォルトの名無しさん:2007/10/18(木) 22:03:38
mono と gcc 使えばネイティブコンパイルできるんじゃなかったっけ?

まあ、それはともかく、あんまりする意義はないかも。
JIT コンパイルの重さを気にしてるのかもしれないけど、
デメリットの方が大きい。
415デフォルトの名無しさん:2007/10/18(木) 22:21:04
期待しなければ失望することはないのです
416393:2007/10/18(木) 22:37:53
外出してたためまた亀ってすいません orz

>>410
LoadFile()を使ってるんですが、これでもだめですかね?
FileStreamとかで読み込んだ後Load()じゃないとだめですか?
417393:2007/10/18(木) 22:40:12
>>409
リンク先にはそういったことは書いてませんが、今回発生してるのが
バージョンのみしか違わない場合でも逆シリアライズ出来ないので
リンク先は直接の解決策にはならなかったという意味でした。
すいません orz
418デフォルトの名無しさん:2007/10/18(木) 22:59:21
なんでふつうにLoadでやらんの?
419デフォルトの名無しさん:2007/10/18(木) 23:00:33
AssemblyResolveイベントで自分で読むなりしないとだめ。
Loadで読めない場所に配置してるような場合は。
っていうかぶっちゃけシリアライズするようなものでLoadFileやLoadFromは使うな。
420デフォルトの名無しさん:2007/10/18(木) 23:06:23
>そう?体感できるくらい結構違うけど・・・

5000行くらいのメソッドで試すと、、ngenあるなしで、差は100msくらいだった。
CLRの起動が多少時間かかるので、体感的には100msではごくわずかしか差は無い(Consoleでアプリで)

で、どんなサイズのメソッドを起動時に実行したら、体感できるくらい結構違うの?
421デフォルトの名無しさん:2007/10/18(木) 23:58:14
>>419
読み込んでるdllはプラグインの類なのでどうしてもLoadFileを使わないといけないのですが…
AssemblyResolveイベントも試しましたが、イベント自体発生してないみたいで意味なしでした。

あきらめるか… orz
422デフォルトの名無しさん:2007/10/19(金) 00:10:07
PrivateBinPath に追加するとかではだめなわけ?

>AssemblyResolveイベントも試しましたが、イベント自体発生してないみたいで意味なしでした。
昔やってできたと思ったんだがな。
どういう風にやった?
423デフォルトの名無しさん:2007/10/19(金) 00:23:04
>>422

AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(メソッド)

としてイベント追加した後にプラグインの入ったディレクトリからdllファイルを取り出してLoadFile()して、
GetTypes()した後逆シリアライズをするのですが、だめみたいです。

PrivateBinPathですか、ちょっと調べてみます。
424デフォルトの名無しさん:2007/10/19(金) 00:41:27
あーLoadFileはひょっとするとできないかも…
エラーメッセージってなんてでるの?

ってLoadFileを使ってる理由は?
425デフォルトの名無しさん:2007/10/19(金) 00:44:50
失礼します。
XmlTextWriter での出力のとき、入れ子になった外側のタグを固定して内側を適宜入れ替えたいのですが、例えば

    <foo><bar>その1</bar></foo>
    <foo><baz>その2</baz></foo>

の出力のときに

    StartFooElement(xw); /* ここでその1 */ EndFooElement(xw);
    StartFooElement(xw); /* ここでその2 */ EndFooElement(xw);

な感じで Start と End を出力するメソッド作って挟むのが良いのか、それとも

    void WriteFoo(XmlTextWriter xmlwriter, XmlWriteDelegate inner) {
        xw.WriteStartElement("foo");
        inner(xw);
        xw.WriteEndElement();
    }

なメソッド作ったほうが良いのか、それとも別の方法か……誰か好みでもいいので決めていただけませんか?
426デフォルトの名無しさん:2007/10/19(金) 00:45:21
たとえばプラグインフォルダ指定されたときに、ファイルをなめて
ファイル名(アセンブリ名と同じというルールで)を一覧で取得して、
LoadFromでいったん全部読み込んでから処理とかじゃだめ?

あるいはPrivateBinPathにプラグインフォルダを追加して、
同じようにファイル名取得してLoadで読んでから。
まあこれはサブディレクトリの場合しかできないけど。
427デフォルトの名無しさん:2007/10/19(金) 00:57:38
>>412
ngenですか

>>414
実行時に環境に合わせた最適なコンパイルがされているようですが
JITコンパイルの重さではなく、
ドットネットフレームワークがないと動かないのを嫌気しています
ネイティブコードにコンパイルしているなら
それを直接配布すればいいのでは?と思ったわけです

428デフォルトの名無しさん:2007/10/19(金) 01:00:34
>>427
.NET Framework を呼び出すネイティブコードを生成してるんだよ
429デフォルトの名無しさん:2007/10/19(金) 01:02:20
>>425
XSD定義が好き
430デフォルトの名無しさん:2007/10/19(金) 01:06:09
多分目的にはあって無いけどね。
431デフォルトの名無しさん:2007/10/19(金) 01:08:12
>>428
うは、まじですか?
てっきりWinAPIとかを呼び出すネイティブコードだと思ってたのに
つまりフレームワークなしで動くネイティブコードの生成は不可能ってことですか
.netじゃないC#にはあったのに・・・・・・・・・・・・・・・・・・・・・・・・・・orz
432デフォルトの名無しさん:2007/10/19(金) 01:12:09
WinAPIとかを呼び出すネイティブコード
ってなんですか?
433デフォルトの名無しさん:2007/10/19(金) 01:15:34
あの膨大なクラスライブラリやランタイムの機能を埋め込むのかよ
434デフォルトの名無しさん:2007/10/19(金) 01:21:23
>>424
アセンブリ:なんかとかかんとか〜publickey:nullが見つかりませんってかんじのです。

>>426
現在すでに全てのプラグインをLoadFileで読み込んでからやるようにしているのですが、
それをLoadFromにするってことですか?
なんだかバイナリをbyte[]にしてLoad()使った方が早い気がしてきた…
435デフォルトの名無しさん:2007/10/19(金) 01:22:29
>>424
追記:
LoadFileを使う理由は>>421にあります。
436デフォルトの名無しさん:2007/10/19(金) 01:30:08
>>434
一回やってる事をまとめてみないか?
437デフォルトの名無しさん:2007/10/19(金) 01:32:07
.NETアプリってFormが遅いだけでなく、ジェネリックコンテナもSTLと比べると
かなり遅いんですね。
438デフォルトの名無しさん:2007/10/19(金) 01:36:03
>>429
えーっと…… XSD 定義って具体的にどうすれば良いんでしょうか (;゚∀゚)
439デフォルトの名無しさん:2007/10/19(金) 01:38:38
>>433
なんかそんなのあったな。
フレームワーク不要! .Netアプリを単体で配布できてで動きます!
(ただし実行ファイルが30MBとか)
440デフォルトの名無しさん:2007/10/19(金) 01:39:24
>>431
>.netじゃないC#にはあったのに

をいをい
441デフォルトの名無しさん:2007/10/19(金) 01:40:51
>>436
今やりたいことは、プラグインで読み込んだクラスを含むデータをシリアライズ・逆シリアライズすることですが、
データ構造は変えず、アセンブリバージョンのみ違うものを使用すると該当する型がねぇと怒られないようにするにはどうすればいいかということです。
442デフォルトの名無しさん:2007/10/19(金) 01:43:58
>>441
アセンブリバージョン固定にしてしまえw
443デフォルトの名無しさん:2007/10/19(金) 01:45:19
>>438
xsd知って・・・なさそうだね。
XMLスキーマ定義してxsd.exeでDataSet出力
>>425でいうと
fooにはbar,bazってフィールドがあって
foo.bar= new Bar();
って感じで追加できる。

xsd.exeはxml→xsd→DataSetも出来るから触ってみな
444デフォルトの名無しさん:2007/10/19(金) 01:51:49
>>441
プラグインロードアプリ、インターフェース定義、プラグインってDLL別ければ問題なくね?
445デフォルトの名無しさん:2007/10/19(金) 01:52:08
>>443
了解しました。ちょっと試してみます。
ご意見ありがとうございました。
446デフォルトの名無しさん:2007/10/19(金) 01:59:07
>>442
さすがにそれは…w

>>444
既にそんな感じで分けているのですが、プラグインのアセンブリバージョンが変わると例外が飛んできます orz
447デフォルトの名無しさん:2007/10/19(金) 02:13:06
>446
シリアライズは使わないで自前で適当にxmlとかで出力しろ。
読み込みも同様に自前で実装で。

バージョンアップなどアセンブリの中身が変わっても同じ設定を保持して欲しいと思うだろうから
シリアライズだとそのうち互換性が保てなくなるし
それくらいなら自前で保存と展開処理を書いてしまった方が手っ取り早いし確実かと。
448デフォルトの名無しさん:2007/10/19(金) 02:30:07
>>435
>LoadFileを使う理由は>>421にあります。
どうしてもLoadFileを使わなければならないんだ、が理由かいな。
理由になってないだろ。

>現在すでに全てのプラグインをLoadFileで読み込んでからやるようにしているのですが、
>それをLoadFromにするってことですか?
>なんだかバイナリをbyte[]にしてLoad()使った方が早い気がしてきた…

人の言うことを少し冷静に試してみなさいな。
>>426に書いてることを一回試してみ。
449425:2007/10/19(金) 02:34:43
>>443
すいません。ちょっと触ってみたんですが微妙に自分の求めているものと異なりまして(´・ω・`)
ちょうど ASP で行うように、静的な部分をどういう風に出力させようかという話題だったんです。

もうちょっと試行錯誤してみます……
450デフォルトの名無しさん:2007/10/19(金) 02:34:48
ああそれと、LoadFromでもエラーになるならAssemblyResolveも試してみる。
451デフォルトの名無しさん:2007/10/19(金) 02:40:30
LoadFromでも無理なら、
AssemblyResolveをハンドリングしながらLoadで試す。

ってか最初から、
1.プラグインフォルダからアセンブリ名を抽出。
2.Loadで読み込み。
3.AssemblyResolveが発生するので、自分でLoadFromして返す。
のがいいかも。
452デフォルトの名無しさん:2007/10/19(金) 02:53:53
>>446
DLLとしては参照先が一緒だからロード以降問題
Type参照先がDomainだったりアセンブリだったりしてない?
453デフォルトの名無しさん:2007/10/19(金) 04:08:29
ボタンを押した際に初期画面に戻るプログラムを作成したいのですが
どのように打ち込めば良いのか何方か教えてください
454デフォルトの名無しさん:2007/10/19(金) 08:24:32
僕は君の"初期画面"がどんなものか知らない
僕は君のプログラム構造がどんなものか知らない
455デフォルトの名無しさん:2007/10/19(金) 08:34:19
おはようございます。

>>451
プラグインのファイル名がすでにリネームされているのですが…
この場合はどうしたらいいでしょうか?
456デフォルトの名無しさん:2007/10/19(金) 09:31:58
>>455
>プラグインのファイル名がすでにリネームされているのですが… 

アセンブリの名前を勝手に変えるなよ!原因はそれだ。
モジュール名とDLLのファイル名(拡張子を除く)は一致してなきゃいかん。
457デフォルトの名無しさん:2007/10/19(金) 11:08:02
んーそれが原因とも限らない気もしないでもないなぁ
さすがにバージョンでファイル名変えてるわけじゃないよね?

しかしまあ次から次へと…
アセンブリのロード絡みの問題なんだから
そういう大事なことは先に書かんかい。
458デフォルトの名無しさん:2007/10/19(金) 11:11:51
それにしてもなんでそんないかにもトラブルの原因になりそうなことばかりしてるんだか…
そんなことせんでもプラグイン実現出来ないことはないだろ。
まあ要件が分からんからなんとも言えんけどさ…
459デフォルトの名無しさん:2007/10/19(金) 11:16:23
どうでもいいが、あちこちのサイトで動的ロードの方法として
LoadFromばかり紹介してるのは勘弁してほしい。
あとそういうのでインターフェイスや基底クラスを使わずに
なんでもかんでもリフレクションでやろうとするのとか。

おかげでまねする奴が続出してほっとくとひどいことになってしまう。
460デフォルトの名無しさん:2007/10/19(金) 11:22:49
>>456
何度かリネームしてみましたが読み込めるので
ファイル名が問題と言うことではないみたいですが…
それでもルール違反みたいなので以後気をつけます。

>>457
後出しですいません orz
ファイル名は関係ないと思ってましたが、よく考えて
みれば今の問題にとってはかなり重要ですよね orz


今、テスト用のプラグインを作ってみたところ、AssemblyResolve
イベントが発生してうまく読み込めました。

…どうやらプラグインを作った人が中で何かやってる
みたいで、そこで例外が発生してるかもしれません。



#友人が作ったプラグインなので、本当にそれが原因ならそいつを〆ればいいだけですむのですが…
461デフォルトの名無しさん:2007/10/19(金) 12:21:38
>>460
こういう完全修飾名というのはみたことない?
Hogehoge, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL

この名前からGACではなくEXEのあるディレクトリからアセンブリを探す場合は
先頭のHogehogeという名前でを探すことになってる。

LoadFormやCOFFイメージを直接指定するときは名前は影響しないが一致していることが基本。

csc /t:library ddd.cs
ren ddd.dll ccc.dll
csc /r:ccc.dll aaa.cs
でコンパイルして実行してみると何がまずいかわかるはず。
462デフォルトの名無しさん:2007/10/19(金) 12:41:45
>>461
コンパイル時には何も出てきませんでしたが、実行すると例外が飛んできました。
これは確かにまずいですね。気をつけます。


先ほどのプラグインの件ですが、やはりプラグイン側が原因でした。
お騒がせしてすいませんでした。 orz
しかし、dllのリネームがまずいことや、それまで気づかなかったバグを
修正することが出来ました。

本当にありがとうございました。
463デフォルトの名無しさん:2007/10/19(金) 13:07:06
どうでもいいがそんなややこしいことしといて
シリアライズはバージョン変わるだけで出来ないとか書くなよ。
464デフォルトの名無しさん:2007/10/19(金) 13:18:47
>>463
すいません orz
本人はプラグインの処理部分のバグ修正のみをして、リビジョン番号を上げたようなのですが、
データの保存部分でなにかバージョン依存するようなことをしてたようです。
それがたまたま逆シリアライズを含む処理だったらしく、データの逆シリアライズが
出来てないのかと思ってしまいました。

こういうのは始めから「こういう事はやめれ」と言っておくべきでした。
本当にすいません。
465デフォルトの名無しさん:2007/10/19(金) 23:49:02
List<>
って異常に遅くないですか?
std::list<>
と比べると使い物にならない

3では改良されているのかしらん?
466デフォルトの名無しさん:2007/10/19(金) 23:53:30
なんでC++と比べるの?

あとデータ構造は分かってる?
467デフォルトの名無しさん:2007/10/19(金) 23:55:58
なんでC++と比べるのを疑問に思うの?

あとデータ構造は分かっるとはどういう意味?
468デフォルトの名無しさん:2007/10/19(金) 23:57:08
test
469デフォルトの名無しさん:2007/10/19(金) 23:58:00
何がtestだ
馬鹿じゃねえのw
470デフォルトの名無しさん:2007/10/19(金) 23:59:31
>>467
C++のstd::listと比べるならLinkedListのほうじゃね?
471デフォルトの名無しさん:2007/10/20(土) 00:00:35
>>469
いや、何時間かまえによその板でアク禁になってたから、書き込めるかなと思って。
472デフォルトの名無しさん:2007/10/20(土) 00:00:43
俺もそうおもた
473デフォルトの名無しさん:2007/10/20(土) 00:03:12
つか>>465は++使うか、チラシの裏にしろ
474デフォルトの名無しさん:2007/10/20(土) 00:03:34
vectorとlistの違いも分かんないんだな
475デフォルトの名無しさん:2007/10/20(土) 00:16:56
ああ、八代あきはアリだな。まだヤレルわ
476デフォルトの名無しさん:2007/10/20(土) 00:17:26
すまん。誤爆った
477デフォルトの名無しさん:2007/10/20(土) 00:34:01
八代あきはないだろ
478デフォルトの名無しさん:2007/10/20(土) 00:39:52
いくらなんでもストライクゾーン広すぎだろ・・・
479デフォルトの名無しさん:2007/10/20(土) 07:36:20
>>465
遅い速いの話題はプログラムソースがないと水掛け論になるからロダにアップしてみた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5107.txt

既出のようにstd::vector = List, std::list = LinkedList で等価。
実行時の過剰な最適化の影響かもしれないが、うちの環境だとC#が勝っとるな。
// C#
List back : 1000000 : 00:00:00.0263092
List front : 100000 : 00:00:08.4251727 x 10
LinkedList back : 1000000 : 00:00:00.3142776
LinkedList front : 1000000 : 00:00:00.5049351
// C++ STL
vector back : 1000000 : 0.03
vector front : 100000 : 11.116 x 10
list back : 1000000 : 0.62
list front : 1000000 : 0.701
480デフォルトの名無しさん:2007/10/20(土) 08:39:16
>>479
たぶんだがヒープアロケーションの速度の差じゃない?
最適化が影響しそうなコードにも見えないし。
481デフォルトの名無しさん:2007/10/20(土) 09:48:02
GCにどれだけ時間を使ったか気になる
482デフォルトの名無しさん:2007/10/20(土) 10:35:29
>>479
なんでLinkedList frontがbackより極端に遅いのかと思って、
それぞれのsw.Reset(); 後にGC.Collect()するとbackと同じになった。
あとJavaに書き換えたけど、ArrayList<値型>ってできないんだな。

Win Vista + Core 2 Duo + 2GB
// C#
List back : 1000000 : 00:00:00.0150236
List front : 100000 : 00:00:04.6640524 x 10
LinkedList back : 1000000 : 00:00:00.1925839
LinkedList front : 1000000 : 00:00:00.1954827
// C++ STL
vector back : 1000000 : 0.019
vector front : 100000 : 4.655 x 10
list back : 1000000 : 0.238
list front : 1000000 : 0.239
483デフォルトの名無しさん:2007/10/20(土) 10:53:41
ArrayList<Integer> にすればいいんじゃね
484デフォルトの名無しさん:2007/10/20(土) 11:01:26
>List<>
>って異常に遅くないですか?
>std::list<>
>と比べると使い物にならない


485デフォルトの名無しさん:2007/10/20(土) 11:19:24
実は比べてなかったってオチか
486デフォルトの名無しさん:2007/10/20(土) 11:38:50
>>483
それだとboxingしまくりじゃ…
と思いながら参考まで
// Java
ArrayList<Integer> back : 1000000 : 0.278
ArrayList<Integer> front : 100000 : 6.020 x 10
LinkedList<Integer> back : 1000000 : 0.514
LinkedList<Integer> front : 1000000 : 0.215

# LinkedListの第一世代GCで処理時間全体の8割以上かかってる…
487デフォルトの名無しさん:2007/10/20(土) 12:47:36
>>486
追加だけならガーベッジは発生しなくないか?
488デフォルトの名無しさん:2007/10/20(土) 12:52:56
>>479だとリストの生成・消滅も勘定に入ってるからだろ
489487:2007/10/20(土) 13:01:31
ああ、ほんとだ・・・って、よく見たら
STL版は消滅コストもカウントしてるけど
C#版はカウントしてないじゃん。
490デフォルトの名無しさん:2007/10/20(土) 13:46:11
>>487
第1世代→第2世代に移動するためのGCと思われ。
GCしてもヒープが減ってない。

C#のコンソールアプリ用のプロファイラってありますか?
491デフォルトの名無しさん:2007/10/20(土) 14:04:05
半月以上前からいるのか。
ずっとこの件でかまって欲しかったらしいな。

----------------------------------------------------
ttp://pc11.2ch.net/test/read.cgi/tech/1190845036
29 :デフォルトの名無しさん:2007/10/02(火) 02:25:51
Formだけが遅いのかと思ったら
Genericも超おせー

.NETってどんな局面で使えるのかさっぱりわからんぞ


----------------------------------------------------
ttp://pc11.2ch.net/test/read.cgi/tech/1191036844/437
437 名前: デフォルトの名無しさん 投稿日: 2007/10/19(金) 01:32:07
.NETアプリってFormが遅いだけでなく、ジェネリックコンテナもSTLと比べると
かなり遅いんですね。


----------------------------------------------------
ttp://pc11.2ch.net/test/read.cgi/tech/1191036844/465
465 名前: デフォルトの名無しさん 投稿日: 2007/10/19(金) 23:49:02
List<>
って異常に遅くないですか?
std::list<>
と比べると使い物にならない

3では改良されているのかしらん?
492デフォルトの名無しさん:2007/10/20(土) 14:07:52
別に遅くない、むしろ早いでFA
493デフォルトの名無しさん:2007/10/20(土) 14:12:02
実行時に展開してるんだぞ
遅くなりようがない
494デフォルトの名無しさん:2007/10/20(土) 14:15:13
exeダブルクリックしてからの体感速度で語ってるんだろ

AppDomainのロードとかJITコンパイルとか理解してるとは思えない
495デフォルトの名無しさん:2007/10/20(土) 14:15:37
>>491
465もお前さんもどっちもどっちだな。
言っちゃ悪いけどお前さんも相当気色悪いよw
496デフォルトの名無しさん:2007/10/20(土) 14:17:13
>>490
CLRProfiler
497デフォルトの名無しさん:2007/10/20(土) 14:18:16
ただの無知アンチでFA?
498デフォルトの名無しさん:2007/10/20(土) 16:45:54
すみません、C#初心者ですがいい方法を教えていただけますでしょうか。

・GridViewに記述したCheckBoxの値を取る方法

CheckBoxFieldってのがありますが、どうも入力値を取得するためのものとは
思えません。あと、ItemTemplateの中にCheckBoxを入れても、イベントで
どの行がチェックされたかを取得する方法が分かりません。

どうかよろしくお願いいたします。
499デフォルトの名無しさん:2007/10/20(土) 17:07:13
選択行はe.RowIndex
セルをCheckBoxFieldにキャストしたら値取れます。
携帯なので詳しく書けないけど
500デフォルトの名無しさん:2007/10/20(土) 19:27:07
>>496
479のソースを試したけど、うまく動作しない。
CLR Starting なんとかというダイアログが出て、その間にソフトの実行が終わって、NullReferenceExceptionで落ちる。
501デフォルトの名無しさん:2007/10/20(土) 19:35:07
普通に動くんだが
バージョンは2.0か?
502デフォルトの名無しさん:2007/10/20(土) 19:43:22
比べて無かったってか比べ方がおかしかった。
503デフォルトの名無しさん:2007/10/20(土) 23:39:46
>>499
ありがとうございます。e.RowIndexということは、イベントですよね?
何のイベントでしょうか。
504デフォルトの名無しさん:2007/10/21(日) 00:05:15
CellContentClickイベントだ。下記で多分できると思うが試してくれ

DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)dgv.Rows[e.RowIndex].Cells[e.ColumnIndex];
505デフォルトの名無しさん:2007/10/21(日) 00:08:47
……System.Windows.Forms.DataGridViewじゃなくてSystem.Web.UI.WebControls.GridViewの話のようなのだが
おいらはASP.NETは知らんから助言はできんが
506デフォルトの名無しさん:2007/10/21(日) 00:15:38
C# って 3,0 にならないと匿名クラスって無いんだよね?
Java の new Foo() { 〜 } みたいな奴。
507デフォルトの名無しさん:2007/10/21(日) 00:20:43
そう
ただしJavaのとは違ってメソッド定義はできないインターフェイス実装も無理
C/C++の関数内構造体に近い
508デフォルトの名無しさん:2007/10/21(日) 00:27:32
まあ、Java の匿名クラスが必要な場面で、
C# は匿名デリゲート使うしね。
509デフォルトの名無しさん:2007/10/21(日) 00:28:59
匿名クラスみたいに気持ちの悪いことを書かなくて済むからよかった
510デフォルトの名無しさん:2007/10/21(日) 00:37:55
Ilist型のプロパティをnewしてIlist<T>に変換したいのですが、
うまくキャストする方法がわかりません。
どなたか助言をお願いします。
511デフォルトの名無しさん:2007/10/21(日) 00:39:30
おかーちゃーん
意味がわかんないよう
512デフォルトの名無しさん:2007/10/21(日) 00:39:59
意味が分からん
プロパティをnewってなんだ

取りあえずやりたいのを仮想的なコードにしてみれ
513デフォルトの名無しさん:2007/10/21(日) 00:48:27
適当に勘で答えると
そのプロパティがIListだとするとIList<T>を実装してない可能性が高いから
IList<T>にキャストするのは無理くさい
素直にList<T>にAddしていくのがいいんじゃないか
514510:2007/10/21(日) 00:54:58
>>511-512
わかりにくくてスミマセン…
こんな↓みたいな感じにしたいのですが、
このままだとItem追加時にキャストでエラーが出てしまいます。
なにかウマイキャスト方法がないかと質問した次第です。

class ListViewEx : ListView
{
public new IList<ListViewItem> Items
{
get
{
return (IList<ListViewItem>)base.Items;
}
}


}
515デフォルトの名無しさん:2007/10/21(日) 01:19:35
class ListWrapper : IList<T>
{
IList list;

public T this[int index]{
get{ return (T)list[index]; }
set{ list[index] = value; }
}
...
}
こんな感じのものを作ってかぶせてやればいいんだけど
516デフォルトの名無しさん:2007/10/21(日) 03:36:29
System.Collections.IList と System.Collections.Generic.IList<> は継承関係じゃないんだから、
IList が IList<> にキャストなんて出来ちゃったらたぶん天地がひっくり返る。
517デフォルトの名無しさん:2007/10/21(日) 03:42:24
実は実装クラスが両方のインターフェイスを実装してたってオチもあるかもしれないぜ
まあListViewItemCollectionはそんなことないけど
518デフォルトの名無しさん:2007/10/21(日) 07:20:15
519デフォルトの名無しさん:2007/10/21(日) 08:41:57
>>504
ありがとうございます。ただ、>>505の方が仰るように、Webアプリなのです。
申し訳ありません、言葉たらずでした。
520デフォルトの名無しさん:2007/10/21(日) 14:59:19
C#プ基礎勉強可?
521デフォルトの名無しさん:2007/10/21(日) 16:52:21
>>519
俺がよく読んでなかったなスマソ。
ボタンなら簡単に選択行取れる仕組みあると思うけど、その他のコントロールなら以下参照して仕組み作りこめばOK
http://msdn2.microsoft.com/ja-jp/library/system.web.ui.webcontrols.gridview.rowcommand(VS.80).aspx
522デフォルトの名無しさん:2007/10/21(日) 20:14:40
DataGridでExcelの様な画面分割(縦2分割)はできないものでしょうか?
523デフォルトの名無しさん:2007/10/21(日) 20:28:10
getのみプロパティを get/set両方ありのプロパティでオーバーライドするのってどうやればいいんでしょうか?

abstract class Base
{
  public abstract int Prop { get; }
}

class Derived : Base
{
  // エラー: Base.Propにsetがないからoverrideできない
  public override int Prop
  {
    get{ ... }
    set{ ... }
  }
}
524デフォルトの名無しさん:2007/10/21(日) 20:41:49
無理
Setメソッド用意するなり
525デフォルトの名無しさん:2007/10/21(日) 20:55:49
treeviewで左クリック時のアイテムのnameを調べたいのですがどうしたら良いですか?
526デフォルトの名無しさん:2007/10/21(日) 20:59:50
>>525
e.Node.Nameじゃね?
527デフォルトの名無しさん:2007/10/21(日) 21:08:24
>>526
すいません。左クリックというのはToolStripMenuItemなのですがe.Node.Name
では取れないようなのです。
528デフォルトの名無しさん:2007/10/21(日) 21:09:51
>>524
そうですか。。。不便ですなあ
529525:2007/10/21(日) 21:20:50
TreeNode tni = treeView.GetNodeAt(MousePosition.X, MousePosition.Y);
で取れたら良いのですがどうにかできないでしょうか?
530デフォルトの名無しさん:2007/10/21(日) 21:35:32
よく分からんがSelectedNodeとかじゃ駄目なのか?
531デフォルトの名無しさん:2007/10/21(日) 21:44:54
>>523
インターフェイスならおkだったりする
532525:2007/10/21(日) 22:30:49
>>530
あ、右と左が逆になっていました。SelectedNodeだと一度左クリックでノードを選択して更に
右クリックでメニューバーを出さないとそのノードが取れないのです。
533デフォルトの名無しさん:2007/10/21(日) 22:42:42
あー、なんだ、小出しはやめろ。
一からやりたいことを書け。
534デフォルトの名無しさん:2007/10/21(日) 22:44:56
>>532
どのコントロールの上でクリックしたときの処理を意図してるのか
さっぱり分からない。
もっと整理して質問してください。はげ。

>>529から推測するに
Point pnt = treeView.PointToClient ( Control.MousePosition );
TreeNode tni = treeView.GetNodeAt(pnt.X, pnt.Y);
みたいなことか?
535デフォルトの名無しさん:2007/10/21(日) 22:59:02
>>532
void treeView_MouseDown(object sender, MouseEventArgs e) {
    if ((e.Button & MouseButtons.Right) != 0) {
        TreeNode tn = treeView.GetNodeAt(e.X, e.Y);
        if (tn != null) treeView.SelectedNode = tn;
    }
}

これでOK
536510:2007/10/21(日) 23:28:42
>>513
うーんそれだとForm側でのItem追加がうまくいかないのです…

>>515
なるほど、ラッパーで対応ですか。
その方法が確実っぽい気がするので、実装してみます。

ありがとうございました。
537デフォルトの名無しさん:2007/10/21(日) 23:29:55
OfType<T>
538デフォルトの名無しさん:2007/10/21(日) 23:46:15
IList<T>って言ってるだろ
539デフォルトの名無しさん:2007/10/22(月) 00:11:02
NDocって.NET 2.0では動かない?
540デフォルトの名無しさん:2007/10/22(月) 00:15:31
動かないっぽい
541デフォルトの名無しさん:2007/10/22(月) 00:18:49
>>539
なんか設定すれば動いた気がする
ググればたぶん出てくるよ
542デフォルトの名無しさん:2007/10/22(月) 00:21:38
>>539
ソースちょっと弄ってビルドしなおせば動いた気がする。
543デフォルトの名無しさん:2007/10/22(月) 00:22:44
>>540-542
ありがとう。もっとよく探ってみます。
544デフォルトの名無しさん:2007/10/22(月) 00:47:53
>>542
.configでしょ?
でも不具合あるし、開発止まってる。
俺は修正して使ってたけどsandcastleがUIとかも増えてきたからそっちに使うようにした。
545デフォルトの名無しさん:2007/10/22(月) 01:37:01
>>544
ああ、そんなんでいいんかな。
デバッガで例外おって適当に書き換えたからよくわかんね。
546デフォルトの名無しさん:2007/10/22(月) 10:49:01
WindowsサービスアプリでTimer使いたいんだけど、
スレッドのやつとフォームじゃないもう一つのやつと、
どっちつかえばいいですか?
547デフォルトの名無しさん:2007/10/22(月) 12:38:23
スレッドのがいいんじゃね?
タイマーのは結局単なるラッパーだし。
548デフォルトの名無しさん:2007/10/22(月) 13:24:37
了解です。もう一つだけ質問。

アプリの設定ファイルでapp.configと
settingsファイルってどっち使っても良いんですかね?

この二つに違いってありますのん?
549デフォルトの名無しさん:2007/10/22(月) 16:07:20
基本的に固定設定なのか、保存などの操作があるのか。

まあアプリケーションスコープの設定なら一緒みたいなもんだけど。
てか設定もapp.configに書かれるし。
550デフォルトの名無しさん:2007/10/22(月) 18:41:49
ASP.NET C#の質問なんですが
テキストボックスに入力された値が入力してほしい値(日付とか)じゃない場合に
それ以降の処理を中断させる、というのやりたいのですが、どうすればよいのでしょうか?
クライアント側での制御の仕方は分かるのですが、サーバー側でチェックした時の処理の方法がいまいちわからないです
551デフォルトの名無しさん:2007/10/22(月) 19:35:24
ドローツールを作りたいんですが、たとえば「直線」をオブジェクトとするにはどうすればいいんでしょう?
描画した後の直線部分をクリックして移動したり、端をクリックして線の長さや角度を変えたりしたいんですが、
直線自体をオブジェクトにして、振る舞いを記述したら楽だと考えたので。
552デフォルトの名無しさん:2007/10/22(月) 20:05:21
class Line { public Vector Point1{get;set;} public Vector Point2{get;set} }
みたいな感じじゃね
WPF使うと楽かも
553デフォルトの名無しさん:2007/10/22(月) 20:12:06
WPF 使うとすると、
Line の端に Ellipse でも置いて、
Ellipse の Click イベントに DragMove() 書いて、
Ellipse の Canves.Left, Canvas.Top を
Line の X1, X2, Y1, Y2 とバインドしとくとかかな。
554デフォルトの名無しさん:2007/10/22(月) 20:56:08
ふらっとでWPF勧めるやつって馬鹿?
555デフォルトの名無しさん:2007/10/22(月) 20:59:47
>>551の質問がそもそもふらっと向きじゃないし
WPFにはドローツールのサンプルもあるし
556デフォルトの名無しさん:2007/10/22(月) 21:05:46
どうなんだろ?
実際>>551が何を期待してるか読み取れないし。

>直線自体をオブジェクトにして、振る舞いを記述したら楽だと考えたので。
とあるように、技術面はクリアしていて記述自体はできるのかも。
557デフォルトの名無しさん:2007/10/22(月) 21:07:57
>>555
あんたもトロいなあ。。
じゃあ通常の質問スレで質問したら初心者向けに誰か解説してくれるの?
どうせあんたみたいのはそっちで質問したらしたで「ふらっと池」って言うのが目に見えてるよ。
558デフォルトの名無しさん:2007/10/22(月) 21:19:31
>>550
通販サイトとかだと、中断されないな。
受信内容チェックしておかしかったら、再度入力しなおすように表示するだけ。

例:
電話番号が入力されていません。
電話番号を記入してください。
559デフォルトの名無しさん:2007/10/22(月) 21:29:14
Form1
this.TopMost = true;

Form2 form2 = new Form2
form2.ShowInTaskbar = false;
f.ShowDialog(this);

ShowDialogにthisを書いとかないと
Form1の後ろに表示します。

で、問題なのは実体化したform2を最小化しようと
右上の最小化ボタンを押したときの挙動。
普通はForm1共々最小化されるはずなのに
左下に逃げるのはバグですかね?

Form1のTopMostがfalseの時は普通の動作です。
何か対処方法はありませんでしょうか?
560デフォルトの名無しさん:2007/10/22(月) 21:32:00
>左下に逃げるのはバグですかね?

でたーバグ説!
561デフォルトの名無しさん:2007/10/22(月) 21:34:03
なんでダイアログなのに最小化するの?
562デフォルトの名無しさん:2007/10/22(月) 21:40:55
form2.TopMost = this.TopMost;
でかいケツ
563デフォルトの名無しさん:2007/10/22(月) 21:49:09
ASP.Netでのアップロード処理ですが、PostedFileプロパティを使う方法
ですと、メモリ上にアップロードファイル全部を持ってきた状態になって
しまうかと思います。

巨大ファイルを扱いたい場合、RequestのStreamから適当なバッファで
ファイルなりDBなりに転送したいんですが、これはASP.Netで可能なので
しょうか。
564デフォルトの名無しさん:2007/10/22(月) 21:49:36
解決しません。
565デフォルトの名無しさん:2007/10/22(月) 21:50:42
>>563
可能だろ。
566デフォルトの名無しさん:2007/10/22(月) 21:54:18
話ならんヤツはレスするな
567デフォルトの名無しさん:2007/10/22(月) 22:02:10
>>562
自分でやってみたのか?
568デフォルトの名無しさん:2007/10/22(月) 22:03:11
>話ならんヤツはレスするな
お前が言うなw

>>563
プロパティ名だけで、クラス名(主語)が抜けてない?
アップロードされたらファイルに落とせばいいだけじゃないか?
なぜめんどい方向に持っていこうとする。
さらに、
>MaxRequestLength プロパティと RequestLengthDiskThreshold プロパティを調整することで、
>サーバーのパフォーマンスを微調整できます。また、MaxRequestLength を設定して、
>サーバーに対する大量のファイルのポストによるサービス拒否攻撃を防ぐことも検討してください。

>>562
家では全く解決しません。
569デフォルトの名無しさん:2007/10/22(月) 22:04:19
>>558
無理なんですか・・・、了解です
570デフォルトの名無しさん:2007/10/22(月) 23:05:05
>>568
主語は例えばprotected System.Web.UI.HtmlControls.HtmlInputFileです。

ここ↓には、
http://support.microsoft.com/kb/323246/ja

「アップロード処理の際には、ASP.NET によってファイル全体がメモリに読み込まれてから、
ファイルがディスクに保存されます。」

とありますね。ASP.Netでは、ポストバック時に必ずそうなってしまう、と考えるべき
なのかどうかを知りたいのです。
571デフォルトの名無しさん:2007/10/22(月) 23:10:06
>>550
「それ以降の処理」の直前にチェックしてエラーなら
「それ以降の処理」の部分を通らないようにすればいい。
572デフォルトの名無しさん:2007/10/22(月) 23:30:33
573デフォルトの名無しさん:2007/10/23(火) 00:04:39
>>568お前意味自体わかって無いだろ。
>アップロードされたらファイルに落とせばいいだけじゃないか?
何を言ってんだ。
残念ながらASP.NETの素の機能ではできなかった、と思う。
今はできるのかな?IIS7環境だとできたりするのかな?
574デフォルトの名無しさん:2007/10/23(火) 13:47:45
>>573
やはりそうなんでしょうか。

ここ↓に書いているような、指定したバッファ以上をサーバー上で抱えない
仕組みってできるといいんですけどね。

http://www.atmarkit.co.jp/fjava/rensai2/webopt13/webopt13.html

取りあえず、上限を設けて対処することにします。
575デフォルトの名無しさん:2007/10/23(火) 20:24:15
FormのIconプロパティが設定されていないことを知る方法はないでしょうか。
Iconプロパティにnullをセットしても、標準のアイコンが取得出来てしまいます。
576デフォルトの名無しさん:2007/10/23(火) 20:38:47
Iconプロパティにnullセットは意味ないっぽい。
getするとForm.DefaultIcon等が返るみたい

リフレクション使うしかないんじゃないかな
577デフォルトの名無しさん:2007/10/23(火) 20:48:05
SystemIcons.Applicationと同一かどうかでわかるんじゃない?
しかし、そんなこと知って何になるのかねえ、という感がどうしても否めん
578デフォルトの名無しさん:2007/10/23(火) 21:58:50
Debug 用じゃないログ書き込みクラスって、static にしても問題ないですか?
それともちゃんとインスタンス生成して扱うのが適切なのでしょうか。

一応 StandAlone を想定していますので、static でもそうでなくても動作は同じだと思うのですが、
この先は好みの問題になっちゃうんですかね……
579デフォルトの名無しさん:2007/10/23(火) 23:52:18
意味がわからねーよ
580デフォルトの名無しさん:2007/10/24(水) 00:03:23
適当に答えるとシングルトンでいいんじゃね
581デフォルトの名無しさん:2007/10/24(水) 00:07:05
意味は一応わかるよ。

要はシングルトンなんて全部static(クラスフィルドとクラスメソッドonly)
でやるのと一緒じゃん、ってことでしょ。
そりゃそうかも。

でも考え方として自然じゃないから普通はやらないよね。
潰しもきかないし
582デフォルトの名無しさん:2007/10/24(水) 01:10:41
後で手を入れたくなったとき、全部staticメソッドよりシングルトンの方が扱いやすいよ。
583デフォルトの名無しさん:2007/10/24(水) 02:54:53
と言うか何も変数の参照がなければstaticと思ってるがそれでおk?
584デフォルトの名無しさん:2007/10/24(水) 03:23:49
質問です。
PictureBoxの一部をGraphics.DrawImage()を使って定期的に書き換えたいのですが、
Graphics.DrawImage()で書き込む画像に透過ピクセルがあるので、画像が重なってしまいます。

たとえば「A」という画像をGraphics.DrawImage()で書いて、その後「B」という画像に
書き換えたいが、透過ピクセルを使っているのでAとBが重なって表示されます。
PictureBox1.Refresh()を使うと、毎回他のところも書き込まないといけないし、
環境にもよるでしょうけど、ちらつきが発生してしまいます。

一部画像で書き換えられているソフトについているスキン画像なんかは、
画像ビューアなどで見るとバックが紫色になってたりするので、手法が
違うのだろうかとも思ってますが、やり方がわかりません。

よろしくお願いします。

585デフォルトの名無しさん:2007/10/24(水) 08:41:34
最近C#でASP.NETをはじめたばかりの初心者です。

質問なのですが、DataGridで1列目1行目の値、2行目の値を取得するには
どのようにすればいいでしょうか?
586デフォルトの名無しさん:2007/10/24(水) 09:33:01
>>585
マルチktkr
587デフォルトの名無しさん:2007/10/24(水) 11:55:18
>>584
何をしたいのかわかんないけど
書き換えたい一部だけ塗りつぶしたらいいんじゃね?
ちゃんとPaintイベントで描いてる?
588デフォルトの名無しさん:2007/10/24(水) 16:27:41
>>584
白なり黒なりで塗りつぶして消せばいいじゃん。
589584:2007/10/24(水) 18:42:35
>>587-588
レスども。

塗りつぶす場合、バックグラウンドに何が描かれてあったか
気にしないとダメじゃないですか。

何が描いてあったのか退避させておくとか、
PictureBoxを重ねて別レイヤー扱いみたいにするとかすれば、
できるけど、もっと気楽で簡単に出来るもんだと思ってるのですが...。

というより説明下手で何がしたいのかうまく伝わってないのか(´・ω・`)
590デフォルトの名無しさん:2007/10/24(水) 18:53:38
描画するイメージや描画範囲や描画順を持ったクラスを作って
そのオブジェクトをコレクションに入れて覚えといて
それに従って全部描き直せば
591584:2007/10/24(水) 19:31:39
>>590
レスども。
結局それなりの手間を掛けなきゃならんってことですね。
ありがとうございました。
592デフォルトの名無しさん:2007/10/24(水) 21:25:38
>>591
アニメーション程度だったらその部分だけ元画像もっておけばいいだけなんだが。
593デフォルトの名無しさん:2007/10/24(水) 21:28:26
シングルトンはグローバル変数とかわらんだろ
よってGofは有罪!
594デフォルトの名無しさん:2007/10/24(水) 23:22:40
はいはい。
595デフォルトの名無しさん:2007/10/25(木) 01:36:15
一週間前にC#を始めました。
今文字列型の所をやっていたんですが、
Copyメゾットの意味がよくわからないです。。

例えば、aに代入されている文字列をbにコピーする時に、
b=aとするのと、
b=String.Copy(a)とするのに違いはあるんでしょうか?
すごく初歩的な質問かもしれませんが、宜しくお願いします
596デフォルトの名無しさん:2007/10/25(木) 02:09:54
参照型でぐぐって。
string は参照型。
597デフォルトの名無しさん:2007/10/25(木) 02:19:38
a="あ";
とする。

String.Copy(a)
とすると、"あ"という文字列がコピーされてもう一個できる。
b=String.Copy(a)とすると、bは新しくできたもう一つの"あ"を参照するようになる
b=aだと、bもaも同じ"あ"という文字列を参照する
598デフォルトの名無しさん:2007/10/25(木) 03:33:19
エクスプローラの左側にある 「システムのタスク」 とか 「詳細」 とかがあるペインを作れるコントロールは
C# にはありますか?
599デフォルトの名無しさん:2007/10/25(木) 16:37:48
>>598
WPFのExpander
600デフォルトの名無しさん:2007/10/25(木) 19:54:35
スプリッターでごまかす。
601デフォルトの名無しさん:2007/10/25(木) 21:52:41
List<T> t = new List<T>();
t.Add(hoge);
t[] tt = (T[])t;
602デフォルトの名無しさん:2007/10/25(木) 21:55:17
603デフォルトの名無しさん:2007/10/25(木) 23:14:21
List<T>はキャストできない
604デフォルトの名無しさん:2007/10/25(木) 23:19:30
ToArray()使えよ
605デフォルトの名無しさん:2007/10/25(木) 23:36:36
Too far awayはなっちのシングル
606デフォルトの名無しさん:2007/10/25(木) 23:50:54
T[] tt = (T[])t.ToArray();
607デフォルトの名無しさん:2007/10/26(金) 00:01:20
なんでキャストしてんだよw
608デフォルトの名無しさん:2007/10/26(金) 12:00:10
OnKeyDownで処理された入力をOnKeyPressで処理しないようにしたいんですが、
どのようにすればいいんでしょうか?
KeyEventArgs.Handledプロパティを設定してみたりしたんですがどうもだめでした。
609デフォルトの名無しさん:2007/10/26(金) 12:36:23
日本語書けよ。。
処理された、とか処理しない、とか何のこと言ってるんだよ。

本当こういう奴ってどういう頭の構造してるの?
世の中俺以外全員エスパーとでも思ってるのか?
610デフォルトの名無しさん:2007/10/26(金) 14:21:11
>>608
OnKeyDownが発生してOnKeyPressが発生するわけだから、それって何も処理したくないってことじゃないの?
611デフォルトの名無しさん:2007/10/26(金) 16:51:55
>>608
OnKeyDownで処理したらフラグ立てといて
OnKeyPressの中ではif(フラグ立ってなかったら){処理}フラグ戻す
612デフォルトの名無しさん:2007/10/26(金) 17:02:22
>>611
OnKeyPressでフラグ戻しちゃだめだな
OnKeyUpか次のOnKeyDownで
613デフォルトの名無しさん:2007/10/26(金) 17:31:18
KeyDownなしでKeyPressって発生するのか?
614デフォルトの名無しさん:2007/10/26(金) 18:36:48
押されたキーによってはKeyDownで処理するんじゃね
615デフォルトの名無しさん:2007/10/26(金) 18:40:44
そうやって日本語すらちゃんと書けない馬鹿を甘やかすなよ・・・
616デフォルトの名無しさん:2007/10/26(金) 21:00:10
たぶんある程度はエスパーできるから答えてるんじゃね
エスパー以外はすっこんでろってこと。
617デフォルトの名無しさん:2007/10/26(金) 23:42:01
プログレスバーの処理のためにあらかじめ総数が欲しいのだがIEnumerable<T>の数を数える簡単なメソッドとかって用意されてる?

いやもちろん
int count = 0 ;
foreach ( T item in items ) { ++count ; }
で数えられるのはわかっているのだが…
618デフォルトの名無しさん:2007/10/26(金) 23:49:06
.NET Framework のクラスライブラリのどっかのクラスでは
ICollection にキャストしてみてキャストできたらそこで個数をチェックしていた
619デフォルトの名無しさん:2007/10/26(金) 23:51:03
考え方が逆立ちしてないか?
そのメソッド、何が悲しゅうてわざわざIEnumerable<T>を引数に取るの?
自分で自分の手を縛ってどうするよ
620デフォルトの名無しさん:2007/10/26(金) 23:53:34
>>617
それを C# 3.0 の拡張メソッドにでもすればよくね?

static int Count<T>(this IEnumerable<T> items)
{
 int count = 0;
 foreach(var item in items) ++count;
 return count;
}
621デフォルトの名無しさん:2007/10/26(金) 23:59:08
>>619
List<T>(IEnumerable<T>)とかあるだろ
外から便利と中で楽なら前者を取るだろ当然
その前に>>617はそんなこと言ってないだろ
622デフォルトの名無しさん:2007/10/26(金) 23:59:16
わざわざコレクションを回したくないから聞いてるんじゃね
623デフォルトの名無しさん:2007/10/26(金) 23:59:44
ごめん、てか、3.0 使うんなら標準で Count 拡張メソッドがあった。
System.Linq.Enumerable.Count
624デフォルトの名無しさん:2007/10/27(土) 00:07:24
列挙するたびに数が変わる列挙子もあっていいんじゃないの?
そのためにCountが付いてないんだろうし
625デフォルトの名無しさん:2007/10/27(土) 00:10:44
答え:C#3.0ならある
626デフォルトの名無しさん:2007/10/27(土) 03:03:51
Linq使ったって、列挙してカウントするのと同じじゃね?
627デフォルトの名無しさん:2007/10/27(土) 03:22:00
多分そういう実装だろうね。
それが嫌ならリスト使えよって感じよね。
628デフォルトの名無しさん:2007/10/27(土) 03:47:56
ICollection<T>を実装していればCountを呼び出す
http://www.microsoft.com/japan/msdn/net/bb394939.aspx#standardqueryops_topic16
629デフォルトの名無しさん:2007/10/27(土) 05:07:39
C#に限った話ではないのですが、型の識別のためだけに空のインターフェイスを定義するのは「あり」なんでしょうか。
630デフォルトの名無しさん:2007/10/27(土) 05:08:46
あり
631デフォルトの名無しさん:2007/10/27(土) 06:23:38
.NET 的にはそれは属性でってことになるんじゃね?
632デフォルトの名無しさん:2007/10/27(土) 07:16:12
>>629
.NET 的には無しじゃなかったっけ?
.NET内部でもやってるけどw
633デフォルトの名無しさん:2007/10/27(土) 07:24:57
速度的にはどうなのかね
属性調べる、インターフェースをisで調べる、
boolを返すvirtualプロパティにする、boolのパブリックフィールドにする
といった方法があると思うけど
634デフォルトの名無しさん:2007/10/27(土) 08:34:04
速度気にするなら.NET使うなよ
635デフォルトの名無しさん:2007/10/27(土) 08:42:23
速度はどうでもいいが、属性の取り扱いはもうちょっと簡単になってほしいなぁ
636デフォルトの名無しさん:2007/10/27(土) 10:22:26
Visual studio6.0です。
ラジオボタン2個、ボタン1個のwindow作ってます。
MFCでラジオボタンにintの変数を追加しようと
してもbuttonにしか変数が追加できません。

どうすれば、受付けてくれるのでしょうか?
VS.NET仕様のテキストを見ながらやってて違いに困ってます・・・
637デフォルトの名無しさん:2007/10/27(土) 10:25:48
スレタイ読めないの?
638デフォルトの名無しさん:2007/10/27(土) 10:28:32
間違いた!!mfcスレいってきまつ
639デフォルトの名無しさん:2007/10/27(土) 10:30:37
VB.NETを2年ほど(Winアプリ)使ってきたけど
そろそろC#に乗り換えないと世間の流れに取り残されるなぁと思って乗り換えようと思うんだけど

C#でできてVB.NETでできないこと(たとえばポインタ扱うとか)
いまいちググっても違いがあんまわからない

C#の優位性を教えてもらえまいか?
640デフォルトの名無しさん:2007/10/27(土) 10:33:39
.NET使ってればできる事はほぼ同じ
641デフォルトの名無しさん:2007/10/27(土) 10:34:18
>>639
C#は最悪だからこないでくだちぃ
ほんとにお願いします
642デフォルトの名無しさん:2007/10/27(土) 10:40:48
>>640
かわんないよね?
フレームワーク使って開発するんなら細かい部分しかかわらないと思うんだ
でも、+αのなにかがあるから皆そっちなんだろうなぁ・・・とか思ってしまう
なにかピンポイントでこういうときにVBよりイインダヨみたいなのが知りたかった
それだったら最悪VB.net+C#でプロジェクト分けて開発も考えられるし

>>641
サーセンwwww
643デフォルトの名無しさん:2007/10/27(土) 10:57:58
出来ることは同じだな
VBの変態的な文法に馴染めるかどうかだけ
644デフォルトの名無しさん:2007/10/27(土) 11:25:00
TextFieldParserを使いたいんですが、
using Microsoft.VisualBasic.FileIO;
と書くと、FileIOは名前空間Microsoft.VisualBasicに無い、アセンブリ参照が不足と
コンパイルエラーが出てしまいます。
.NET2.0だと何も参照しなくても標準で使えると思っていたのですが、
何か操作をしないといけないのでしょうか?
Vistaなので.NET2.0は入っています
645デフォルトの名無しさん:2007/10/27(土) 11:38:09
>>642
昔から VB 使ってた人用が VB.NET で、
C の系譜使ってた人用が C#。
646デフォルトの名無しさん:2007/10/27(土) 11:46:01
>>644
> アセンブリ参照が不足

ttp://msdn2.microsoft.com/ja-jp/library/f68t4563(VS.80).aspx
> 必要条件
> アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)

ちゃんとエラーメッセージ嫁
647デフォルトの名無しさん:2007/10/27(土) 11:56:49
>>643
両方やってる人間の目から見たら、文法の変態性はどっちもどっちでしょ。

それぞれにいいところと悪いところがあるから、
一概にどっちが変態とか言えんと思うよ。

VBerからみて恐らく変態的に見えるC#の文法は、たとえば今思いつくだけで

 ・なんでインターフェイスの実装と継承が同じ書式なんだ?
 ・コンストラクタの名前がクラスによって違うって馬鹿みたい
 ・変数宣言時型名を最初に書く文法のせいで、初期も一緒に行うときの書式がまどろっこしい
 ・なんでusingってキーワードが全く異なる2つの用途に使われるの?
 ・インデクサ以外の引数付きのプロパティが書けないって糞じゃん
 ・クラスと同じ寿命のメソッドスコープの変数が書けないって糞じゃん
 ・プロジェクトの「ルート名前空間」が決められないのかよ
648デフォルトの名無しさん:2007/10/27(土) 12:05:47
>>647
VBとプログラミング言語一緒にされてもな・・・
649デフォルトの名無しさん:2007/10/27(土) 13:26:18
VBやってるやつと普通の人類を一緒にされてもな・・・
650デフォルトの名無しさん:2007/10/27(土) 13:36:59
・・・と、まともなプログラムすら組めない人が仰ってます。
651デフォルトの名無しさん:2007/10/27(土) 15:58:48
コンストラクタに関しては言う通りだと思うな
652デフォルトの名無しさん:2007/10/27(土) 16:29:06
確かにちょっと思う。
まあ、C++ からの負の遺産だなぁ。
653デフォルトの名無しさん:2007/10/27(土) 18:23:14
1つ目と4つ目も同意
わざわざC++に戻さなくてもJavaと同じでいいのに
654デフォルトの名無しさん:2007/10/27(土) 18:27:22
implements は書くのうざいと思うけどなぁ。

using はキーワード増やしたくなかったのかな。
でも、あんまりよくないよな。
C++ の関数内 static、クラス内 static、ファイルスコープ static とかも気持ち悪いし。
655デフォルトの名無しさん:2007/10/27(土) 18:31:24
同じキーワードがいくつに使われてようといいだろ
意味は通ってるんだから
656デフォルトの名無しさん:2007/10/27(土) 18:36:20
後で機能を足すときにはよく行われるけど、まったく新規に作るときにわざわざやらないだろ
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdndeepc/htm/deepc10192000.asp
これ見るとリソースのusingって後で追加されたのかな
それでキーワードが被ってるのかも
657デフォルトの名無しさん:2007/10/27(土) 18:36:31
多少まぎらわしいけど、だからといってキーワード増やすのもな
658デフォルトの名無しさん:2007/10/27(土) 18:48:17
まあusingはな、あまりに全く別物過ぎて
逆に混乱することもそうはなさそうだが。

VBだと個人的には
イベントメソッドのカスタマイズ(ひょっとして2.0からは出来たっけ?)
volatileフィールド
インターフェイスの再実装
refとoutの区別と呼び出し時の明記
3項演算子
辺りが出来ないのが不便かな
本当に困ることはそう多くはないが
659デフォルトの名無しさん:2007/10/27(土) 18:54:45
>refとoutの区別と呼び出し時の明記
これは本当にうざい
濫用されてると読めない
660デフォルトの名無しさん:2007/10/27(土) 20:35:44
.net2003、framework1.1です。
labelのtextにサークルシー(C)文字を1キャラで出したいんですけど、
どういうふうにプロパティ書いたらいいの?
661デフォルトの名無しさん:2007/10/27(土) 20:41:41
IMEパッドとかで入力しても出ない?
\u00a9とか\xa9とかTextにぶち込んでもいいけど
662デフォルトの名無しさん:2007/10/27(土) 20:48:23
>>661さん
あろがとう出来ました。
ヘキサで入れるのね。で、プロパティウィンドウじゃなくて、コードを書かないと出ないみたい。
ほんとありがとう。
663デフォルトの名無しさん:2007/10/28(日) 17:32:50
マウスカーソルの位置に水平線を描画するユーザーコントロールを作成してるんだけど、
マウスカーソルを動かすとCPU負荷が高くなってしまうorz
リフレッシュするタイミングが駄目なんだろうけど、ここからどうして良いかわからないです。
どなたかご教授よろしくお願いします。

private void Chrat_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
//g.DrawLineで線を書く
}

public Point ScorpPosition
{
get { return m_ScorpPosition; }
set
{
m_ScorpPosition = value;
this.Refresh();
}
}
664デフォルトの名無しさん:2007/10/28(日) 17:54:01
そうしたいならするしかない。
大きさが問題になるのなら
OnMouseMoveでマウス近辺の軸だけInvalidateするとか。
665デフォルトの名無しさん:2007/10/28(日) 18:57:21
RefreshもApplication.Runも使わずに自分でループ回してみるとか
666デフォルトの名無しさん:2007/10/28(日) 21:29:34
っていうか>>663のコードって一体何なの?w
質問してることとコードの間の相関がまったく理解できないんだけど。

最近こういう訳の分からん奴が多くて困るよ本当。
「自分以外は皆エスパー症候群」とでも名づけるべきかね
667デフォルトの名無しさん:2007/10/28(日) 21:33:50
>>666
このスレ初めてか?力抜けよw
スルーマジオヌヌメ
668デフォルトの名無しさん:2007/10/28(日) 21:40:49
ふらっとスレなんだからMouseMoveハンドラの中身くらい推測してやれよ
669デフォルトの名無しさん:2007/10/29(月) 00:21:22
>マウスカーソルを動かすと
って書いてあるし、OnMouseMoveでマウスのポイントを取得してるんだべ。
670デフォルトの名無しさん:2007/10/29(月) 11:49:12
http://homepage1.nifty.com/yasunari/VB/VB2005/GetHtmlObject.htm

このVBソースをC#に直しているのですが、GetIEDocument関数内の
EnumChildWindows(hWnd, AddressOf EnumChild, hWndChild)
という行をどのようにしていいかわからず、詰まってしまいました。

VBのAddressOfというのはC#でいうdelegateらしい?という事は分かったのですが、
使い方が分かりません。

どのように記述すればいいか教えていただけないでしょうか?
671デフォルトの名無しさん:2007/10/29(月) 13:07:01
delegate bool EnumChildProc( IntPtr hwnd, IntPtr lParam );

[DllImport( "user32.dll" )]
static extern bool EnumChildWindows( IntPtr hWndParent, EnumChildProc lpEnumFunc, IntPtr lParam );

って感じ?
672デフォルトの名無しさん:2007/10/29(月) 14:54:28
C#で書かれたmcache(旧msession)みたいなセッションサーバーはあるのでしょうか?
673デフォルトの名無しさん:2007/10/29(月) 15:36:36
はじめてC#.NETをやることになりました。
サンプルファイルを使って一つのソフトウェアを作らないとなりません。
だからメインファイルのようなものを
ファイル→新しいプロジェクト
から作りました。
sample01〜sample25(拡張子が*.csや*.slnなどが入っています)までのファイルのいくつかのファイルを使ったプログラムを作るためには
それらの呼び出しを行うコードが必要だと思うのですが
どのように呼び出せばいいのでしょうか。
検索してもDLLファイルのことしか出てこなくて悩んでいます。
抽象的で申し訳ございません。
674デフォルトの名無しさん:2007/10/29(月) 15:48:47
まず「一つのソフトウェア」ってどういう意味? 一つのexeファイルってこと?
一つのexeにまとめたいんだったらソースコードを直接自分のプロジェクトに入れるしかない
それと、sampleXXはプロジェクトなのかC#のコードファイルなのか
プロジェクトだとしたらDLLなのかアプリケーションなのか
675デフォルトの名無しさん:2007/10/29(月) 21:16:29
>>673
意味不明
本を買って勉強。または図書館に行く。
解決。

手間と金を惜しむな。
676デフォルトの名無しさん:2007/10/29(月) 21:19:01
.NET2.0のSqlCommandでSQL Server 2005のストアドプロシージャを実行しようとしています。
接続は読み書き権限のみもつSQL Serverアカウントで行っています。
このとき、dboではない所有者のストアドが実行できません。
所有者を指定してストアドを実行するにはどうしたら良いのでしょうか。

コマンド発行のコードは以下の通りです。

command.CommandType = CommandType.StoredProcedure;
command.CommandText = "hogeuser.hogeSP";
command.ExecuteNonQuery();

例外は以下の通りです。

System.Data.SqlClient.SqlException: ストアド プロシージャ 'hogeuser.hogeSP' が見つかりませんでした。

所有者がdboであれば無事に通ります。
どなたか教えてください。
677デフォルトの名無しさん:2007/10/29(月) 21:24:25
sample01〜sample25の中のクラスを呼び出すのは、「new」。
だけど、たぶんsample01〜sample25は25個の「ソリューション」。
検索して出てきたDLLは、おそらく「クラスライブラリ」。

さぁ、具体的になってきた?
つ 『プログラムを作ろう!パソコン教科書 Microsoft Visual C# 2005 Express Edition入門 (マイクロソフト公式解説書)』
678デフォルトの名無しさん:2007/10/30(火) 01:13:03
C#っていいの?

最初はどんな言語だっていいものさ。

しかし、そのうちにあちこちに綻びが出てきてだんだんややこしくなってくる。

なんだかんだともっともらしい理屈はつけられるけど結局、対症療法さ
679デフォルトの名無しさん:2007/10/30(火) 01:14:47
いいよ

次の質問をどうぞ
680デフォルトの名無しさん:2007/10/30(火) 01:17:47
おう、軽く受け流したね。ある意味、陰険
681デフォルトの名無しさん:2007/10/30(火) 02:16:12
だって既出だもの
682デフォルトの名無しさん:2007/10/30(火) 03:44:15
>>676
使用アカウントの設定ミス
権限見直せ
683デフォルトの名無しさん:2007/10/30(火) 04:48:04
>C#っていいの?

と聞いておいて、

>なんだかんだともっともらしい理屈はつけられるけど結局、対症療法さ

最初からまともに話す気なんかないのがよくわかる。
どんなレスを期待したのやら。
684デフォルトの名無しさん:2007/10/30(火) 06:16:33
>>683
放置マジオヌヌメ
685デフォルトの名無しさん:2007/10/30(火) 13:33:44
>>683

いちいち解説すんな。馬鹿造が
686デフォルトの名無しさん:2007/10/30(火) 15:38:45
cの中で下の記号をよく目にするのですがどういう意味があるのでしょうか
->
687デフォルトの名無しさん:2007/10/30(火) 15:41:57
>>686
-> スレタイを目に穴があくまで・・・という意味
688デフォルトの名無しさん:2007/10/30(火) 17:10:43
スレタイに穴があくまで…じゃないか?
689デフォルトの名無しさん:2007/10/30(火) 17:12:28
RSAについての質問です。

あるPCの公開鍵 RSAKey byte配列[0x80] があるとして、
その公開鍵を用いて暗号化したいのですが、

サンプルプログラムを見ると

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

RSAKeyInfo = new RSAParameters();

RSAKeyInfo.Modulus = RSAkey;

byte[] Exponent = { 1, 0, 1 };

RSAKeyInfo.Exponent = Exponent;

byte[] EncryptedData = RSA.Encrypt(packets, false);

となっているのですが、Exponentとはどういった意味なのでしょうか?
また、デバッグしてEncryptedDataを見ると、公開鍵は固定なのに被暗号データが変化しているように見えます。

どなたかわかるかたいらっしゃいましたらお願いします。
690デフォルトの名無しさん:2007/10/30(火) 22:28:55
C#でファイルアップロードをしようとしてます。FileUploadを使用してますが、
ポストバックすると設定したファイル名が消えてしまいます。画面上には
プルダウンでAutoPostbackする項目がいくつかあり、消したくないんですが、
これは可能なのでしょうか。
691デフォルトの名無しさん:2007/10/30(火) 23:48:57
ASP.netスレできいたらどうかね?
692デフォルトの名無しさん:2007/10/31(水) 10:50:03
無茶ゆうな。
ASP.NETの範疇の問題じゃない。

もちろんC#の範疇の問題でもないw
693670:2007/10/31(水) 14:30:29
>>671
ありがとう。せっかくだけど、良く分からないのでFindWindowで探すことにしました。
お世話になりました。
694デフォルトの名無しさん:2007/10/31(水) 23:08:07
>690
無理。
選択したローカルのファイル名の情報はPOSTされてこないから。
でも、IEはローカルのフルパスを送ってくることがあるけどそれはIEがおかしいだけだから無視してくれ。
695デフォルトの名無しさん:2007/11/02(金) 14:22:02
Windowsアプリで設定用のフォームを作りたいのです。
昔はタブで設定項目を指定して、それからページのフォームを設定していたと思いますが、
最近は、左側にツリービュー、右側に設定値という設定ダイアログが多いですよね。

ということで、最近の流行スタイルの設定ダイアログの右側はどうやって作るのでしょうか?
左にツリービューは良いとして、右には何が置いてるのですか?

ツリーで選択されたコントロールを右に表示しなくてはならないのですが、
やっぱり、タブコントロールで、タブを非表示にして右に貼ってるのですか?
それとも、コントロールのVisibuleとかで制御してるのでしょうか?
それとも、他に適したコントロールあります?VS2005なのですが。
696デフォルトの名無しさん:2007/11/02(金) 15:25:51
同サイズのPanelを同位置に重ねておいて
treeviewの選択イベントでBringToFront
697695:2007/11/02(金) 15:43:07
>>696
どうも有り難うございます。
う〜ん、重ねるとVSのデザイナ画面でどれをいじっているのか
自分が分からなくなって困ると思ったんですが、それしか無いようですね・・・。

タブコントロールのタブだけ非表示に出来れば、
それを使いたいと思ったのですが、不可能なようです。

あとは、それぞれのPanelをカスタムコントロールにする
そうですが、それはそれで大げさな気がしますし・・・。
698デフォルトの名無しさん:2007/11/02(金) 16:58:31
TabControlのAppearanceをFlatButtonに、ItemSizeを0,1に、SizeModeをFixedに設定すれば、あら不思議。
699695:2007/11/02(金) 18:12:13
鬼才現る・・・。

どうも有り難うございます。
Panelで重ねるとえらいことになる雰囲気がしてきたので、
Panelをユーザーコントロールにしようと悩んでいたところでした。

本当にどうも有り難うございました。
700デフォルトの名無しさん:2007/11/02(金) 18:38:07
いや各画面ごとにユーザーコントロール(あるいは枠なしのフォームでもいいけど)
で作るほうがいいような気がするけど。

ツリーで選択する、ってことはそれだけ多数の画面があって、
それぞれの画面には少なからずコントロールが乗るわけで、
そんな重装備のフォームってものすごくモッサリしそうに思うけど。
701デフォルトの名無しさん:2007/11/02(金) 22:10:08
私は過去に複数のpanelをVisibleで切り替えたんだけど、
枚数が多くて後から改修するのに苦労したよ。
>>698は今度試してみる。ありがとね。
702デフォルトの名無しさん:2007/11/03(土) 01:41:35
実行時に、必要なはずのDLLが見つからなかった場合に例外が発生しますが、いつ発生するのでしょうか?

1、プログラムを起動したとき
2、DLLのクラスなどが実際に使用されるとき。
 ・DLLのクラスをメンバにもつクラスが初期化するとき(対象のDLLのクラスが初期化されるとき)
 ・クラスのメンバが初期化されたとき
3、正確にはわからない
703デフォルトの名無しさん:2007/11/03(土) 01:50:58
4、僕にはわからない
704デフォルトの名無しさん:2007/11/03(土) 01:51:49
>>702
2
静的メソッドとかもあるから、クラスのメソッドが初めて使用されたとき。
705デフォルトの名無しさん:2007/11/03(土) 02:04:03
>>704
ありがとうございます。
とにかくクラスが直接関わってきたら(staticコンストラクタが実行される直前に)、例外が出るって感じですね。
706デフォルトの名無しさん:2007/11/03(土) 02:09:12
typeofでもロードされたりするけどな
707デフォルトの名無しさん:2007/11/03(土) 08:12:58
違うよ。
対象のクラスを参照してる、要するに上で出てきてるようなものだけど、
それをやってるメソッドを呼び出す直前(JITコンパイル時)。
なんていうか、一段早いというか。
708デフォルトの名無しさん:2007/11/03(土) 10:18:38
マネージドってどういう意味ですか?
709デフォルトの名無しさん:2007/11/03(土) 10:23:45
710デフォルトの名無しさん:2007/11/03(土) 10:26:08
C#3.0を利用するには.NETFramework3.0をインストールする必要がある?
711デフォルトの名無しさん:2007/11/03(土) 10:35:01
>>710
.NET 3.5から
712デフォルトの名無しさん:2007/11/03(土) 10:47:29
>>709
カムサハムニダ
713デフォルトの名無しさん:2007/11/03(土) 11:47:00
>>709
何このキモイ記事・・・
714デフォルトの名無しさん:2007/11/03(土) 13:35:38
VB.NETで書いたクラスファイルをC#で使うことって無理?
715デフォルトの名無しさん:2007/11/03(土) 13:39:22
まず自分で試してから質問するって714には無理?
716デフォルトの名無しさん:2007/11/03(土) 13:44:03
>>714
できるよ
717デフォルトの名無しさん:2007/11/03(土) 13:54:44
>>713
たしかに恥ずかしい記事だな
718デフォルトの名無しさん:2007/11/03(土) 13:55:48
>>714
ソースファイルは無理。DLLごしなら可。
719デフォルトの名無しさん:2007/11/03(土) 14:20:49
>>718 を補足すると、
同一プロジェクト内に .cs と .vb を混在させてコンパイルと言うのは無理。
C# プロジェクトと VB プロジェクトを別にして、
VB で作ったクラスを C# 側から利用するってのは可能。

ちなみに、どうしても DLL にしたくない場合、
module 化する方法もあるんだけど、ちょっと作業が煩雑。
720デフォルトの名無しさん:2007/11/03(土) 17:23:30
moduleにしても結局1つのファイルにできないので、DLLが無難
721デフォルトの名無しさん:2007/11/03(土) 20:13:08
というかILMarge。
722デフォルトの名無しさん:2007/11/03(土) 23:39:15
VSなら複数アセンブリは無理っす
723デフォルトの名無しさん:2007/11/04(日) 14:53:46
C#.netで新規web作成した時にnamespaceがなく、新しく自分でnamespaceを
追加したらエラーがでます、なにかいい解決策はないでしょうか?
724デフォルトの名無しさん:2007/11/04(日) 18:51:28
>>723
死ね役立たず。
人の足引っ張って楽しいかゴミクズ。
今すぐ死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。v死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
725デフォルトの名無しさん:2007/11/04(日) 23:23:26
>>724まぁおちつけよ
何か嫌なことでもあったのか?w
726デフォルトの名無しさん:2007/11/04(日) 23:24:25
mdbに接続する場合もADO.NETを利用するの?
727デフォルトの名無しさん:2007/11/05(月) 00:08:18
C#を勉強しようと思い、.NET1.1〜3.0をインストールし
C# 2005 Express Editionをインストールして勉強し始めてたとこなんですが
.NETフレームワークのいくつでコンパイルするかってどこで指定するのでしょうか?
その選択がどこにも見当たらないのですが。
1.1〜3.0までインストールしちゃったから、3.0でコンパイルするのかなぁ?
それだと1.1のソースを貰ってきても動かない可能性あり?
728デフォルトの名無しさん:2007/11/05(月) 00:11:32
>>727
2005で指定はムリ。
3.0を入れたなら3.0でコンパイルされる。
VS2008からは指定できるとか。
729デフォルトの名無しさん:2007/11/05(月) 00:12:54
>>728
あぁそうなんですか。。
早まって3.0入れちゃった。
2.0でとめとけばよかった・・・
730デフォルトの名無しさん:2007/11/05(月) 00:16:55
3.0ってXPとVistaだけなんでしょ?
つまり3.0でコンパイルしたソフトはWin9Xではムリって事?
731デフォルトの名無しさん:2007/11/05(月) 00:20:22
>>729
いちおう、主要機能に関しては互換性あるから、1.1 を 3.0 でコンパイルすることも可能だよ。
3.0 を 1.1 で〜は無理だけど。
732デフォルトの名無しさん:2007/11/05(月) 01:11:11
あと、3.0, 3.5は、CLRのバージョンが2.0のままなので、
単に3.0, 3.5で追加されたライブラリを参照しなければ、実質2.0で動くプログラムになる。
733デフォルトの名無しさん:2007/11/05(月) 01:39:59
>>726
誰も答えてないから一応答えとくが ケースバイケース もちろんADO.NETも使える
その質問の様子だとADO.NETはどんな動きなのかを知っといたほうがいいと思うぞ?
734デフォルトの名無しさん:2007/11/05(月) 12:40:52
3.0は極端にいえば2.0にdllを足しただけだぞ
3.0のdllを参照しなければ全く無問題
735デフォルトの名無しさん:2007/11/05(月) 13:40:28
object型のobjという変数を、byte[]にしたいのですが、どうやればいいのでしょうか?
736デフォルトの名無しさん:2007/11/05(月) 13:41:13
(byte[])obj
737デフォルトの名無しさん:2007/11/05(月) 16:05:13
byte配列 構造体 C#
738デフォルトの名無しさん:2007/11/05(月) 16:34:01
エスパーすると、Binary Serialize したいって話か?
739デフォルトの名無しさん:2007/11/05(月) 17:04:54
その程度でエスパーとは片腹痛いぜ
740デフォルトの名無しさん:2007/11/05(月) 17:32:21
だって覚え立ての厨房だもんw
741デフォルトの名無しさん:2007/11/05(月) 17:40:58
2枚の画像を組み合わせて1枚にして表示することって可能ですか?
例えば480x360の画像が2枚あり、1枚目の(240,0,480,360)の範囲と2枚目の(0,0,240,360)の範囲をつなげて、
1枚の480x360で表示するというふうにしたいです
742デフォルトの名無しさん:2007/11/05(月) 17:49:54
ソース矩形を指定して描画するだけ
MSDNでGraphics.DrawImageのオーバーロードを全部読んでみるといいよ
743デフォルトの名無しさん:2007/11/05(月) 17:54:33
即レス感謝です!
さっそく調べてみます!
744デフォルトの名無しさん:2007/11/05(月) 18:42:30
すいません全部読んでみたんですが、よく分かりませんでした
ttp://msdn2.microsoft.com/ja-jp/library/system.drawing.graphics.drawimage(VS.80).aspx
のページでいいんですよね?
2つの範囲(240,0,480,360)(0,0,240,360)をどのように書けば良いのかよく分かりません・・・
745デフォルトの名無しさん:2007/11/05(月) 19:08:36
http://msdn2.microsoft.com/ja-jp/library/yws82c40.aspx
↑これを2回呼ぶだけでは。
746デフォルトの名無しさん:2007/11/05(月) 21:46:56
VC#2005でMDIのプログラムを作ろうと思っています。
非常に初歩的な質問で申し訳ありませんが、以下を
回避する方法を教えてくださいませんでしょうか?

[やりたいこと]
MDI親フォームのボタン1をクリックすると、MDI子フォーム1を開く。
MDI親フォームのボタン2をクリックすると、MDI子フォーム1を閉じる。

[現状]
MDI子フォーム1を閉じることはできていますが、MDI子フォーム1を開く際に
MDI子フォーム1が2重に起動されている(一瞬描画された後、そのフォームの上に
また描画される)のです。
.showタイミングはボタン1クリックの1度だけなのですが、このような現象を回避
するにはどうすればよいのでしょうか?

747デフォルトの名無しさん:2007/11/05(月) 21:55:17
なにか隠してないか?
748デフォルトの名無しさん:2007/11/05(月) 22:09:18
>>744
Bimap bmpNew = new Bitmap(480,360);
using( Graphics g = Graphics.FromBitmapとかなんとか( bmpNew ) )
{
 g.DrawImage( bmp1, rct左, rct右, ほにゃらら.Pixel );
 g.DrawImage( bmp2, rct右, rct左, ほにゃらら.Pixel );
}
749746:2007/11/06(火) 10:07:22
>>747
隠してませんが、もう何がなんだか。
それから、2重に起動しているという表現は正しくありませんでした。
どちらかというと一旦フォームを描画して、一瞬後、再描画するような
動きです。
例えば、フォームボーダースタイルプロパティをnoneに設定して同じように
フォームを開こうとすると、一瞬タイトルバーも表示されたフォームが開き、
その後タイトルバーの無いフォームが表示されるといった流れです。
 .show時にフォームボーダースタイルプロパティが変更されていないか確かめ
ましたが、noneのままでした。
750デフォルトの名無しさん:2007/11/06(火) 14:29:58
C#で巨大なMap構造を扱うときの定石ってなんですか?
例えば、BCLに巨大Map用クラスがあるとか、BerkeleyDB等の組み込みDBの使用するとか

751デフォルトの名無しさん:2007/11/06(火) 15:04:22
BerkeleyDB 使うくらいなら SQL Server Express Edition。

今月末には .NET Framework 3.5 が出るし、
せっかくだから LINQ to SQL を。
752デフォルトの名無しさん:2007/11/06(火) 15:13:54
>>751
一時的な領域としてその巨大Mapを使いたいのでRDBは大げさかなと思ってます。
753デフォルトの名無しさん:2007/11/06(火) 15:19:07
作業用の一時ファイルを作りたいのですが、ユニークなファイル名の生成はどうやるのでしょうか?

Random rnd = new Random(System.Environment.TickCount);
string filename = rnd.Next().ToString() + ".tmp";

とか、やってみたのですが、1万回くらいループさせてみたら、処理が速すぎて
ファイル名がぶつかる場合があるようなのですが・・・
754デフォルトの名無しさん:2007/11/06(火) 15:24:08
System.IO.Path.GetTempFileName
755デフォルトの名無しさん:2007/11/06(火) 15:49:01
int count = 0;
for(...) {
    string filename = (count++) + ".tmp";
}

実にユニーク
756デフォルトの名無しさん:2007/11/06(火) 15:50:47
            ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ <こいつ最高にアホ
 彡、   |∪|  /
/ __  ヽノ /
(___)   /
757デフォルトの名無しさん:2007/11/06(火) 15:51:28
   ∩___∩
   | ノ      ヽ !
  /  ●   ● |   こいつも最高にアホ
  |    ( _●_)  ミ
 彡、   |∪|   / .\
/ __  ヽノ / \ ...\
(___)   /   .│ ..│
            /  ヽ
            l..lUUU
            .U
758デフォルトの名無しさん:2007/11/06(火) 16:01:30
うん
759デフォルトの名無しさん:2007/11/06(火) 17:36:53
>>752
SQL Server Compact Editionが組み込みDBに相当する
760750:2007/11/06(火) 18:19:33
>>759
さんきゅーです!さっそく調べてみます。
761デフォルトの名無しさん:2007/11/06(火) 21:06:54
列挙子がなんとなくよくわからないっていうかぴんとこないっていうか。
762デフォルトの名無しさん:2007/11/06(火) 21:21:56
はい
763デフォルトの名無しさん:2007/11/07(水) 00:32:52
ASP.NETのSessionプロパティから使えるSession State Serverを
自前のサーバーから利用する方法を教えてください。
764デフォルトの名無しさん:2007/11/07(水) 12:28:09
URLからそのURLのキャッシュを取得したいのですが、どうすればいいでしょうか?
できればURL以下のファイルもキャッシュがあればまとめて取得するようにしたいです。
お願いします。
765デフォルトの名無しさん:2007/11/07(水) 13:23:04
>URLからそのURLのキャッシュを取得したい

イミフ
766764:2007/11/07(水) 13:55:23
>>765
例えば、http://www.yahoo.co.jpと入力すると
http://www.yahoo.co.jpのキャッシュ(画像やhtml)を取得するようにしたかったのですが。

参考になりそうなサイトを見つけましたので、そっちを見てみます。
スレ汚し失礼しました。


ttp://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/T_InternetCacheHistroy.htm


767デフォルトの名無しさん:2007/11/07(水) 16:12:38
>>765
764は
「キャッシュ」=「IEのインターネット一時ファイル」
と思ってるんだろ
768デフォルトの名無しさん:2007/11/08(木) 12:01:04
ListViewのDetailモードようなコントロールで別々の小アイコンを二つ並べて表示したりしてますが、
どうやるのですか。オーナードローってヤツですか?参考になるのを教えて
769デフォルトの名無しさん:2007/11/08(木) 13:56:59
アンケートの集計プログラムです
例えば、好きな果物は?という質問に自由に答えてもらう場合
答えをハッシュ配列にしてカウントしたいのですが、
ht["りんご"] には文字列しか入力出来ません
ht["りんご"]++; みたいにやりたいのですが無理でしょうか?
770デフォルトの名無しさん:2007/11/08(木) 14:29:33
>>768
ListView DrawItem でぐぐってみた?

>>768
文字列しか入力できませんてこたないだろ
だけど
ht["りんご"]++; という構文はHashTableじゃコンパイル通らないと思うけど
もしできたとしてもhtそのものに何の影響もないよ?
Dictionary<string, int>使って
dic["りんご"]+=1;
でいいんじゃね

まあIDictionary<string,int>とか継承して
キーの比較を真面目にやった方がいいと思うが("りんご" と "リンゴ"とかをどうするのか等)
771デフォルトの名無しさん:2007/11/08(木) 15:27:30
どうせ練習課題だろうしこんなもんでいいんじゃね
string ans="りんご"; int count; //private Dictionary<string, int> dic;
if(dic.TryGetValue(ans, out count)){dic[ans]=count+1;}else{dic.Add(ans, 1);}
こんなの真面目にやりだしたらキリがないよw
772デフォルトの名無しさん:2007/11/08(木) 16:13:18
Delphiから移行したんだけど、集合型ってないの?
773デフォルトの名無しさん:2007/11/08(木) 16:17:17
>>772
一応、.NET Framework 3.5(今月末正式リリース)に HashSet クラスが追加されるけど、
それまでは HashTable / Dictionary で代用してた。
774デフォルトの名無しさん:2007/11/08(木) 16:34:24
KeyedCollectionでキーに値自体を使うとか
775デフォルトの名無しさん:2007/11/08(木) 17:11:06
>>770-771さん
どうもありがとうございました
776デフォルトの名無しさん:2007/11/08(木) 20:04:54
コントロール等のウィンドウハンドルは作成スレッド以外から
いじったらヤバいという話ですが、

じゃあBitmapとかIconとかはどうなんでしょう?
これらもハンドルありますよね?
別スレッドで作成したBitmap等をImageListに入れるとか、
大丈夫なんでしょうか。
777デフォルトの名無しさん:2007/11/08(木) 22:52:53
やばいというか、ウィンドウ等は作成したスレッド以外からは触れない
ビットマップ等をちゃんと排他処理して触るのなら大丈夫
778デフォルトの名無しさん:2007/11/08(木) 23:38:31
ちょいと教えてください。
.Net3.0や3.5で追加されたクラスを含む
(.Net3.0以上の環境でコンパイルされた)
アプリを.Net2.0環境で動かすことは可能ですか?

.Net3.0以上を使ってる部分を処理しようと落ちる(例外が発生するとか)
けれども.Net2.0以下の部分は普通に動いてくれたりするとうれしいんですが・・
779デフォルトの名無しさん:2007/11/08(木) 23:47:39
3.XのDLLを参照した時点で無理だろ
780デフォルトの名無しさん:2007/11/09(金) 01:58:38
なんでだよ
781デフォルトの名無しさん:2007/11/09(金) 02:53:57
>>778
3.0 依存部分だけ別クラスに分けておけば、それ以外は普通に使える。
782デフォルトの名無しさん:2007/11/09(金) 09:21:27
>>776
ハンドルそのものには参照とかポインタとかと同程度の意味しかないぞ
783デフォルトの名無しさん:2007/11/09(金) 11:56:01
あるアイテムをソートしてから、逐次処理したいんだけど何かいい案ないですか?
理想なのはQueue<T>でSort出来ればいいのだが
784デフォルトの名無しさん:2007/11/09(金) 12:01:08
SortedList<T>に入れていけば
785デフォルトの名無しさん:2007/11/09(金) 13:19:53
はいこれでやってみます
786デフォルトの名無しさん:2007/11/10(土) 00:30:56
>>779, 781
ありがとございます。確認したいけど環境がない
787デフォルトの名無しさん:2007/11/10(土) 02:01:48
NotifyIcon のツールチップ(バルーンじゃなくて Text のほう)が表示される直前に Text の内容を更新したいのですが、NotifyIcon には MouseEnter イベントがありません。
『ツールチップが表示される直前』 を知るにはどうすれば良いですか?
788デフォルトの名無しさん:2007/11/10(土) 02:09:12
MouseMoveじゃだめなの?
789デフォルトの名無しさん:2007/11/10(土) 02:10:57
MouseMove で 『入った』 のを検知ですか?
790デフォルトの名無しさん:2007/11/10(土) 13:55:46
表示される直前に Text の内容を更新したい、ってのはそもそもどういう意味なんだろw
よーわからん。
791デフォルトの名無しさん:2007/11/10(土) 13:58:18
刻一刻と変化するデータを表示したいとか、じゃね?
792デフォルトの名無しさん:2007/11/10(土) 14:49:35
TTN_GETDISPINFOでも飛んで来ないかね
793デフォルトの名無しさん:2007/11/10(土) 17:33:13
自前でメッセージ受けれるの?
794デフォルトの名無しさん:2007/11/10(土) 23:37:15
stream.Writeでデータを投げて
stream.Readでデータを受け取っているのですが
受け取ったデータをHTMLで表示したいと思っております。
そこでaxWebBrowser1.Navigateで表示すればよいかと考えていたのですが
うまくいきません。
どのようにすればうまくいくかアドバイスいただければと思います。
795デフォルトの名無しさん:2007/11/11(日) 00:44:33
naviじゃなくてドキュメントにぶち込め。
796デフォルトの名無しさん:2007/11/11(日) 12:09:46
なんかエロイ
797デフォルトの名無しさん:2007/11/11(日) 13:23:36
妥当な板がなかったものですから、ここに質問させて頂きました。

例えば、バーコードリーダー複数を1つのPCに接続して
バーコードから1回の応答があるたびに、1回プログラムを処理することを
考えてるんですけど、どのようにして実現すべきですか。

インターフェースもどうしたらいいものか。USBハブでいいのかな。
WindowsCEでC#を使います。
OSへの入力を1回ずつ判断するような仕組みが必要と思っています。
WEBのようにTomcatのようなミドルウェアがあるんですかね。

当方、プログラム経験少なく、周りに聞く人もいなく途方にくれてます…
798デフォルトの名無しさん:2007/11/11(日) 16:36:43
C#2005Expressを使っています。
指定した文字コードを使って、指定したコード番号の文字を画面に描画したいと思っています。

例えば、SHIFT_JISにおける33440番の文字(「あ」)を出力するとして……

Graphics g = pictureBox1.CreateGraphics();
int pagenum = 932; //←SHIFT_JISのページコード
int num = 33440; //←ひらがな「あ」の文字コード
string s = ""; //←最終的にこの変数に表示する文字を入れたい
System.Text.Encoding enc = System.Text.Encoding.GetEncoding(pagenum);
//ここに変換処理
g.DrawString(s, new Font("MS UI ゴシック", 12), SystemBrushes.ControlText, new PointF(0, 0));

↑のような感じで書き出したいと思います。
この変換処理が書けずに困っています。

↓のような変換処理を書いてみたのですが、うまく変換されず、
半角2文字とかで表示されてしまいました。

int chrSize = enc.GetMaxByteCount(1);
byte[] b = BitConverter.GetBytes(num);
System.Array.Resize<byte>(ref b,chrSize);
System.Array.Reverse(b);
s = enc.GetString(b);

長々とすみません...どなたか解決策とか案とかありませんか?
799デフォルトの名無しさん:2007/11/11(日) 17:15:19
バイトオーダーが間違ってるだけに見えるけど。
っていうか、それなんで人に聞く前に自分で疑ってみないのかなあ理解不能だよまったく。。
800デフォルトの名無しさん:2007/11/11(日) 17:20:27
何がしたいんだよそのコードは。
numに半角が入ってる場合はどうみなすわけ?

何も気にしなけりゃ、
byte[] b = new byte[]{ (byte)num, )byte)(num >> 8)};
とか。
801デフォルトの名無しさん:2007/11/11(日) 17:22:32
いやんかっこが一個逆向きだた。まあわかるだろ。

802デフォルトの名無しさん:2007/11/11(日) 18:14:06
始めからバイト列として扱ったら駄目なのか?
int codePage = 932;
byte[] b = {0x82, 0xA0};

Encoding enc = Encoding.GetEncoding(codePage);
string s = enc.GetString(b);
803デフォルトの名無しさん:2007/11/11(日) 18:51:02
まあそれでいいなら最初から聞いてこんだろう。
入力された文字コードでとか、そんなことをしたいんだろう、是非は別としても。
804デフォルトの名無しさん:2007/11/11(日) 22:00:36
>>797
1台のpcに複数のバーコードリーダつける意味あるの?
多分キーボードのエミュレートだからかなり無意味なものが出来る。
805デフォルトの名無しさん:2007/11/11(日) 22:33:58
>>804
一応業務的に意味があります。

で、やっぱり無理ってことですか?

806デフォルトの名無しさん:2007/11/11(日) 22:45:19
生産ラインでUSBタイプを複数使ってたの見たことある。
各ポートが違うんじゃないかな。想像だけど。
807デフォルトの名無しさん:2007/11/11(日) 22:54:35
vs2005を使っていると、クラス名や変数名の上にマウスポインタを置くと説明がポップアップします。
自作ライブラリで同じように説明がポップアップするようにするには、どうすればいいのでしょうか?
808デフォルトの名無しさん:2007/11/11(日) 23:08:30
Accessをデータベースとして家計簿を作成しているのですが、tableの列の合計を
うまく出力できません。
private void frm分析_Load(object sender, EventArgs e)
{
OleDbConnection OleConn = new OleDbConnection();
OleDbDataAdapter OleDA;
DataTable Ds = new DataTable();
OleConn.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=C:\\etc\\開発\\test.mdb;";
string expenditure = "select sum(table1) from test";
OleDA = new OleDbDataAdapter(expenditure, OleConn);
OleDA.Fill(Ds);
DataRow dr = Ds.Rows[0];
this.lblテスト.Text = dr["table1"];
}
最後の"this.lblテスト.Text = dr["table1"];"の部分でエラーが出ます。
エラーを見ると、Select sum…の部分があやしいです、ただlblテストにtable1の
合計を出力したいだけなのですが、どなたか上のコードを修正していただけないでしょうか。。
ちなみにAccessのtestテーブルは、table1という名の列に一桁の数字が6つあるだけです
809デフォルトの名無しさん:2007/11/11(日) 23:40:18
>>805
>一応業務的に意味があります。

そんな馬鹿な回答書いて恥ずかしくないのかwww
複数の人間が使うとか、リーダーごとに入力内容を変えるとか…もっと必然性があるというアピールをしないと。

で、
USBキーボードが複数つないであって、複数の人間が同時に入力したらどうなる?
810デフォルトの名無しさん:2007/11/11(日) 23:47:30
わけわからんしね。
後マルチ先にあやまってこい
811デフォルトの名無しさん:2007/11/11(日) 23:51:55
RS232CのUSB判だからポート番号で開くわけだ
812デフォルトの名無しさん:2007/11/12(月) 00:20:18
>>807
プロジェクトのプロパティ→ビルド→XMLドキュメントファイル
///←で必要な項目埋める
コメントがついてないメンバがあるとビルド時に警告がでるようになるが
813デフォルトの名無しさん:2007/11/12(月) 00:25:20
普通にHIDでしょw
232Cって何のことよ。

バーコードリーダーって、少なくとも一般に市販されてるのは
キーボードエミュレーションの奴ばっかりだね。

だとする次の2点が直ちに問題になるね。

(1) ドトネトでキーボード入力のグローバルフックって可能だったっけ?

(2) 可能だとして、しかし(本物のキーボード経由の)普通のキー入力と
  バーコードリーダーからの入力をどうやって区別したらいいのか。
814デフォルトの名無しさん:2007/11/12(月) 15:24:01
メッセージのログを表示する方法ってわかりますか?
815デフォルトの名無しさん:2007/11/12(月) 15:37:35
エスパーの出番だな。

つか何のメッセージだよw
816デフォルトの名無しさん:2007/11/12(月) 16:01:31
>>814
解決しました。スマソ
817デフォルトの名無しさん:2007/11/12(月) 19:19:33
プログレスバーのValueをバーの真ん中にリアルタイムで表示したいのですけど、
さっぱり分かりません。おしえてください。
818デフォルトの名無しさん:2007/11/12(月) 19:20:39
OnPaintをオーバーライドして自前描画
819デフォルトの名無しさん:2007/11/12(月) 19:54:28
たとえばPoint(10,10)に試しに書いてみたいのですが、何も表示されません。どこが間違ってますか?
protected override void OnPaint(PaintEventArgs e) {
 base.OnPaint(e);
 e.Graphics.DrawString(progressBar1.Value.ToString(),new Font("Arial",9),new SolidBrush(Color.Blue),new Point(10,10));
}
820819:2007/11/12(月) 20:08:00
すみません。Formには表示されましたが、プログレスバーの下に値が表示されてしまいます。最上部に表示するにはどうすればよいでしょうか?
821デフォルトの名無しさん:2007/11/12(月) 20:12:31
FormではなくProgressBarを継承したクラスを作り、そのOnPaintをオーバーライドする。
822819:2007/11/12(月) 20:15:17
>>821
頑張って試してみます。
823デフォルトの名無しさん:2007/11/12(月) 22:29:45
あーでも大昔のインストーラでよくあった、バーのForeとBackの色を反転して
文字を描画するのってGDI+だと恐ろしく面倒になりそう。
824デフォルトの名無しさん:2007/11/12(月) 23:40:54
>>813

リーダー→画面→Onchangeイベントでどう?
825デフォルトの名無しさん:2007/11/12(月) 23:48:27
グローバルフックは無理だったような。
デバイスのドライバ書くしかないかも。
826デフォルトの名無しさん:2007/11/12(月) 23:48:54
SDKのあるBCリーダーとかねーかな
827デフォルトの名無しさん:2007/11/12(月) 23:52:12
だから、バーコードリーダーの使い方が間違ってるんだって。
なんで必要なのかさっぱりわからん。

システム屋さんがそんな提案してきたら即効却下。
828デフォルトの名無しさん:2007/11/13(火) 00:07:15
たとえばPoint(10,10)に試しに書いてみたいのですが、何も表示されません。どこが間違ってますか?

←ここに///と入力してみ?
protected override void OnPaint(PaintEventArgs e) {
 base.OnPaint(e);
 e.Graphics.DrawString(progressBar1.Value.ToString(),new Font("Arial",9),new SolidBrush(Color.Blue),new Point(10,10));
}
829デフォルトの名無しさん:2007/11/13(火) 00:31:09
///
830デフォルトの名無しさん:2007/11/13(火) 00:31:27
828は何がいいたいんだ?
831デフォルトの名無しさん:2007/11/13(火) 00:35:30
>>828
エスパー回答 : そのコードを書く場所が違う。Formに書いてないか?
832819:2007/11/13(火) 00:46:27
ProgressBarを継承したコントロールを作って、そのOnPaintで書いたみましたが何も表示されません…。

public partial class ProgressBarEx : ProgressBar {
 public ProgressBarEx() {
  InitializeComponent();
 }
 protected override void OnPaint(PaintEventArgs e) {
  base.OnPaint(e);
  e.Graphics.DrawString("a",new Font("Arial",10),new SolidBrush(Color.Blue),new PointF(10,10));
 }
}
833デフォルトの名無しさん:2007/11/13(火) 00:47:34
ヒント:呼ばれてません
834819:2007/11/13(火) 00:49:01
>>833
く、詳しくお願いします!!どうしたら呼ばれますか?
835デフォルトの名無しさん:2007/11/13(火) 01:07:32
まだいたのか

SetStyle
836819:2007/11/13(火) 02:00:22
SetStyleをUserPaintにすると確かに文字は描かれましたが、
元々のプログレスバー本体が描かれません・・・。
もしかして全部自分で描画するしかないのでしょうか?
837デフォルトの名無しさん:2007/11/13(火) 02:22:48
オーナードローでお勉強をどうぞ
もしくはMyBase呼んだ
後である部分だけ塗りつぶすとか
838デフォルトの名無しさん:2007/11/13(火) 03:16:18
プログレスバーの上にラベル置けば済む話
839デフォルトの名無しさん:2007/11/13(火) 12:51:16
それだとバーの色と文字色がかぶる
840デフォルトの名無しさん:2007/11/13(火) 14:48:45
>>823
あれはバーも含め ExtTextOut だけで書いてるからなー
841819:2007/11/13(火) 14:53:52
諦めました。ありがとうございました。
842デフォルトの名無しさん:2007/11/13(火) 15:33:43
>>827
>システム屋さんがそんな提案してきたら即効却下。

じゃあ「バーコードリーダーが4つ付いた何か」を作るときはどうやんの?
(1台だけなら二三日も悩むよりPC4台入れた方がいいかもしれないけど)
843デフォルトの名無しさん:2007/11/13(火) 15:55:07
>>826
ソケットのバーコードリーダーを業務アプリに組み込むためのSDK
ttp://www.cfcompany.co.jp/product/socket/developers_for_soket_scan_sdk.htm
844こまった:2007/11/13(火) 16:54:49
すみません!初歩の初歩ではずかしいんですが、
式を打ち込めば四則演算を行い、余りまでだしてくれるプログラミングを作りたいのですが、わかりません。
教えてください!!
argvを使うらしぃのですが、さっぱりわかりません!!
845デフォルトの名無しさん:2007/11/13(火) 16:55:54
ここはC#のスレッドです。
あなたの想定している言語は本当にC#ですか?
846デフォルトの名無しさん:2007/11/13(火) 16:56:13
初歩の初歩じゃありません
結構大変です
847デフォルトの名無しさん:2007/11/13(火) 16:58:15
初歩の初歩と思ってる時点で初歩の初歩だな。
たがスレ違いだ多分。
848こまった:2007/11/13(火) 17:07:28
すみませんでした
849デフォルトの名無しさん:2007/11/13(火) 17:08:52
+、-、*、/、%を切り出すだけだけど、( )がネストしてると結構めんどくさそうだな
850デフォルトの名無しさん:2007/11/13(火) 17:09:51
逆ポーランド記法で打ち込んでもらえばいい。
851デフォルトの名無しさん:2007/11/13(火) 17:14:54
入力されたファイルパスが正しいかを
正規表現でチェックするコードを書きたいと思ってるんですが、
この場合のどんな正規表現を書けばいいかわからなくて困っています。

誰か助けてください。
852デフォルトの名無しさん:2007/11/13(火) 17:18:14
そのアプローチは根本的に間違ってる。
正規表現でチェックするのではなく、
実際にアクセスしてみてエラーが出るかどうかを見るべきだ。
853デフォルトの名無しさん:2007/11/13(火) 17:24:59
File.Existsメソッドでファイル有無確認すればいいんじゃね?
854デフォルトの名無しさん:2007/11/13(火) 17:27:06
>>852
そうでしたか。
アドレスやURLをチェックするようなコードがあったので、パス名にもあるのかと思ってました。
とりあえずファイルの存在をチェックする方向で行ってみます。

レス、ありがとうございました。
855デフォルトの名無しさん:2007/11/13(火) 17:27:49
質問です。
固定長フィールドからなるファイルを、それぞれの変数に読み込んでリストビューに表示させたいのですが、
一番早い方法をおしえてください。
ファイルはこのような感じです。
AAABBBCCC\n
AAABBBCCC\n
856デフォルトの名無しさん:2007/11/13(火) 17:28:22
連投ですが、>>853さんもありがとうございます。
ググってみます。
857デフォルトの名無しさん:2007/11/13(火) 18:02:49
そういや、Path.Get〜系のメソッドって
Invalidなパスだと例外出してうぜぇ
858デフォルトの名無しさん:2007/11/13(火) 18:04:08
>>855
ReadLine
859デフォルトの名無しさん:2007/11/13(火) 18:42:27
>>857
ちょっとした引数のミスで容赦なく例外投げるMSの姿勢が大好きだ
860デフォルトの名無しさん:2007/11/13(火) 18:46:22
>>851
正直、君の質問は全然おかしくない。
むしろオカシイのは>>852-853だから気にしない方がいいよ。
まわかってると思うけどさ
861デフォルトの名無しさん:2007/11/13(火) 19:35:48
>>860
アクセス権とかあるんだし正規表現で確認する意味がわからない。
>>852-853が何故おかしいのか教えてくれ。
862デフォルトの名無しさん:2007/11/13(火) 20:19:43
寧ろアドレスやURLを調べるメソッドがないから性器表現が必要なわけだしな
863デフォルトの名無しさん:2007/11/13(火) 20:28:30
「ファイルパスが正しい」とは何をもって正しいとみなすかはっきりさせれ
864デフォルトの名無しさん:2007/11/13(火) 20:47:47
ファイルが存在するか、以外に何かあるとでも?
865デフォルトの名無しさん:2007/11/13(火) 20:49:46
それならFile.Existsでいいだろ
866デフォルトの名無しさん:2007/11/13(火) 20:58:58
もー856で解決してるんだからいいじゃん
867デフォルトの名無しさん:2007/11/13(火) 21:17:53
>>860がおかしいだけの事か
868デフォルトの名無しさん:2007/11/13(火) 22:27:59
>>851はファイル名として使える文字かどうかを、調べたいんじゃないの?

System.IO.Path.GetInvalidFileNameChars()
869デフォルトの名無しさん:2007/11/13(火) 22:28:23
単にパスが不正かどうかとかいろいろあるだろ。
保存先を指定する場合ならどうなんだよ、ファイルはまだ無いぞ。
870デフォルトの名無しさん:2007/11/13(火) 22:51:56
>>868
組み合わせによっては不正になる場合もあるから、難しいな
871デフォルトの名無しさん:2007/11/13(火) 23:40:18
オマイラは広げるの大好きだなww
872807:2007/11/14(水) 02:02:31
>>812
遅れましたが、ありがとうございました。
873デフォルトの名無しさん:2007/11/14(水) 02:29:13
>>871
可能性は示しておいて損はないと思うぞ
いつかトラブったときに役に立つ日がきっと来る





かも(´▽`*)アハハ
874デフォルトの名無しさん:2007/11/14(水) 02:54:05
くだすれOpenGLスレより移動してきました。該当スレの254です。
スレ移動宣言後、ちょっと内容が変わったのですが(オフスクリーンで
レンダリングするようにしたくらい)、症状は同じで、どうしても
レンダリングコンテキストのハンドルを取得できません。
SetPixelFormat()までは上手くいっているようで(trueが返ってくる)、
wglCreateContext()までの間には他の処理は挟んでいません。
調べても該当するようなものはなく、どうしていいか全くわからず
お手上げの状態です orz

コード:
http://www12.axfc.net/uploader/93/so/File_2538.txt.html

一体何が原因なのでしょうか?
875デフォルトの名無しさん:2007/11/14(水) 03:34:51
間違い探しをする気分ではないので
とりあえずTao使えば? とか言ってみる。
876デフォルトの名無しさん:2007/11/14(水) 11:54:29
>>875
TaoはSDL使っててLGPLに引っかかりそうなので、できれば
使いたくないです…
しかし、試しに使ってみたらうまく取得できました。
…なんで? orz
877デフォルトの名無しさん:2007/11/14(水) 13:34:10
質問があります。
ラベルのフォントのBOLDを変えるとき、以下のようにすると思います。

if( boldFlag )
  label1.Font = new Font(label1.Font, FontStyle.Bold);
else
  label1.Font = new Font(label1.Font, FontStyle.Regular);

これを100回繰り返してもGCが勝手にメモリ開放してくれるんでしょうけど、
効率悪いでしょうか?
もっと良い方法があるでしょうか?
878デフォルトの名無しさん:2007/11/14(水) 13:38:28
毎回Fontをnewすれば重いわなw
ローカルから昇格させろよw
879877:2007/11/14(水) 15:45:03
>>878
どうもです。
開始時にnewして代入するよう変更しました。

private Font boldFont;
private Font regularFont;

loadイベント
boldFont = new Font(label1.Font, FontStyle.Bold);
regularFont = new Font(label1.Font, FontStyle.Regular);

任意のイベント
label1.Font = (boldFlag ? boldFont : regularFont);
880デフォルトの名無しさん:2007/11/14(水) 17:07:41
あと念のためフォームのDispose(true)で破棄しといたら
881デフォルトの名無しさん:2007/11/14(水) 18:00:04
それするくらいならセットし直すときに破棄するだろ。
アンビエント関連で破棄できないもしくは判断が面倒なら放置しかないだろ。
882デフォルトの名無しさん:2007/11/14(水) 18:13:55
あーコントロールに直接設定するのか
ちゃんと読んでなかった
それなら放置でいいやすまん
883デフォルトの名無しさん:2007/11/15(木) 13:35:12
const と static readonly との違いがイマイチ分かりません。コンストラクタで
何か入れたい場合には後者で、いわゆる定数値は前者ですか?
884デフォルトの名無しさん:2007/11/15(木) 13:52:37
>>883
const は、コンパイル結果がいわゆる即値として埋め込まれる。
readonly は、単にコンパイラが変更を認めないだけで、
コンパイル結果は普通の変数と変わらない。
(変更を認めてない分、最適化はかかりやすいけど)

用途的に言うと、
そのコンストラクタで何か入れたいときに readonly ってのもやるし、
そもそも参照型の変数は const にできない。
885デフォルトの名無しさん:2007/11/15(木) 14:00:47
コンパイル時定数
実行時定数

後者は実行した時刻を入れたりとか、前者に入らない配列とか
886デフォルトの名無しさん:2007/11/15(木) 15:26:34
>>883
外部アッセンブリから参照される値などは不用意に const にしてしまうと、
参照側に定数として埋め込まれてしまうので注意(定義しているアッセンブリを
差し替えて変更されても、コンパイルし直さないと参照している側に反映されない)。

アッセンブリのバージョンが変わったりしてもずっと変わらない定数なら良いけど。
887デフォルトの名無しさん:2007/11/15(木) 16:10:20
質問です。
C++アプリからActiveScriptSiteなどを使い、スクリプトでマクロを実行する環境を作ってます。
これにC#で作ったクラスライブラリDLLを、AddNamedItemみないな登録を簡単にすることは
できないでしょうか。
出来たらDLLを指定すると、クラスライブラリの内容全部登録みたいな事がしたいのですが。

C++側のインターフェイスを、SWIGなどを使って、マクロからアクセス出来るようにしたいの
ですが、どうせならC#がいいかなと思って調べてます。
それとも、スクリプトサイトにActiveScriptSiteを使うのはやり方がまずいのかと思って、識者
の方の意見をお願いいたします。

888883:2007/11/15(木) 16:12:48
ありがとうございます。

ただ、伺った回答ですと、取り合えずstatic readonlyにせよ、という感じが
してしまいますが、constのメリットってありますか?
889デフォルトの名無しさん:2007/11/15(木) 16:15:24
なんでstringはconstに出来るのよ
890デフォルトの名無しさん:2007/11/15(木) 16:23:04
参照型だけど、コンパイル時に値を決定できるから
891デフォルトの名無しさん:2007/11/15(木) 16:47:25
constできるのは所謂プリミティブ型なデータ型だよね。
だからなんだといわれても困るけど。
892883:2007/11/15(木) 16:53:17
Javaだとstatic finalとかで終わりなんですが、2種類あるんで戸惑ってますw

何となく、所謂定数はconstにして、finalなんだけど動的に読み込むような値は
static readonlyにするとかっこよい感じがして、そうしてるんですが・・・。

これって、C++からの名残なんですかね。
893デフォルトの名無しさん:2007/11/15(木) 17:10:00
C++にはconstしかない
Javaにはreadonly(static final)しかない
894デフォルトの名無しさん:2007/11/15(木) 17:56:48
constのほうがちょっと速いかもしれなかったり
属性に使えたり
列挙体の値に使えたり
switchに使えたり
fixedで固定サイズバッファのサイズに使えたり
895デフォルトの名無しさん:2007/11/16(金) 01:27:27
>893
Javaのstatic finalもコンパイル時に値が埋め込まれるのでC#のstatic readonlyにはならない。

readonlyよりgetのみのプロパティで固定値を返すのが確実でいいな。
readonlyは値がセットされる前に値を取得できてしまうのがいまいち。
896デフォルトの名無しさん:2007/11/16(金) 12:57:29
IEのツールバーを作っています。
ツールバーのボタンをクリックするとページ全体を保存するようにしたいです。

ExecWB(SHDocVw.OLECMDID.OLECMDID_SAVEAS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_PROMPTUSER, ref o, ref o);
でできるらしいことはわかったのですが、どうもうまくいきません。

・ツールバーのボタンを押すと、Internet Explorer_Serverのハンドルを取得する
・HTMLドキュメントを取得する

の点はできています。

・ハンドルやドキュメントからどうやってExecWBを使う(?)か分からない。
・アセンブリの生成に失敗しました -- 参照されたアセンブリ 'AxInterop.SHDocVw' は厳密な名前を持っていません。
というエラーが出る。

の点が分かりません。
どのようにすればいいでしょうか。ご教授願います


897デフォルトの名無しさん:2007/11/16(金) 13:30:48
IEのツールバーってことはBandObjectLibを使ってるのかい?

IWebBrowser2っていうかWebBrowserClassのフィールドがあると思うけど
IWebBrowser2::ExecWB
898896:2007/11/16(金) 13:49:57
>>897
ありがとう。BandObjectLibです。
あと書き忘れたけど.NET Framework 1.1で.NET 2003です。

WebBrowserClassのフィールドってどこにあるんですか?
すみません用語が良く分からなくて・・

899デフォルトの名無しさん:2007/11/16(金) 13:55:00
バージョンが違うかもしれないけど、手元のBandObject.csには

protected WebBrowserClass Explorer;

てのがあるよ
てか "base." って打てばインテリセンスが探してくれるんじゃね?
900896:2007/11/16(金) 14:11:15
>>899

SUGEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!!!!!!!!!1111111111
base.っていうのもしらなかった
おかげさまでできました!!!thx!
901デフォルトの名無しさん:2007/11/16(金) 15:25:04
いやぁそれほどでも…



と手柄を頂いてみる
902デフォルトの名無しさん:2007/11/16(金) 17:06:09
イベントとスレッドの関係ってどういう感じなのでしょうか?
WebBrowserコントロールに便乗しますが、
例えば、FormアプリでForms.TimerとBrowserControlを使っていたとします。

メソッドのtimer_TickとBroserコントロールのDocumentCompleteのコールバックの中で
同じフィールドを操作していたとしたら、
ロックを使っていないマルチスレッドで発生するような問題が発生するのでしょうか?

それとも、その辺りはForms.Timerが勝手に、良きに計らってくれるのでしょうか?
903デフォルトの名無しさん:2007/11/16(金) 17:22:45
ヒント
EventはDelegate
TimerはThread
904デフォルトの名無しさん:2007/11/16(金) 17:45:26
なに言ってんだお前は…
905デフォルトの名無しさん:2007/11/16(金) 17:46:36
Forms.Timer はその Timer が作成されたスレッドでイベントを発行してくる。

BrowserControl が DocumentComplete をどのスレッドで呼び出してしてくるかは
とくに記述されていないと思うけど、Main を STAThread で書いてるなら
BrowserControl を作成したUI スレッドで呼び出してくるのが作法なので
たぶんそうなっているはず。
906902:2007/11/16(金) 18:02:06
どうも有り難うございます。
BrowserControlはSTAなスレッドでしか正常に動きませんでした。
ということで、BrowserControlもFoms.Timerも同じFormの上で動いていますから、
同じUIスレッド上にあるということで、動作は直列にしかならない、
ということなのですね。

どうも有り難うございました。
907デフォルトの名無しさん:2007/11/16(金) 20:51:05
不安ならInvokeRequiredとか見ればいい
908デフォルトの名無しさん:2007/11/17(土) 10:02:28
.Net全然知らないJavaな人間ですが、
C#、VB.NET、ASP.NETの違いについて以下でOK?

WEBアプリケーションはASP.NETしかできない。
C/SはVB.NETかC#だが、VB.NETが一般的。

C#は組み込み系とか業務系ならバッチで使われる? 
C/Sでは開発の容易なVB.NETが使われる。(VB.NETの差別化がわからん。)
Javaに似ているが、ServletのようなHTTPのAPIがなく、WEBはできない。

実行速度はこんな感じ?
C >> C# > C++ > Java > VB.NET
909908:2007/11/17(土) 10:17:54
自己レスです。

申し訳ない。もう少し調べたらわかりました。
ASP.NETは言語でないと。
C#でもVB.NETでもC/S、WEBの両方ができるってことですね。

C/S、WEBでそれぞれの言語をどのように使い分けているのでしょうか?
910デフォルトの名無しさん:2007/11/17(土) 10:23:03
用途による使い分けなんてないよ。
ちょっと見た目の文法が違うだけで、できることに大差はない。

元々VB使ってた人が使うのがVB.NETで
C/C++派の移行を狙ったのがC#。
JavaやってたんならC#の方使えばOK。
911908:2007/11/17(土) 10:30:51
なるほど、実際は差がなく、どっちの技術者が集めやすいかなんですね。
でも、VBでWEBって違和感ありますねー。

それならVB.NETは廃止して、C#に一本化した方がいいのにと思えるけど、
MSがVB技術者を救済した?。。。
912デフォルトの名無しさん:2007/11/17(土) 10:32:29
うん
913デフォルトの名無しさん:2007/11/17(土) 10:40:39
複数の言語の混在開発が容易ってのも .NET Framework の売りだし。

VB屋はVBっぽい文法で、C屋はCっぽい文法で。
新しいことやろうとするたびに新しい文法に染まらなきゃいけない時代は終わったよ
って言うためにもVB.NETは必要。
914デフォルトの名無しさん:2007/11/17(土) 10:55:31
で、実行速度的にはどうなの?
C >> C# > C++ > Java > VB.NET
915デフォルトの名無しさん:2007/11/17(土) 10:55:44
たまにはJ#のことも思いだしてやってください
916デフォルトの名無しさん:2007/11/17(土) 11:01:48
>>914
ゴジラとガメラ、どっちがつおい?
みたいなこといってんじゃねーよハゲ
ゴジラは放射能吐くしガメラは空飛べるんだよ

917デフォルトの名無しさん:2007/11/17(土) 11:03:52
>>916
で、ゴジラVSガメラはどっちが勝つんだ?
918デフォルトの名無しさん:2007/11/17(土) 11:04:08
ガメラはただのカメだろゴジラのほうがつえーよ常考
919デフォルトの名無しさん:2007/11/17(土) 11:08:00
C > C++ >= C# >= VB.NET >= Java
920デフォルトの名無しさん:2007/11/17(土) 11:15:43
ただのカメが空飛ぶかよ
921デフォルトの名無しさん:2007/11/17(土) 11:17:34
FORTRAN > C > C++ > C# = VB.NET = Java
922デフォルトの名無しさん:2007/11/17(土) 11:17:57
.netが犬でも動くようになると良いけどね
monoっていまいち
923デフォルトの名無しさん:2007/11/17(土) 11:24:48
>>908
VB.NETは
VB厨が変化についていけず救済措置にもなれない、その他言語経験者は文法のキモさに使用しない
必要とされていない子

>>918
ガメラなめんな
924デフォルトの名無しさん:2007/11/17(土) 11:34:43
俺の周りではVB.NETばっかだな〜
C#は悲しいくらい少ない。
925デフォルトの名無しさん:2007/11/17(土) 11:51:32
C#の方ができることが多い。
新しいライブラリはほとんどC#サポートのみ。
926デフォルトの名無しさん:2007/11/17(土) 11:54:20
意味がわかりません><
927デフォルトの名無しさん:2007/11/17(土) 12:07:25
つまり釣りって事です
928デフォルトの名無しさん:2007/11/17(土) 12:13:37
3D系プログラミングをサポートされているのはC#だけ
929デフォルトの名無しさん:2007/11/17(土) 12:25:50
3D系はともかく、XNAはそう言えばC#だけだったな
まあXNAに手を出すような奴がVBでってこともまずないだろうが
930デフォルトの名無しさん:2007/11/17(土) 13:18:28
C#よりも、VB.netのほうが何故か好きな俺('A')
931デフォルトの名無しさん:2007/11/17(土) 13:44:11
最初からC系の言語しかやってないとC系の言語の気持ち悪さはわからないんでしょ。

俺も、配列の括弧が()なのと行の継続に_使う(かつその後ろにはコメント書けない)
の以外はVBの方がコード読みやすいと思う。
932デフォルトの名無しさん:2007/11/17(土) 14:01:06
まあでもほんとに気持ち悪い部分は基本的になくなってるしな
933デフォルトの名無しさん:2007/11/17(土) 14:09:36
>>932
VBコンパイラなくしてどうすんだよ・・・
934デフォルトの名無しさん:2007/11/17(土) 14:14:11
「VBらしく」書かなければいい
C#と同じように書いたVB.NETが一番見やすい
935デフォルトの名無しさん:2007/11/17(土) 14:52:39
F#が変態っぽくて好きだな
936デフォルトの名無しさん:2007/11/17(土) 15:04:43
Perl.NETきぼんぬ
937デフォルトの名無しさん:2007/11/17(土) 16:45:06
C#4.0でVBの構文もサポートすれば最強だなw
938デフォルトの名無しさん:2007/11/17(土) 17:08:45
ソースの途中で言語を変えられるようにすればおk
939デフォルトの名無しさん:2007/11/17(土) 17:54:12
Dim n as Int32;
Dim array() as Int32 = new int[]{ 0, 1, 2, 3, 4, 5, 6 };
foreach( i as Int32 in array )
 n+= i <3 ? i : i*2;
next;
940デフォルトの名無しさん:2007/11/17(土) 18:18:32
色々諦めて、C++/CLIみたいに
#pragma VB

#pragma CS
941デフォルトの名無しさん:2007/11/17(土) 18:55:00
C#.NETよりVB.NET技術者のほうが月5〜20万安く雇えるな
技術や言語自体がどうこうっていうよりcって付いてると高くなるので
周りにc#.NETやるやつが増えない(というか雇えない)
942デフォルトの名無しさん:2007/11/17(土) 18:55:21
VB意向組が如何に多いかわかった。
ある程度予測は付いていたが、実務でC#は厳しそうだな・・・
943デフォルトの名無しさん:2007/11/17(土) 19:10:48
実務では、ってドトネトってむしろ実務以外であまり使われてないでしょw
ドトネト製のフリーソフトってどれだけあるよ
944デフォルトの名無しさん:2007/11/17(土) 19:21:58
>>942
安くて設計からできるC#技術者は少ないからね
言語機能で見れば問題無いんだけど
実務やるならVBと同じ予算やりくりして引っ張ってこないといけないので
C#やったことないけどやってみたいって人だけ集めてやるなら可能
経験者一人くらいは赤字覚悟で入れればなんとか・・・
945デフォルトの名無しさん:2007/11/17(土) 19:27:11
意外にあるよ>ドトネト製のフリーソフト
946デフォルトの名無しさん:2007/11/17(土) 20:06:04
君たちには海外が見えてないんだね。
947デフォルトの名無しさん:2007/11/17(土) 20:10:58
俺はドトネト(笑)製のオプソソフト作ってるよ。
948デフォルトの名無しさん:2007/11/17(土) 20:11:18
つーか、VBとかCとか言語で単価って変わるの?
経験年数が主じゃない?
949デフォルトの名無しさん:2007/11/17(土) 21:02:32
プログラミング能力は3年超えたら、大した進化しないよ。
それにプラスの能力がないとスキルとして評価されないよ。
950デフォルトの名無しさん:2007/11/17(土) 21:10:49
>>938
Visual Studio solution is enable what composite C#, C++ and VB.
951デフォルトの名無しさん:2007/11/17(土) 21:15:46
>>949
業務知識(笑)
952デフォルトの名無しさん:2007/11/17(土) 21:17:21
>>914
If you think same doing for anathor language.
Does compare language speed, then C > C++ >> C# >VB.
Because C and C++ are native, but C# and VB are not.
953デフォルトの名無しさん:2007/11/17(土) 21:18:40
>>948
単純に変わるよ
でも以前より差は無くなってる

上のほうでは1〜3割違うけど曾孫請けくらいまで降りてくるとなぜか差は数万になってるw
交渉時もVBだと「VBには金を出せない」って平気で言われる
言語機能に不足は無いって言っても無駄、顧客が持ってるイメージの問題
単にCだと高くつくってイメージもあるけど実際にそう
言語なんでもいいよ〜ってところもあるけどそういうところはVB価格で出してくるね
954デフォルトの名無しさん:2007/11/17(土) 21:22:00
>>953
>交渉時もVBだと「VBには金を出せない」って平気で言われる
だって出してくんの「VBやってるからVB.NETできます」君だろ?
955デフォルトの名無しさん:2007/11/17(土) 21:24:57
>>952
無理しなくていいよ
956デフォルトの名無しさん:2007/11/17(土) 21:49:50
俺は最近VBAもあんまり弄ってないから戸惑うよ
957デフォルトの名無しさん:2007/11/17(土) 21:51:48
言語速度って何だw
アナザーってなんだw
958デフォルトの名無しさん:2007/11/17(土) 21:53:53
これは恥ずかしい
959デフォルトの名無しさん:2007/11/17(土) 22:00:42
rubyに浮気しようと思うんだ
960デフォルトの名無しさん:2007/11/17(土) 22:03:56
いいんじゃないかな
俺も一時Rubyしてたけど結局C#メインに戻った
961デフォルトの名無しさん:2007/11/17(土) 22:16:00
言語は嫁や恋人じゃないからそれは浮気じゃないよ
962デフォルトの名無しさん:2007/11/17(土) 22:26:44
rubyとC#はどっちがいいんだ
963デフォルトの名無しさん:2007/11/17(土) 22:27:47
C#
964デフォルトの名無しさん:2007/11/17(土) 22:30:49
>>961
言語たんは嫁。
965デフォルトの名無しさん:2007/11/17(土) 22:31:36
URL忘れてた

>>961
言語たんは嫁。

http://pggirls.asukaze.net/
966デフォルトの名無しさん:2007/11/17(土) 23:12:30
Rubyの作者曰く「C#の文法はRubyの足元にも及ばない」
967デフォルトの名無しさん:2007/11/17(土) 23:12:37
VS2005でメソッドのオーバーライドって
protected override でインテリセンスから選択する以外に方法あります?
メニューから選択できるとか?
968デフォルトの名無しさん:2007/11/17(土) 23:13:13
つーか、Rubyとは比較対象にはならんでしょ
969デフォルトの名無しさん:2007/11/17(土) 23:13:17
やっぱコンパイルできた方がいいと思うんだけどなあ
970デフォルトの名無しさん:2007/11/17(土) 23:16:09
>>967
無いんじゃね
どう考えてもインテリセンス使ったほうが早い
protectedは書かなくてもoverride[スペース]だけでおk
971デフォルトの名無しさん:2007/11/17(土) 23:21:04
>>967
ないですよね。ありがとう。
972デフォルトの名無しさん:2007/11/17(土) 23:25:44
C#も現実主義とか言ってる割には趣味性の高い言語だと思うけど
973デフォルトの名無しさん:2007/11/17(土) 23:29:34
うん?
974デフォルトの名無しさん:2007/11/17(土) 23:29:54
ヘジたんの夢が詰まってるからな
975デフォルトの名無しさん:2007/11/18(日) 00:04:30
現実主義って誰が言ったの?
つーか現実主義って意味わかんね
976デフォルトの名無しさん:2007/11/18(日) 00:07:22
ヘジたんが一番好き
977デフォルトの名無しさん:2007/11/18(日) 00:11:01
業務知識じゃなく、設計能力やシステムに対する知識(データベースやWebサイト)に
フレームワーク等の製品知識が必要だと言いたかったんだが。
978デフォルトの名無しさん:2007/11/18(日) 02:21:09
外注使えるだけ羨ましいな。社内のちょっとかじって知ったかのオッサン相手にしてると疲れるよ・・
無知で頑固で無駄が大好きだから
979デフォルトの名無しさん:2007/11/18(日) 04:33:20
同意だな
いつまでも古臭い書き方強要したりな

言語に合わせた書き方ってものがあるだろうに・・・
JAVAやドトネトでStringクラスに大量の文字列くっつけるのに

String str = "";
str = str + "";




str = str + "";

hoge.execute(str);

ねーよwwwwww
980デフォルトの名無しさん:2007/11/18(日) 04:38:13
>>979
ごめん・・・
それ見やすくていいじゃんとか思っちゃうんだけど
もしかして俺一緒に働いてる?
981デフォルトの名無しさん:2007/11/18(日) 04:40:15
>>979
かわいそうなオマエにはCSEオヌヌメ
>>979みたいな出力してくれる
982デフォルトの名無しさん:2007/11/18(日) 04:43:40
いや
そうじゃなくってさ
見やすさはいいんだけどさ
パフォーマンス考えたらせめてStringBulderとかつかうだろ?

983デフォルトの名無しさん:2007/11/18(日) 04:47:26
どーせSQLだろ?パフォーマンス云々いう前に外部化しろよ・・・
984デフォルトの名無しさん:2007/11/18(日) 04:49:16
>>983
それするような会社じゃないのよw
ビューやPL/SQLとか一個もないし

でSQLの文字列結合はこれで4000行とかあったりするし
毎回これを実行して文句ひとつ言わないPGとか頑張ってるなぁとかおもうんだぜw
985デフォルトの名無しさん:2007/11/18(日) 04:54:07
StringBuilderは存在知らない技術者も多いね
Javaから来た人はStringBufferのかわりに見つけれるみたいだけど
VBやC(C++じゃなくて)から来た人は軒並み+=してくるな
ソースレビューとかレビューイとしては正直やりたく無いんだけど
何回かやっとかないといけない現実がつらい
986デフォルトの名無しさん:2007/11/18(日) 04:56:36
985追記
+=すんのはCの人だけだった
VBの人はstr=str+だった
秀丸で\nを\nstr=str+に置換していい笑顔されたので
なんとなく笑顔で返してしまった俺はかなり弱気
987デフォルトの名無しさん:2007/11/18(日) 05:01:25
最近のJavaにはStringBuilderっていう同名のクラスもあるけどね
988デフォルトの名無しさん:2007/11/18(日) 05:03:40
>>985
それもそんな数が多くない所や同時アクセス数が少なけりゃ否定はしないんだけどね
WEBアプリで同時にドカンとこられたら結局メモリの無駄遣いでガベコレ動いてパフォーマンスが落ちることを結構気にしちゃったりするんだよ
それにそういう事気にせずにやる会社は+αでDB鯖のデータ数が増えまくって設計が悪いと極端に性能が落ちてくるからあとでクレームや相談が来ることも結構あったりするしさ

>ソースレビューとかレビューイとしては正直やりたく無いんだけど
>何回かやっとかないといけない現実がつらい
ちょっとkwsk
989デフォルトの名無しさん:2007/11/18(日) 05:03:38
>>987
おおう、知らなかった
もうJAVAには戻るなと言う神のお告げと理解しますw
990デフォルトの名無しさん:2007/11/18(日) 05:07:02
正直、何年前の話してんだ?って感じなんだが・・・
991デフォルトの名無しさん:2007/11/18(日) 05:09:40
>>990
居る所には居るってこったろ?たぶん
992デフォルトの名無しさん:2007/11/18(日) 05:12:28
Javaの新規システムは先細りだろう。
正直、大手SIが金稼ぎの為に利用しただけになってるからね。
コスト意識が高い企業は.NETを選択することが増えてきているし、
失敗プロジェクトの多数がJava(言語が問題ではない開発者が問題)という事実も
知られてきている。
993デフォルトの名無しさん:2007/11/18(日) 05:13:07
>>988
開発チームリーダーとかやってるんだけど
開発時ってプログラマーを集めるが基本的に全員初対面
プログラマー同士は同じ会社だったりするけど
みんなの能力がわからないのでプログラム書いたあと
書いた人がプログラム多少知ってる人にソースコードレビュー
わかってる人と判断したら10分でレビュー終了
やばい人と判断したらソースのまずいところを指摘して
改善策も提示(だいたい自分で調べられない)
超疲れる

効果的でもあるが、ソースレビュー記録票が無いと納品拒否されるのが理由
バグが出たときはソースレビューした人(俺)がボロカスに言われる
ちなみに以降のソースレビュー記録票は捏造します
捏造係はプログラマーのうち使えない人をあてます

こんなんでおk?
もっと細かい内容のことだとしたら俺も空気読めてないんだと思う
994デフォルトの名無しさん:2007/11/18(日) 05:14:15
数値チェック関数もデフォで入ってなかったような言語なんか使うかよ
995デフォルトの名無しさん:2007/11/18(日) 05:16:25
>>992->>993
あれ・・・やっぱりタイムスリップしてる?・・・
996デフォルトの名無しさん:2007/11/18(日) 05:19:23
>>993
うわぁ・・・あるあるwww
プロジェクト入れられた時に各自の一本目はソースレビュー必須で先行してやってた人のベース見た時に
うぉっ!!
て思ったこともあったよ

ソースレビューの記録はやった事無いが、テスト結果の記録は・・・(´▽`*)

こんなもんでおkw
997デフォルトの名無しさん:2007/11/18(日) 05:48:48
次スレを立ててつかあさい
998デフォルトの名無しさん:2007/11/18(日) 07:31:10

>>993
そのまえに、.NETってだけで納品を断られることのほうが多い
999デフォルトの名無しさん:2007/11/18(日) 07:32:37
a
1000デフォルトの名無しさん:2007/11/18(日) 07:33:23
1000なら今日死ぬ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。