C#, C♯, C#相談室 Part60

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part59
http://pc12.2ch.net/test/read.cgi/tech/1274019232/

Visual C# 2010 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>1-5くらい
2デフォルトの名無しさん:2010/06/27(日) 03:35:51
すみません。
テキストボックスの入力に対して、例えば、半角英数字だけしか入力できないようにするとか、
そう言う事ってできないのでしょうか?
一応IMEモードプロパティを設定すれば、最初のモードを設定できるのは知ってますが、
ユーザーにより勝手に変えられないようにするとかってできないのでしょうか?
知ってる方いらしましたらお願いします。
それと、テキストボックスって高さは変えられないのでしょうか?
これもお願いします。
3デフォルトの名無しさん:2010/06/27(日) 06:57:57
わかりません
他の人に聞いてください
4デフォルトの名無しさん:2010/06/27(日) 08:10:28
>>2
keypressイベントで英数半角以外ははじけばいい
5デフォルトの名無しさん:2010/06/27(日) 09:47:50
>>2
TextBoxに数字しか入力できないようにする: .NET Tips: C#, VB.NET, Visual Studio
ttp://dobon.net/vb/dotnet/control/numerictextbox.html
6デフォルトの名無しさん:2010/06/27(日) 11:14:38
fold機能とかいつの間にか勝手に展開されるんだけど
使ってる奴どうしてんの?
7デフォルトの名無しさん:2010/06/27(日) 11:17:55
Ctrl+M, Ctrl+Oとか
8デフォルトの名無しさん:2010/06/27(日) 13:04:53
畳みたいだけなら、region使わずに、
普通に{ 〜 }とコメントで十分だと思うんだが、どうかな?
9デフォルトの名無しさん:2010/06/27(日) 13:12:42
regionはIDEが生成するコードを人間にとってわかりやすくするためのものだからな
10デフォルトの名無しさん:2010/06/27(日) 13:55:36
キリッ
11デフォルトの名無しさん:2010/06/27(日) 16:23:24
やだねぇヲヤヂは。
自分が気に入らなけりゃ理屈も無しに「ためのもの」とか勝手に決めつけ。
ソースを出せ。ソースを。
12デフォルトの名無しさん:2010/06/27(日) 16:27:02
オヤジかどうかは別として
>>8の方法だとソースの検索かけるにしてもちょっと使いにくいかなあ
こまめにたたみたい場合はregionはかなりいいよ
13デフォルトの名無しさん:2010/06/27(日) 17:42:04
2005以降はpartialクラスが使えるようになったから、
その時点で少なくとも>>9はありえない。(だから既に#regionの意義は無くなったのだ、
というのなら一応筋は通るけど)

まあこういうのは「プリンの味」みたいなものだから自分で試してない奴を
言葉で納得させるのは難しいものはある。

俺はいろいろregionの使い方を試してみたほうだと思うけど、
その上でメソッド内のregionだけは絶対にありえないと思うわw
まあそもそもそんな誘惑に駆られるようなメソッドが存在すること自体が間違いなんだけど。
14デフォルトの名無しさん:2010/06/27(日) 17:47:37
ですね
15デフォルトの名無しさん:2010/06/27(日) 18:01:44
まあね。(ちょっと大きめのブロックだと飛ばして追うのに便利なんで悪用してたり…)

ところで、もうしませんと言いつつ、未練たらしく改造していたんで投稿。

Wmiユーティリティ。(ちょっとメンバ名とか変えちゃった)
http://ideone.com/UxSsW

DiskDrive と LogicalDisk の関連を列挙。(そのPNPDeviceIDを一覧)
http://ideone.com/dXpzv

NetworkAdapterと NetworkAdapterConfiguration の関連を列挙。(そのIPAddressを一覧)
http://ideone.com/srCTX
16デフォルトの名無しさん:2010/06/27(日) 18:24:36
>>13
regionはいろいろ試した結果、regionを畳んで選択して削除が一番便利だった。
バグってるいらないコードが一気に消せて便利だよ。

regionってうじゃうじゃ出てくるとバグってるソースを書き直していらないソースを削ってると
endregionと対応してないってエラーになるから修正するときに邪魔で仕方がない。
バグってるようなソースに限って恐ろしい勢いでregionがネストしてるんだよなぁ。
17デフォルトの名無しさん:2010/06/27(日) 21:38:34
>>16
regionのネストに捕まると腹が立つよなw
18デフォルトの名無しさん:2010/06/27(日) 22:12:58
モバイル関係の開発多いんだけどメーカのSDKサンプルとかregion地獄だぜ
書いてる奴等もわからねーだろと思うんだけど.netでハンガリアン全開なんでなんともかんとも
19デフォルトの名無しさん:2010/06/27(日) 22:54:04
20デフォルトの名無しさん:2010/06/27(日) 23:13:18
システムハンガリアンを正しく使われたとしても便利じゃないよ。
揚げ足取りみたいですまんが、アプリケーションハンガリアンを否定する人にはあまり出会ったことがない。
いなくはないけど。
21デフォルトの名無しさん:2010/06/28(月) 00:02:16
いなくはないな。
22デフォルトの名無しさん:2010/06/28(月) 00:13:48
変数名でとかだと、意味を間違えて付けちゃった時にノーチェックで見逃して、
間違っているのに正しく見えるとかいう状況になるから頼りたくないという人は
いた。
一理ある気もするし、まあ強制したりされたりしなけりゃいいんじゃないかな。
23デフォルトの名無しさん:2010/06/28(月) 03:25:33
ポインタ変数にはpを付けたいけどだめなんお?
24デフォルトの名無しさん:2010/06/28(月) 03:44:25
変数の型を探すのが遠いコードを書くのが悪い
25デフォルトの名無しさん:2010/06/28(月) 06:24:06
悪いなw
26デフォルトの名無しさん:2010/06/28(月) 08:18:15
>>23
int に i、double に x とかと同じノリなら、付けるけども。
あんまり深い意味ないから p。

まあ、ポインターって、「x のポインター」以上の意味を持たない変数になること多いし、
「深い意味なく p」にならざる負えないこと多い気もする。
27デフォルトの名無しさん:2010/06/28(月) 09:12:27
俺はそのときの気分でつけてる。ルールなんてないw
28デフォルトの名無しさん:2010/06/28(月) 11:07:14
C#初心者で、質問なんですが〜。

class A がありまして、
AはSetStat(string s) というメソッドを持って居るとして
このAのインスタンスを複数作るメソッドを別に持ちたいのですが、
どうしたらいいのか迷っています。
ちなみにAのインスタンスはins_a[] としてグローバルに宣言されている形にしたいです。

まとめると

class A
{
string str;

SetStat(string s)
{
str = s;
}

}

class B
{
A[] ins_a;

private A[] MakeSomeA(string s)

}
29デフォルトの名無しさん:2010/06/28(月) 11:10:02
class A
{
string str;

public A(string s)
{
SetStat(s);
}

SetStat(string s)
{
str = s;
}

}

class B
{
A[] ins_a;

private A[] MakeSomeA(string s)
{
for(int i =0;i<100;i++)
{
ins_a[i] = new A(s);
}
return ins_a;
}
}

みたいな^^;わかりにくくてすみません。およろしくお願いします。
あと連投すみませんでした、ミスです><;
30デフォルトの名無しさん:2010/06/28(月) 11:23:12
コンストラクタ
31デフォルトの名無しさん:2010/06/28(月) 11:39:27
using System;
namespace ConsoleApplication1
{
class Program {
static void Main(string[] args) {
B b = new B(10);
A[] a = b.MakeSomeA("TEST");
foreach(A it in a)
Console.WriteLine(it.str);
}
}
class A {
public string str;
public A(string s) {
str = s;
}
}
class B {
public A[] ins_a;
public int num;
public B(int x) {
num = x;
ins_a = new A[num];
}
public A[] MakeSomeA(string s) {
for (int i = 0; i < num; i++)
ins_a[i] = new A(s);
return ins_a;
}
}
}
32デフォルトの名無しさん:2010/06/28(月) 11:50:41
>>30さん、>>31さん
同一人物でしょうか?

>>31さんおかげ様で解決しました!
なるほどコンストラクタでインスタンスの必要個数を設定するんですね!
わかりやすい例をありがとうございました〜
33デフォルトの名無しさん:2010/06/28(月) 14:00:36
>>26
単品のpじゃなくて接頭語としてのpでしょ
int Hoge;にたいしてのint* pHoge;

>>24
変数の型がすぐわかる位置で宣言されてようがIDEの機能でポップアップしてすぐにわかるようになってようが
pがあることによって読み易くなるならそれに越したことないんじゃないか?
int型変数にintHogeと書くことと別次元だと思うが
34デフォルトの名無しさん:2010/06/28(月) 14:57:49
>>33
うん。そうだよ。
35デフォルトの名無しさん:2010/06/28(月) 15:02:24
pHogeと書いたからといってint*が保証されているわけではないし。
予断が入るだけで決して読みやすくはないと個人的には思っている。
趣味の問題だな。
36デフォルトの名無しさん:2010/06/28(月) 15:53:44
ちょっと質問というか疑問
ヘルプとかに「コントロールは所有するスレッドでのみ実行出来る」とあるけど、
これってバックグランドで予めコントロール生成して置けないってこと?
37デフォルトの名無しさん:2010/06/28(月) 16:05:01
コントロール生成自体はコストの掛かる処理じゃないから
バックグラウンドであらかじめとか考える必要はない、普通は
ちなみにこの場合new自体はコントロールの生成とは言わない
38デフォルトの名無しさん:2010/06/28(月) 16:11:37
strHogeというint型に出会った恐怖は今でも忘れられない。
39デフォルトの名無しさん:2010/06/28(月) 16:11:52
40デフォルトの名無しさん:2010/06/28(月) 16:17:01
>>37
最後の行が良く解らんのだけども
newするのはどのスレッドでも良くて、ルートFormに所有させる時だけはUIスレッドでなきゃダメとか、そう言う意味?
41デフォルトの名無しさん:2010/06/28(月) 16:27:58
ハンドルが作られたときがWindowsから見たコントロール生成のタイミング。
ハンドルが作られたときのスレッドがそのコントロールが属するスレッド。
newやだけでもControls.Addやだけではハンドルは作られない。

でもハンドルがいつ作られるのかなんて制御は極めて困難(あるいは不可能)なので初めからUIスレッドで扱え。
42デフォルトの名無しさん:2010/06/28(月) 16:41:02
>>41
つまりハンドルが何時作られるかは誰も知らない知られちゃいけないと
逆に言うと、ハンドルを持たないListViewItemみたいなのは別スレッドで作っておk
そう言う話?
43デフォルトの名無しさん:2010/06/28(月) 17:06:14
メインスレッドで作ったら問題があるようなのはVirtualModeとか使えって話
44デフォルトの名無しさん:2010/06/28(月) 19:49:32
>>42
確かにそれは正しい。実際、Controlのメンバであっても、ウィンドウハンドルの絡まないもの
(Tagとか)は別スレッドからアクセスしても問題ない。
でもその区別は難しいし面倒なので、UI関係は全部メインスレッドでやる、と決めといた方がいい。
45デフォルトの名無しさん:2010/06/28(月) 22:21:51
>前スレ456
ttp://pc12.2ch.net/test/read.cgi/tech/1274019232/456

ttp://techbank.jp/Community/blogs/mymio/archive/2010/06/18/27234.aspx
ここまで完全に他人のせいにしてるのを見るといっそ清々しいぜw
46デフォルトの名無しさん:2010/06/28(月) 22:34:36
>>33
ポインター型の変数が、「xx のポインター」以上の意味を持たない場合が多いなら、
ponterOfXx、略して pxx というのはあながち悪い命名じゃないかもしれない。

システムハンガリアン的に、型名プレフィックスなんじゃなくて、
ちゃんと意味考えようとしたけど意味ねーや的意味での p。
47デフォルトの名無しさん:2010/06/28(月) 22:53:55
C++/CLIでこうやってた
ポインタ…pXX
マネージオブジェクトのハンドル…gcXX
48デフォルトの名無しさん:2010/06/28(月) 23:04:16
>>45
要は、都合のいいコメント以外は削除するから投稿すんな!ってことだよな。
でも「著名人ならOK」とかわざわざ書いてあるところはさすがw。
49デフォルトの名無しさん:2010/06/28(月) 23:17:17
周りの人も友達ならこっそりメールで間違いを教えてあげればよかったのに
あの記事を放置するのは公開レイプだろ
50デフォルトの名無しさん:2010/06/28(月) 23:50:07
ディスカッションは○、論争は×、私が客観的なフィーリングでジャッジします!
って結局何が言いたいのやら。
51デフォルトの名無しさん:2010/06/28(月) 23:57:38
俺が神

それはともかくそろそろ板違いだ
52デフォルトの名無しさん:2010/06/29(火) 00:08:59
へえ
53デフォルトの名無しさん:2010/06/29(火) 00:13:23
class nor {
static public nor StaticFuctory() { return new nor(); }
}
class gen<T> where T : new() {
static public T StaticFuctory() { return new T(); }
}
class gen2<T, U, V> where T : new() where U : gen<T> where V : nor {
public gen2() {
nor n = V.StaticFactory();
var t = U.StaticFuctory();
}
}

とすると、E ならびに U の StaticFuctory() 呼び出しは
「'xx' は '型パラメーター' ですが、指定されたコンテキストでは有効ではありません」
となってしまいます。
ファクトリオブジェクトにしてしまえば解決するとは思いますが、型パラメータで指定
したクラスのstaticメソッドは呼び出せないという理解で正しいでしょうか?
54デフォルトの名無しさん:2010/06/29(火) 00:20:41
正しいです
55デフォルトの名無しさん:2010/06/29(火) 00:41:52
残念です・・・ありがとうございました。

class nor_ih : nor {
static new public nor StaticFuctory() { return new nor_ih(); }
}
class gen_ih : gen<nor> {
static new public nor StaticFuctory() { return new nor_ih(); }
}
とか上書きして、
var n = nor.StaticFuctory();
var n_ih = nor_ih.StaticFuctory();
var g = gen<nor>.StaticFuctory();
var g_ih = gen_ih.StaticFuctory();
と呼び出したかった・・・
でも継承クラスを指定しても基底クラスのstaticメソッドが呼ばれますよね。
class nor {
static public nor StaticFuctory0() { return new nor(); }
static public nor StaticFuctory() { return new nor(); }
}
として StaticFuctory0 は上書きしないで、
var n_ih0 = nor_ih.StaticFuctory0();
とすると動きますから。
なんでダメなんだろう?素朴な疑問。
56デフォルトの名無しさん:2010/06/29(火) 00:44:53
あ、ちなみに動かしているのは 4.0 です。書き忘れていた。
57デフォルトの名無しさん:2010/06/29(火) 01:20:09
>>55
C++のtemplateはあれ、マクロみたいなもん(コンパイル時に全部展開される)だからできるだけ。
それやると、実行ファイルサイズが肥大化するのよね。

C#のジェネリクスは、実行時にメソッド呼び出し解決するから、static なものは無理。
58デフォルトの名無しさん:2010/06/29(火) 01:43:40
>>57
4.0 ですよ。
59デフォルトの名無しさん:2010/06/29(火) 01:53:25
そう何度もアピールされても困る
60デフォルトの名無しさん:2010/06/29(火) 06:13:10
>>45
これは・・・ ここまでのキチガイは久しぶりに見た。
61デフォルトの名無しさん:2010/06/29(火) 08:40:58
>>58
4.0 の dynamic、別に何でもかんでも動的になったわけじゃないよ。
62デフォルトの名無しさん:2010/06/29(火) 14:27:03
>>60
MVP認定するとこに連絡してみたらどうなるんだろね
63デフォルトの名無しさん:2010/06/29(火) 15:50:12
>>53
DynamicMetaObjectを実装すれば
((dynamic)new TypeWrapper(typeof(T))).StaticFactory()
のようなことは可能
実行時のコード生成のルールを定義しないといけないから面倒だけど
静的呼び出しとそれほど変わらない速度が出る
DynamicObjectを継承すれば簡単だけど
このケースでは毎回リフレクションを使うことになるから遅い
64デフォルトの名無しさん:2010/06/29(火) 17:31:15
C#初心者です。
ニコニコ動画のように取得した時間に対して、
動画を再生するにはどのようにすればよいでしょうか?m(__)m
65デフォルトの名無しさん:2010/06/29(火) 17:35:24
質問の仕方を勉強してから来てください
状況がまったく伝わってきません
66デフォルトの名無しさん:2010/06/29(火) 17:39:25
日本語の初心者か…。
要は動画をシークしたいって話じゃないのか…?
67デフォルトの名無しさん:2010/06/29(火) 17:41:12
英語でおk
68デフォルトの名無しさん:2010/06/29(火) 17:58:01
>>64
MediaPlayer使うなら
axWindowsMediaPlayer1.Ctlcontrols.currentPosition
69デフォルトの名無しさん:2010/06/29(火) 17:59:45
ニコニコとツベは(他のエロサイトとかは知らん)擬似スとリーミングだからレンジ指定して
ダウンロードすればいいんだろうけどシークバーの単位は時間だからなあ

頭から順次再生だとそれほど問題にはならないだろうけど
シークバーを動かして途中から再生の場合は指定した時間が

動画データのどの辺から始まるのかという情報を持ってないと厳しいかもね
あれってどうやってるんだろう
70デフォルトの名無しさん:2010/06/29(火) 18:09:39
誤爆乙
71デフォルトの名無しさん:2010/06/29(火) 18:10:05
>>68
言葉足らずですみません。
ありがとうございます!!
72デフォルトの名無しさん:2010/06/29(火) 18:57:20
シークバー「30/100の位置で再生したいです。よろしくお願いします。」
サーバ「近くにキーフレームないから0から再生するしかないわ。」
シークバー「80/100の位置で再生したいです。よろしくお願いします。」
サーバ「0から(略」
こうですか。わかりません。
7369:2010/06/29(火) 19:03:18
>>72
>>68があるみたいなので勝手にやってくれそうだけどなw
74デフォルトの名無しさん:2010/06/29(火) 19:24:23
そもそもそういうキーフレームを揃えてるのがFLVじゃまいのか?
75デフォルトの名無しさん:2010/06/29(火) 19:26:16
>>74
そうなの?
こういうアプリは書いたことないのでわからん
76デフォルトの名無しさん:2010/06/29(火) 19:30:41
>>64
Microsoft.DirectX.AudioVideoPlaybackで字幕編集ソフトを作ってみたけど
そういう目的ならこれが一番楽かも
もちろんスクロールとかも自由自在
コーデックも勝手に読み込んでくれるし
単位はフレームで管理してるけど1秒あたり何フレームか計算すれば時間も分かる
計算式はソース見ないと忘れたので書かないから自分で調べてw
77デフォルトの名無しさん:2010/06/29(火) 19:41:47
78デフォルトの名無しさん:2010/06/29(火) 19:51:26
遅ながら>>1おつ!

そして質問なのですが、現在HTTPのやりとりをするソフトをつくろうと思い、とりあえず普通のHPサーバからデータを受信しようと下記のコードを書きました。
しかしうまく動いてくれません。お力添えをお願いいたします。

System.Net.Sockets.TcpClient tcp = new System.Net.Sockets.TcpClient("192.168.24.86",80);

textBox1.Text = tcp.Connected.ToString() + "\n\n";

Byte[] data = ASCIIEncoding.ASCII.GetBytes("GET / HTTP/1.0");

System.Net.Sockets.NetworkStream nsr = tcp.GetStream();

nsr.Write(data, 0, data.Length);

data = new byte[512];

int datas = nsr.Read(data, 0, data.Length);

textBox1.Text += ASCIIEncoding.ASCII.GetString(data,0,datas);

をフォームロード時のイベントに書いているのですがnsr.Readの行で処理が止まってしまい先へ進みません。
接続はちゃんと出来ているようです。
サーバ192.168.24.84はブラウザからもアクセスできる普通のHPサーバです。

どこかおかしなところがございましたらよろしくお願い致します。
79デフォルトの名無しさん:2010/06/29(火) 19:58:14
改行がないけどいいの? つか、HttpWebRequest使えばいいじゃん。
80デフォルトの名無しさん:2010/06/29(火) 19:59:32
HTTPのリクエストヘッダは\r\n\r\nで終わらないといけない
サーバはリクエストの続きを待ってんじゃね?
81デフォルトの名無しさん:2010/06/29(火) 20:06:41
>>77
今って立候補できるようになったんだねぇ
82デフォルトの名無しさん:2010/06/29(火) 20:12:14
このケースでHttpWebRequestを使わない意味がわからない
俺様コードはやめた方がいいよ
8378:2010/06/29(火) 20:14:04
レスありがとうございます。
>>79
趣味ですので単に興味ですw

>>79,80
なるほど、リクエストは改行で閉じなければならないんですね。とても勉強になりました。
もう少しネットワーク勉強しないとダメですね。

しかし未だReadで止まってしまいます。接続するサーバもgoogleに変えてみたりしたのですがだめでした。
引き続きなにかあればよろしくお願い致します。
84デフォルトの名無しさん:2010/06/29(火) 20:14:04
WebClientをすすめないのはなんで?
85デフォルトの名無しさん:2010/06/29(火) 20:15:51
>>83
なんでWeb鯖のログを見ないんだ?あとパケットモニタ。
んで、なんでそんな怪しい道具を外部公開サーバに対して使っちゃうの?
86デフォルトの名無しさん:2010/06/29(火) 20:18:26
使いこなされているやつ使え。
使いこなされているやつは方言や最初の規格に合わないやつにも対応出来る。
87デフォルトの名無しさん:2010/06/29(火) 20:26:45
>>78
HTTPサーバはクライアントが切断するまで切断しないのが仕様だから
ちゃんとContent-Lengthヘッダを読んで正確に指定されたバイト数を受信したら
切断しないといけません
88デフォルトの名無しさん:2010/06/29(火) 20:29:31
MVP界隈は正直変なのも沢山生息してるよねえ。
89デフォルトの名無しさん:2010/06/29(火) 20:30:51
>>84
細かい制御が出来ないから
90デフォルトの名無しさん:2010/06/29(火) 20:31:12
>>78
それかサーバにConnection: Closeヘッダを渡して閉じさせるかしかないです
デフォルトでConnection: KeepAliveなわけです
本気でまともに動くクライアントを作るにはそこまで考えないといけません
91デフォルトの名無しさん:2010/06/29(火) 20:31:14
>>83
趣味で興味もかまわんが他所様のhttpdで実験するなよな
そういうのは言語、技術、規格などなどを熟知した人間が手を出すもんだ
92デフォルトの名無しさん:2010/06/29(火) 20:32:36
1.0ならKeep-Aliveはデフォルトじゃないでしょ。
9378:2010/06/29(火) 20:32:55
byte型にしたリクエストをもう一度stringに直すと改行が文字化けしておりました。
エンコードをASCIIではなくUTF8にすることによって解決いたしました。

ありがとうございました。

HttpWebRequestというのも初めて知ったんですが普段使うにはこちらのほうが便利ですね。そうすることにします。
94デフォルトの名無しさん:2010/06/29(火) 20:35:24
http://okwave.jp/qa/q4181927.html

こんなんあった。DataArrived とかチェックしないといけないんかね。
95デフォルトの名無しさん:2010/06/29(火) 22:38:22
>>53,63を実際にやってみた
あくまでサンプルとして
http://ideone.com/phG7O
96デフォルトの名無しさん:2010/06/29(火) 23:09:50
まあ普通はEqualityComparer<T>.Defaultみたいな実装するよね
97デフォルトの名無しさん:2010/06/30(水) 01:07:09
>>95
よくわからないんだが、結局何がしたいコードなの?
98デフォルトの名無しさん:2010/06/30(水) 01:27:30
目的なんてなんでもいいんだよ。
手段のために目的があるんだ。
99デフォルトの名無しさん:2010/06/30(水) 02:30:27
現在フォームがフォーカスを失うと
フォームが最小化するプログラムを書こうとしています。
Form.Deactivateイベントを使うと簡単に行えるのですが、
propertyGridのドラッグダウンメニュー等
フォームから出来たコントロールでフォーカスを失った場合でさえ最小化してしまいます。
何か良いアイディアがありましたらご教授ください。よろしくおねがいします。
100デフォルトの名無しさん:2010/06/30(水) 02:59:45
条件が曖昧だが取り敢えずForm.ActiveFormでも確認してれば
101デフォルトの名無しさん:2010/06/30(水) 03:13:41
失礼しました。
条件としては、メインのフォームから作成される、
どのフォームにでもフォーカスがある限り最小化したくないと言う条件です。
デスクトップをクリックする、他のアプリケーションを開く等、
このプログラムに関係の無い場所にフォーカスが移った場合のみ最小化して欲しいのです。
102デフォルトの名無しさん:2010/06/30(水) 03:34:37
Form.ActiveFormも使用してみました。
ただ、Form.Deactivateがイベントとして発動した時点で、
Activeなフォームが無いのでnullが返されてしまいます。
103デフォルトの名無しさん:2010/06/30(水) 11:09:02
へえ
104デフォルトの名無しさん:2010/06/30(水) 21:46:48
>>95
ありがとうございます。
DynamicMetaObject って MethodInfo の Invoke() の発展形というか、ものすごく
なんでもアリな技術っぽいですね。
動的にメタ情報を扱うから、リフレクションと同じで当然ですが、nor から StaticFactory
の定義をコメントアウトしてもコンパイルは通っちゃうという。

System.Dynamic を使う場合、単体テストの重要性が極めて大きくなってきますね。
105デフォルトの名無しさん:2010/06/30(水) 22:16:36
dynamic=DynamicMetaObjectじゃないよ。
DynamicMetaObjectっていうのはdynamicなオブジェクトに対する「操作」を実行時に解釈して
具体的なILを生成するルールを定義する型。いわば小さいコンパイラみたいなもん。
106デフォルトの名無しさん:2010/06/30(水) 23:04:51
質問です。
競走馬X頭分のタイムの平均を求めたいのですが、どうすればいいのでしょうか?
わからないのは、時間の足し算と割り算です。

x頭ではわかりにくいので、仮に3頭がこのタイムで走ったという設定にしておきます。
馬A 1:33:6(1分33秒6)
馬B 1:35:2
馬C 1:36:9
なおタイムのミリ秒のところは1ケタです。つまり1分33秒6の次に大きいのは1分33秒7になります。

一応1万頭のような大量の頭数にも対応できるようにお願いします。
107デフォルトの名無しさん:2010/06/30(水) 23:07:10
ミリ秒の定義がおかしい
お前さんがやるには時間を0.1秒単位に変換して平均出すのがいいんじゃね
108デフォルトの名無しさん:2010/06/30(水) 23:11:39
(分*60 + 秒)*10+秒より小さいその一桁のやつ
を足して、割って後で戻す
109デフォルトの名無しさん:2010/06/30(水) 23:19:57
00を付加してParseしちゃえばよいのでは、とか。
110デフォルトの名無しさん:2010/06/30(水) 23:36:56
DateTime.Parseを使った場合、Addで足していったとして、
最後に平均を求めるのに割り算が必要になりますが・・・
111デフォルトの名無しさん:2010/06/30(水) 23:39:59
DateTime.Ticksの値を割ってDateTime(long)のコンストラクタに渡す
112デフォルトの名無しさん:2010/07/01(木) 00:17:24
ひょっとして、タイムを普通の数字に変換してそれで10進数で計算して、最後に出た数字を10進数からタイムに変換しなおせば同じ?

たとえば
1 1分33秒6は1336とみなす
2 計算する(どんどん足して、最後に割る)
3 出た数字が1655なら、1分65秒5とみなし、さらに2分5秒5に修正
113デフォルトの名無しさん:2010/07/01(木) 00:19:39
しかし、msが1/1000秒だってことを知らない人がプログラミングに手を出しても仕方がない気がする
114デフォルトの名無しさん:2010/07/01(木) 00:22:11
Excelすら使えてなさそうだな
115デフォルトの名無しさん:2010/07/01(木) 00:26:28
>なおタイムのミリ秒のところは1ケタです。つまり1分33秒6の次に大きいのは1分33秒7になります

これは競馬での表記の話ね
116デフォルトの名無しさん:2010/07/01(木) 00:27:38
>>112
マジで小学校からやり直せ。
117デフォルトの名無しさん:2010/07/01(木) 00:35:47
国際単位に「競馬での表記」も糞もあるかよ....
118デフォルトの名無しさん:2010/07/01(木) 00:39:18
>>112
つまりこういうことだね
(1分+30秒+30秒)/3=(1000+300+300)/3=1600/3=53.3秒
あってるかな? とけいをみてかんがえてみようね
119デフォルトの名無しさん:2010/07/01(木) 00:56:38
全部秒にすればいいと
120デフォルトの名無しさん:2010/07/01(木) 01:02:06
>>117
108の*10はそういう意味でしょ
121デフォルトの名無しさん:2010/07/01(木) 01:02:12
まあ競馬の表記だろうがなんだろうが、物理量なんて単位さえ統一できていれば問題ないんだが、
1分が60秒ってことを知らないレベルじゃどうしようもない。
122デフォルトの名無しさん:2010/07/01(木) 01:05:24
TimeSpan使ったれよあほども
123デフォルトの名無しさん:2010/07/01(木) 01:09:14
つかそもそも競馬のタイムとかは相対時間だから
DateTime じゃなくて TimeSpan だろ

そしてこいつの Parse を見てみれ
ttp://msdn.microsoft.com/ja-jp/library/se73z7b9(v=VS.80).aspx
これがまぁ普通の書き方。

んで競馬はちょっと知らないのでぐぐって見た
ttp://www.jra.go.jp/datafile/seiseki/g1/takara/result/takara2010.html

…やっぱり秒/ミリ秒区切りの記号間違ってねぇ? >>106

まぁ TimeSpan 使っても Ticks 足して割るのは一緒なので
横道だが
124デフォルトの名無しさん:2010/07/01(木) 01:16:28
ああごめん。
: じゃなくて . だろってことか。
125デフォルトの名無しさん:2010/07/01(木) 02:01:01
というかミリ秒じゃないし
デシ秒 or 秒の小数部
126108:2010/07/01(木) 02:39:01
>>120
見てくれてありがとう。
けれど、>>112には伝わらなかったようで、残念です。
*60って書いてるのにorz
127デフォルトの名無しさん:2010/07/01(木) 07:02:39
>>126
うざい書き込みはいらないから
128デフォルトの名無しさん:2010/07/01(木) 07:56:41
今って小学生でも馬券買えるんだっけ
129デフォルトの名無しさん:2010/07/01(木) 10:26:19
おはようございまーす。

TextBoxクラスに入力した文字を7色に変える
メソッドRainbow()を作りたいなーと思った時に
TextBoxクラスを継承したMyTextBoxクラスを作って
そこにRainbow()を作ろう思ったのですが
それをフォーム上のTextBoxに適用するにはどうすればいいんですかね?
というかそもそもこういう考え方で問題ないんでしょうか?

ちなみにC#2008なんですけど、教えてもらえないですかー?
130デフォルトの名無しさん:2010/07/01(木) 10:40:49
済みません、>>129なんですけど
加えて教えていただきたい事がありまして

private void A( str hoge, int hage){

AA(str);
BB(int);
CC(str,int);
DD();
}
っていう処理があったとして
ここでは省略しますが、この中身がSelectで分けられて微妙に処理が変わると言った場合
メソッドAと同じ引数を持つ
private void B(str hoge,int hage){
AA(str);
BB(int);
CC(str,int);
DD();
}

を作って


次レスに続く
131デフォルトの名無しさん:2010/07/01(木) 10:43:47
private void A( str hoge, int hage){

switch int{
case 1:
hoge = "xxx";
B(hoge,hage)

case2:
hage = 5
B(hoge,hage);
}

とか言う記述にする事について皆さんどう思われますでしょうか。
ご意見お願いします。
132デフォルトの名無しさん:2010/07/01(木) 11:07:08
質問の意味がわからん
133デフォルトの名無しさん:2010/07/01(木) 11:17:23
どう思うかっていわれても

そんなの好きにすればいいじゃん
134デフォルトの名無しさん:2010/07/01(木) 11:19:18
>>129
MyTextBoxをフォームに貼ればいいだろ
135デフォルトの名無しさん:2010/07/01(木) 11:22:45
秒を浮動少数でまとめて計算して、分秒に直せば良いんじゃねーの?
A:93.6
B:95.2
C:96.9
(A + B + C) / 3 = 285.7 / 3
=95.2
=1分35秒2
136>>129:2010/07/01(木) 11:34:42
あ、すみません。
好きにしたらいいんですよね(^ω^;
ああいう書き方は設計上好ましくなかったりするのかなーと。
それと>>129のしつもんなんですけど
>>134さんの言うようにフォームに貼りたいんですけど
その方法がわからなくて・・・。
試しにTextBoxを継承した奴をコードに書き加えたら
継承したフォームがツールボックスに出てくるのかなーとかも思ったんですけど
そうでもなさそうですし・・・。

教えていただけないですか><;
137デフォルトの名無しさん:2010/07/01(木) 12:52:10
でかいのでた
すっきりした
138デフォルトの名無しさん:2010/07/01(木) 13:04:05
>>136
googleでユーザコントロールとかカスタムコントロールとかで検索すれば・・・
139デフォルトの名無しさん:2010/07/01(木) 13:07:29
自演?
140デフォルトの名無しさん:2010/07/01(木) 13:21:25
>>138
ありがとうございます。

さっそくやってみます。
141デフォルトの名無しさん:2010/07/01(木) 13:38:23
>>140
うむ
142140:2010/07/01(木) 13:59:23
自決しました
143140:2010/07/01(木) 14:03:27
自戒しました
144デフォルトの名無しさん:2010/07/01(木) 14:06:27
>>142>>143
なんでそこを自演する必要がw
145140:2010/07/01(木) 14:28:13
>>144
自慰だからです
146デフォルトの名無しさん:2010/07/01(木) 18:48:09
>>126
120も112も自分です。>>108のやり方を参考にさせてもらいます。どうもありがとう。
あと途中レベルが低すぎて申しわけない
147デフォルトの名無しさん:2010/07/01(木) 20:23:30
>>130
状況によってパラメータを変更したいってこと?
もともとのAを読んでいる部分にそのswitchを置けばいいと思うけど、
その処理自体が多くでてくるのかな。

なんか変なにおいがするのでもっと引いた視点で見直してみるといいかも。
148デフォルトの名無しさん:2010/07/02(金) 10:09:08
いいかもね
149デフォルトの名無しさん:2010/07/02(金) 14:45:42
Microsoft .NET vs Java - trailer
http://www.youtube.com/watch?v=fzza-ZbEY70
あほすぎw
150デフォルトの名無しさん:2010/07/02(金) 17:34:45
50音順配列の子供向けソフトキーボード「らくだ こどもキーボード」
動作には.NET Framework 2.0以降が必要。
ttp://www.forest.impress.co.jp/docs/serial/okiniiri/20100630_377657.html

上記ソフトはこの人の作品か?
http://pc12.2ch.net/test/read.cgi/tech/1274019232/284
151デフォルトの名無しさん:2010/07/02(金) 18:52:32
質問者のレベルからすると
デザイナでボタンを一個ずつ配置して
それぞれにイベントハンドラしかけてそう
152デフォルトの名無しさん:2010/07/02(金) 19:11:50
まあどんなコードでも挙動が同じならいいんじゃね?
フリーウェアか……作ろうとしたこともあったがアイデアがないな
153デフォルトの名無しさん:2010/07/02(金) 19:37:55
俺も個人でやるなら何しようがいいと思うけどね

だーけーど仕事で複数人で作業してる時、
不変クラス作れつったのに要求を満たしてなかったり
コンストラクタに10個以上も引数を連ねる奴は解雇されればいいと思うの
154デフォルトの名無しさん:2010/07/02(金) 19:41:41
>>150
普通、書店とかである在庫検索なんかはひらがなの並びは左から右だけど・・・。
155デフォルトの名無しさん:2010/07/02(金) 20:25:39
>>154
ん?そうかな。あ行で始まり右から左に並んでると思ったけどなー
156デフォルトの名無しさん:2010/07/02(金) 20:44:19
50音表は縦書きだから右から左でおk
157デフォルトの名無しさん:2010/07/02(金) 21:18:13
>>153
見てみたいなそのソース
自分の仕事では勘弁願いたいがw
158デフォルトの名無しさん:2010/07/02(金) 22:29:35
>>152
趣味ならそれでOK。
仕事なら限られた時艱の中で最高の答えを探すべき。
159デフォルトの名無しさん:2010/07/02(金) 22:42:33
時艱
その時代の直面している艱難。当面する難題。

難しい言葉知ってるな
160デフォルトの名無しさん:2010/07/02(金) 23:44:38
まあ、十中九十は分析が足りてないんだろうけど DateTime とか Binding コンストラクタ
みたいな例も無くもない。
161デフォルトの名無しさん:2010/07/02(金) 23:58:04
MVVMフレームワーク使うと凍結クラスつーかイミュータブルなクラスを作る事が殆ど無くなったな
162デフォルトの名無しさん:2010/07/03(土) 00:11:04
GUI はimmutableと相性悪い気がする。
163デフォルトの名無しさん:2010/07/03(土) 01:30:11
>>45
おいおいおいまたこのページのコメントも全部消えたぞ。
まあ他人のコメントに対しての本人の回答コメントが消えたんだが。

こいつはいったい他人とのコミュニケーションをなんだと思ってんだよ…
164デフォルトの名無しさん:2010/07/03(土) 01:38:01
まああれだな、貴方の正体が不明なので公開しませんみたいなこと書いてたから、
またその辺におそらく何様だとかどういう態度だとかそういう突っ込みコメントされて逃げたのかな。
コメント非承認で書き込まれたのが表示されない分、逆に殺到した可能性もあるかもな。
165デフォルトの名無しさん:2010/07/03(土) 09:55:29
コメントへの回答を消されてしまった本人だが…
さすがにちょっとイラっときた…
166デフォルトの名無しさん:2010/07/03(土) 10:01:07
元々のコメントも、技術的質問ではなくて正体不明だから公開は不適切と判断されたが、
「当Blogのコメント投稿について」のルールで不明なところの確認の質問だったんだぜ。
もうこの人はまともにコミュニケーションをとるつもりなどないとあきらめたわ。

スレ違いすまん、ちょっと書きたくなった。
167デフォルトの名無しさん:2010/07/03(土) 12:02:40
謝るくらいなら書くなよw
168デフォルトの名無しさん:2010/07/03(土) 13:21:10
お節介かもしれんが一応一言。
君たち、その批判的視線を少しは自分にも向けたらどうなの。
端的にいってそうとう「気色の悪い」人間だと思うぞ君らはw
いつも不思議なんだが、こういう奴らってよくそういう薄気味悪い自分に耐えられるよな。
169デフォルトの名無しさん:2010/07/03(土) 13:31:01
鏡で見慣れてるからな
170デフォルトの名無しさん:2010/07/03(土) 14:20:27
WPFのTextBoxのマスク処理ってどうやるの?
PasswordBoxがバインド出来ないから凄くめんどくさい…
171デフォルトの名無しさん:2010/07/03(土) 15:20:35
できない
172デフォルトの名無しさん:2010/07/03(土) 15:26:27
えええええええ
ならこれどーすんの?
バインド出来なければMVVMにならないじゃん…
173デフォルトの名無しさん:2010/07/03(土) 16:00:40
まだまだ発展途上だからね
174デフォルトの名無しさん:2010/07/03(土) 17:40:06
C#でプロセスの隠蔽をしたいんだが、誰か詳しい人説明を頼む。
DLLインジェクションを使えばいけそうなのはわかったんだが…
175デフォルトの名無しさん:2010/07/03(土) 17:43:27
詳しい人だけど時間がないので説明しない
176デフォルトの名無しさん:2010/07/03(土) 18:08:15
>>174
なんだこの厨房丸出しの質問は

C#で作られたDLLってネイティブコードで動いているプロセスにそのまま注入できるのか?それなら普通のセオリー通りにやればいいんじゃね。
177デフォルトの名無しさん:2010/07/03(土) 19:07:20
>>175
時間がないなら2chみてんじゃねーw

>>176
具体的な手順頼む。
ネットで調べたらDLLインジェクション自体はサンプルが落ちててできそうなんだ
だが、exeのプロセス隠蔽とDLLインジェクションが自分の中でうまく繋がらなくて
178デフォルトの名無しさん:2010/07/03(土) 19:27:10
>>177
DLLインジェクションというのは、他のプロセスにDLLをインジェクション(注入)して、そのDLLを実行させるというだけの技術。
実行されているDLLはWindows標準のタスクマネージャーには表れないから、DLLを注入して他のプロセスに実行させることで、結果的にプロセスを隠蔽しているようになるというだけの話。
179デフォルトの名無しさん:2010/07/03(土) 19:28:13
>>172
バインドはMVVMには必須じゃない。普通にイベントハンドラで書け。
MVVMのキモはViewModelがViewに依存しないことであって
それさえ守られてればViewのコードビハインド書いても問題はない。
180デフォルトの名無しさん:2010/07/03(土) 19:30:56
>>178
レスサンクス

explorer.exeにAというDLLを注入した場合、A.dllで何か処理を書かないといけないと思うんだが
普通のexeみたいに何か処理をするdllを作成するのってできるの?
181デフォルトの名無しさん:2010/07/03(土) 19:35:00
>>179
依存しないからこそViewModelの差し替えでViewの挙動を容易に変える事ができるんだよね?
イベントハンドラでデータを操作する内容をViewに書いたらMVVMの形式が崩れてしまうし
ViewのハンドラからViewModelに橋渡しするとなるとDataContextの差し替えだけではすまなくなり容易性が失われる(Viewの内容を知っていないといけない)
イベントハンドラ書いたらMVVMじゃ無くなりまするですよ…
182デフォルトの名無しさん:2010/07/03(土) 19:36:32
>>180
> 普通のexeみたいに何か処理をするdllを作成するのってできるの?
でなきゃDLLが存在する意味がないだろ。
183デフォルトの名無しさん:2010/07/03(土) 19:38:48
>>182
C#でクラスライブラリを作ったりするとdllで出力されるのはわかるんだが
dll単体で処理を行うのは無理じゃ?
184デフォルトの名無しさん:2010/07/03(土) 19:42:32
わかんないならあきらめろよ・・・。
185デフォルトの名無しさん:2010/07/03(土) 19:43:14
やってることはこっちだが、理解がふらっとの方に行ったほうがいいレベルだな
186デフォルトの名無しさん:2010/07/03(土) 19:45:39
>>181
いやそもそもViewModelの差し替えなんか不可能。
ViewModelはViewの抽象化だから、
ViewModelを差し替えるのは例えればクラスの基底クラスを差し替えるようなもの。
差し替えられるのはViewの方。Viewのテストが面倒だからViewModelで抽象化して
ViewModelを単体テストできるようにしましょうっていうアイデア。
187デフォルトの名無しさん:2010/07/03(土) 19:55:02
>>186
うそーん!
共通のWindowで共通のコントロール
ただしデータが微妙に違ってそれによる制約や検証が微妙に違うものが複数ある
そしてModelは同一又はプロパティ数が同一
こう言う事って結構あるよね?
んで
View(共通のコントロール)
ViewModel(検証とCommandによる操作、及びレガシーModelの包括)
で分けてViewModelを差し替える事で使い回ししてるよ

でもここで出てきたのがView配置のPasswordBoxちゃん
こいつがDependencyObjectじゃないとBindさせねぇ〜とか言っちゃう
んで、これをどうViewModeで吸収?してModelに渡すのかがググってもさっぱりわかんない
お手上げちゃーんなのです
188デフォルトの名無しさん:2010/07/03(土) 19:56:41
>>184>>185
回答出来ないなら黙ってていいよ
189デフォルトの名無しさん:2010/07/03(土) 19:58:49
バインドしてOKみたいなもんはTextBoxでいいよ
190デフォルトの名無しさん:2010/07/03(土) 20:03:59
誕生日になるとメッセージを表示するプログラムを本人に築かれないように
仕込みたいんだが、どうすればいい?
プロセス隠蔽ができないとタスクマネージャ開いてばれるかもしれんし。
191デフォルトの名無しさん:2010/07/03(土) 20:08:04
>>190
そんな方法はない。
仮にあったとして、そんなセキュリティーホールが放置されてると思うか?
192デフォルトの名無しさん:2010/07/03(土) 20:09:30
>>191
仕込むの自体は手動でやるからいいんだが、
プロセスの隠蔽は普通にできるだろ?
193デフォルトの名無しさん:2010/07/03(土) 20:11:03
隠蔽はあるだろ…
タスクマネージャのタスク一覧を直接弄って消すのは10年前のウィルスですらやってる事
今はサービス、他社のタスク一覧まで消す奴もある
194デフォルトの名無しさん:2010/07/03(土) 20:11:45
常駐させずにタスクスケジューラに登録しとけ
195デフォルトの名無しさん:2010/07/03(土) 20:17:16
>>194
おまい、天才だな・・
サンクス
196デフォルトの名無しさん:2010/07/03(土) 20:18:25
>>190
そいつの心臓が弱くていきなり出たメッセージに驚いてポックリ逝ったら責任とれるのか?あ?
197デフォルトの名無しさん:2010/07/03(土) 20:18:51
>>190
本人に直接言え。
198デフォルトの名無しさん:2010/07/03(土) 20:19:09
>>196
スキルのねぇカスはひっこんでろ
199デフォルトの名無しさん:2010/07/03(土) 20:20:33
それはキモいというか、普通にそんなことされたら嫌だろよ。
200196:2010/07/03(土) 20:22:38
>>198
176も178も私ですけどスキルがなくてすいませんねえ
201デフォルトの名無しさん:2010/07/03(土) 20:23:20
タスクマネージャの心配はするのにタスクスケジューラはOKってどういうことだよw
確かにタスクスケジューラなんてまず使わないけどな。

俺に言えるのは、100%確実な方法はないってことだな。
パソコンの操作を全部記録するようなソフトを入れてないとも限らないし。
202デフォルトの名無しさん:2010/07/03(土) 20:25:29
>>201
普通、タスクスケジューラなんて使わないよな?
ちょっと不安になってきたw
操作を記録するソフト入ってたら無理だなw
203デフォルトの名無しさん:2010/07/03(土) 20:28:44
勝手にアプリを入れさせるようなレベルなんだし、
スタートアップに置いといてもばれないんじゃね?
204デフォルトの名無しさん:2010/07/03(土) 20:31:04
スタートアップに入れておけ。
誕生日に起動した時だけダイアログを出して他のタイミングは即座に終了して消えるようにする。
205デフォルトの名無しさん:2010/07/03(土) 20:33:25
スタートアップはたまに覗いたりしないか?
206デフォルトの名無しさん:2010/07/03(土) 20:34:35
svchost.exeって名前にしとけ
207デフォルトの名無しさん:2010/07/03(土) 20:35:44
>>200
事実は事実
208デフォルトの名無しさん:2010/07/03(土) 20:43:33
>>190
誕生日はお前以外の相手と一日中デートしててPCを起動しない可能性は?
カーチャンとかだったらごめん
209デフォルトの名無しさん:2010/07/03(土) 20:51:35
>>187
そりゃMVVMじゃなくて君が開発した別のパターンだ。
MVVMに関するMSの記事のどこを見てもそんなことは書いてない。
もちろんWPFはそのパターンを公式にはサポートしてない。頑張るのは君だ。
210デフォルトの名無しさん:2010/07/03(土) 21:00:56
>>209
えー
だってMVVMのパターンの概要を見るとViewとViewModelの分離の事は書かれてるよね
この疎結合の副作用を利用して差し替えをしてるだけであって完全マイルールってわけじゃないよー
それにイベントハンドラを書くのは結合度の観点からも勧められないと著名人達は口を揃えて言ってるよん

誰かAdorner何かを使ってTextBoxをマスク処理してるコードを格好良くみせてくれないかなーとか期待してたんだけど無理かなぁ
211デフォルトの名無しさん:2010/07/03(土) 23:16:45
WPFしらんのでテキトーだけど、UserControlをアダプタとしてPasswordBoxのせて、
仲介してもらうとかできない?
212デフォルトの名無しさん:2010/07/03(土) 23:20:00
>>211
ググるとそのやり方をやってる風なコメントがあるよねー
んー、やっぱりその方法がいいのかな
と言う前に、やってみるか!
213デフォルトの名無しさん:2010/07/03(土) 23:45:58
>>212
うむ。そうするのじゃ
214デフォルトの名無しさん:2010/07/04(日) 00:08:00
MVVMにこだわるんだったらそのUserControlのためにまた別のViewModelが必要だから
UserControl作ったって同じことでしょ
215デフォルトの名無しさん:2010/07/04(日) 00:09:26
おぬし、ViewModelを勘違いしとるぞい
216デフォルトの名無しさん:2010/07/04(日) 00:10:07
というと?
217デフォルトの名無しさん:2010/07/04(日) 00:13:29
なんで別のViewModelが必要と思ったの?
218デフォルトの名無しさん:2010/07/04(日) 00:54:11
ViewModelを差し替えたいならせめてインターフェイス通すべきだろ
実際のバインディングの動作には全く関係ないけどね
公式サンプルのPrismはViewがViewModelをインターフェイス経由で露に参照してる
差し替えたりしてはいないけど、バインドするVMのメンバは基本的にインターフェイスに宣言されてる
219デフォルトの名無しさん:2010/07/04(日) 01:04:25
Prismをかなり使い倒してるんだがそんなインターフェイスでViewとViewModelを繋いでるサンプルなんてあるか?
RegisterTypeでIDataService何かのサービスをレジストしたりするのはよくやるが

220デフォルトの名無しさん:2010/07/04(日) 01:44:52
素人としては、ViewModel をストラテジパターンの要領で差し替えて使ってると
認識してて、そうなるとインタフェース必須だと思ってるんだけど違うの?
221デフォルトの名無しさん:2010/07/04(日) 02:07:06
Prismにしろ何にしろViewModelにインターフェイスは使えないだろjk
RoutedUICommand一つとってもViewModel側にstaticで定義しないと駄目なんだぞ?
222デフォルトの名無しさん:2010/07/04(日) 02:08:56
あ、インタフェースって言ってもViewModelから呼ばれるストラテジのインタフェース
って意味で。
そういう感じで作ればXAML共通で、VMの実処理だけ差し替えられるよな?と。
223デフォルトの名無しさん:2010/07/04(日) 02:10:11
つまりどういう事だってばよ!?
224デフォルトの名無しさん:2010/07/04(日) 02:22:57
つまり、固定のViewModel と、固定の Model の間で検証したりするロジックが
いくつかパターンがあるんで、それをアダプタ化して差し替え可能にしてるって
ことじゃね?>>187 は。
225デフォルトの名無しさん:2010/07/04(日) 02:25:42
とか思ったら PasswordBox 悩む必要無さそうだな、それじゃw
226デフォルトの名無しさん:2010/07/04(日) 02:48:34
BというクラスがあったとしてAクラスで A hoge = new A(); というように実体が作られたとします。
そこでBクラスがAクラスで実体が作られたという事を知ることはできないでしょうか?

Bクラスのコンストラクタで作られたクラスを取得したいです。
引数にでもして入力すればいいとも思うのですが自動でとれたら便利だと思いました。お願いいたします。
227デフォルトの名無しさん:2010/07/04(日) 02:49:20
A hoge = new A(); は B hoge = new B(); です、失礼しました
228デフォルトの名無しさん:2010/07/04(日) 02:54:04
ttp://msdn.microsoft.com/en-us/devlabs/ee794896.aspx
これ使ってObserverを使う
229デフォルトの名無しさん:2010/07/04(日) 07:17:08
どうもどうも〜
230デフォルトの名無しさん:2010/07/04(日) 11:07:45
Rxってイベントベースじゃなかったっけ?
A側にもB側にも特別なコードを追加せずにnewを検知しようと思ったら
ILのリライトしかないと思うけどそんなことやってくれるの?
231デフォルトの名無しさん:2010/07/04(日) 12:07:23
>>230
Rx 進めてる時点で、>>229 はそういうイベントコード書けって事だと思うけど。
ぶっちゃけ、それなら、class B に static な NewInstance イベントでも足して、
B のコンストラクターでイベント起こせせばいい気はする。

特別なコード足したくないならそれは無理。
232デフォルトの名無しさん:2010/07/04(日) 12:46:38
IEnumerable,yield,ToObservableで簡単に実装出来るけどな
ただRx強力かつ難解なんで上級者でも中々手がない代物
複数人の開発じゃ手が出しにくい
233デフォルトの名無しさん:2010/07/04(日) 12:47:31
×ただRx強力かつ難解なんで上級者でも中々手がない代物
○ただRxは強力かつ難解なんで上級者でも中々手が出せない代物
234デフォルトの名無しさん:2010/07/04(日) 12:58:47
イベントベースの非同期プログラミングが面倒だから
LINQ使ってDSLっぽくイベントハンドラを作ろうというやつだよね
そんなに難しいの?
235デフォルトの名無しさん:2010/07/04(日) 13:10:36
うーんどうだろ。
Rx が難しいっていうよりは、C# のイベント機能が簡単すぎる気もする。
あとは、やっぱドキュメント少ない。
236デフォルトの名無しさん:2010/07/04(日) 13:22:00
using System;
using System.Diagnostics;

namespace OnCreate {
class B {
static event Action<Object, EventArgs> Created;
public B() {
OnCreated(new EventArgs());
}
void OnCreated(EventArgs arg) {
if (Created!=null) {
Created(this, arg);
}
}

static void Main(string[] args) {
Created += CreateEventHandler;
B b = new B();
}
static void CreateEventHandler(Object obj, EventArgs arg) {
Console.Out.WriteLine(new StackTrace().ToString());
}
}
}
とか言ってみるテスト。スレッドセーフじゃないよなぁこれは。
237デフォルトの名無しさん:2010/07/04(日) 13:24:37
Rxはおもしろ事が出来そうなんだけどドキュメント少ないし
やっぱり非同期系は難しい
Rxよりはいるけど.Net4の並列系も使いこなしてる人がすくないよね
238デフォルトの名無しさん:2010/07/04(日) 13:26:15
ttp://sazameki.jp/programming/programmer-levels
C#じゃないけど、それとなく当てはめてみて
おまいらはどのレベルなの?
239デフォルトの名無しさん:2010/07/04(日) 13:29:53
それ微妙に納得いかないのよねぇ。

レベル1とかのプログラミングの基礎知らなくても、
専門知識だけ持った人が専門知識を生かせるような簡単プログラミングの時代来ないとダメだ。
240デフォルトの名無しさん:2010/07/04(日) 13:30:44
Rxでいう非同期はマルチスレッドの非同期じゃなくて
同期スタイルなら { キーが押されるまで待機(); A(); キーが押されるまで待機(); B(); }と書けるところを
キーイベントを使った"非同期"スタイルだと状態を保持する変数を持たないといけなくて面倒だよねという話
241デフォルトの名無しさん:2010/07/04(日) 13:32:31
>>238
それで行けば専門家レベルだな
基準がぬるいよ
242デフォルトの名無しさん:2010/07/04(日) 13:36:00
>>240
その状態を保持しながら通知するから便利なんだろ?
簡単に言えばステートフルな非同期処理
だから強力なのさ
243デフォルトの名無しさん:2010/07/04(日) 13:38:52
>>238
これの初級レベルでここや初心者用で質問したら
ググれと言われて相手にされないだろwww
と思ったけど大学4年以上いっても初級レベルの奴がゴロゴロいるよな…
244デフォルトの名無しさん:2010/07/04(日) 13:49:26
>>236
void OnCreated(EventArgs arg) {
var created = Created;
if (created!=null) {
created(this, arg);
}
}
これでスレッドセーフ?
関係ないけどイベントハンドラ用のデリゲートを作りたくなかったらEventHandler<TEventArgs>
それと引数なしのEventArgsはEventArgs.Emptyを使う
245デフォルトの名無しさん:2010/07/04(日) 13:51:38
> var created = Created;
そのテクニックどっかでみたな?
どこだっけ?
246デフォルトの名無しさん:2010/07/04(日) 13:59:09
>>244
>スレッドセーフじゃないよなぁこれは。
247デフォルトの名無しさん:2010/07/04(日) 14:07:55
じゃあスレッドセーフにしてくれ
ロックはなしで
248245:2010/07/04(日) 14:19:44
あー思い出したわw
MSDNだ、そうそうw
ttp://msdn.microsoft.com/ja-jp/library/ms173168%28VS.80%29.aspx

で、横からだけどスレッドセーフ
public event EventHandler<EventArgs> Created = (_, __) => {}

こいつはPropertyChangedなんかで使われるテクニックだわな
(Week何とかつかえとかPrism使えとか言われてるけどw)

まー、このケースで言えばこれでOKだろ

さぁ、俺を褒め称えよ!w
249デフォルトの名無しさん:2010/07/04(日) 14:26:00
245△
250245:2010/07/04(日) 14:34:44
>>249
なはw
律儀にあんがとさんw
251デフォルトの名無しさん:2010/07/04(日) 16:10:24
すまん。>>244 の"スレッドセーフ?"と言ったのを、 >>236 の最後を見落としてて
揶揄してるんだと誤解してた。スレッドセーフにしてくれてたのね。
252デフォルトの名無しさん:2010/07/04(日) 16:19:27
いいよ気にしないで
慣れてるから
253デフォルトの名無しさん:2010/07/04(日) 16:29:03
>>244
これってなんでスレッドセーフになるの?
解説を聞きたい!
254デフォルトの名無しさん:2010/07/04(日) 16:29:43
>>248
public event EventHandler<EventArgs> Created = (_, __) => {}

これもなぜこれだけでスレッドセーフになるのかわからにぃ
255デフォルトの名無しさん:2010/07/04(日) 16:32:20
>>253
null比較がスレッドセーフではないからローカル変数に一時待避でスレッドセーフ

>>254
null比較しなくていいように前もって空イベント挿入でスレッドセーフ

また、△ってしてもいいんだぜ!
256デフォルトの名無しさん:2010/07/04(日) 16:36:57
>>253
if (Created!=null) {
/* この間に別のスレッドがイベントを-=してCreateをnullにする可能性がある */
Created(this, arg);
257デフォルトの名無しさん:2010/07/04(日) 16:43:18
はあ・・・また自演っぽいな
258fushianasan:2010/07/04(日) 16:46:58
別に自演じゃないよ。
ホントにわかんないだけ。
259デフォルトの名無しさん:2010/07/04(日) 16:50:31
>>256
var created = Created;
Created-=********** --この時点でcreated -= *********
したのと同じことにはならないの?
参照型でしょイベントって。
260デフォルトの名無しさん:2010/07/04(日) 16:58:33
add/removeしたら別オブジェクト
a += b;は
TDelegate c = (TDelegate)Delegate.Combine(a, b)
a = c;
の略で、このとき
Object.ReferenceEquals(a, c)もObject.ReferenceEquals(b, c)もfalse
261デフォルトの名無しさん:2010/07/04(日) 16:59:26
君は
var objA = new object();
var objB = objA;

この時どうなると思ってんだ?
ちゃんとポインタ(厳密には違うけど)はコピーされてるんだぞ
262デフォルトの名無しさん:2010/07/04(日) 16:59:42
ならないの。デリゲートはStringと似たつくりになっていて、一度作成したインスタンスは変更できない。
イベントの実装はこうなってる
private EventHandler _Created;
public event EventHandler Created {
[MethodImpl(MethodImplOptions.Synchronized)] add { _Created = (EventHandler)Delegate.Combine(_Created, value); }
[MethodImpl(MethodImplOptions.Synchronized)] remove { _Created = (EventHandler)Delegate.Remove(_Created, value); }
}

[MethodImpl(MethodImplOptions.Synchronized)]のおかげでaddアクセサとremoveアクセサの呼び出しもスレッドセーフ。
263253,254,259(261は別人):2010/07/04(日) 17:27:30
>>260,>>262
解説ありがとう。
参照型だけど毎回インスタンスが生成されるクラスなんですね。
理解しました。
264デフォルトの名無しさん:2010/07/04(日) 17:39:38
何読んだらそう言うのがわかるようになるの?
265デフォルトの名無しさん:2010/07/04(日) 18:47:37
>>255
> null比較がスレッドセーフではないから
そういう話じゃないような
266デフォルトの名無しさん:2010/07/04(日) 19:01:53
>>265
うん、間違えたw
267デフォルトの名無しさん:2010/07/04(日) 22:59:50
あほか。nullはスレッドセーフだわ、ボケ。
268デフォルトの名無しさん:2010/07/05(月) 01:22:17
えっ?
269デフォルトの名無しさん:2010/07/05(月) 01:44:53
>>244
実はECMAの仕様ではスレッドセーフではなかったり。
270デフォルトの名無しさん:2010/07/05(月) 03:05:16
完全なスレッドセーフなど存在しない
271デフォルトの名無しさん:2010/07/05(月) 03:07:36
しかしlockを何個も書くのはかっこ悪いしめんどいんだが
このオブジェクトは最初から排他仕様だからよろしくみたいなことは出来ないのか?
272デフォルトの名無しさん:2010/07/05(月) 10:20:28
比較自体はスレッドセーフじゃないからあながち間違いではないけどな
273デフォルトの名無しさん:2010/07/05(月) 13:46:46
は?
274デフォルトの名無しさん:2010/07/05(月) 14:22:32
>>272
だよな 間違ってないよな
さすがだな
275デフォルトの名無しさん:2010/07/05(月) 17:20:35
え?
obj = nullは常にスレッドセーフだよ?
あと
obj = 0とobj = falseもさ
大丈夫?あぁネタかw
276デフォルトの名無しさん:2010/07/05(月) 17:24:40
ほ?
277デフォルトの名無しさん:2010/07/05(月) 18:27:47
それがどうであるかと>>244がなぜスレッドセーフなのかはまるで関係ないよね。
278デフォルトの名無しさん:2010/07/05(月) 18:57:15
>>275
obj = ""が抜けてるよ♪
279デフォルトの名無しさん:2010/07/05(月) 22:54:43
>>277
>>244がスレッドセーフであることの前提条件ではあるだろ
280デフォルトの名無しさん:2010/07/06(火) 00:39:11
C#でDllMainって使うにはどうしたらいいかわかるひといる?
281デフォルトの名無しさん:2010/07/06(火) 00:45:48
うん
282デフォルトの名無しさん:2010/07/06(火) 00:49:24
>>281
マジで知ってるなら教えて下さいm(_ _)m
283デフォルトの名無しさん:2010/07/06(火) 01:45:26
>>282
COMコンポーネントあたりでぐぐってみるといいよ
サムネイル表示するのをWindows7に移植しようとC#で作ってみたが
その時にそんな感じのことをした気がする
結局動かなくてテストに毎回再起動するのがまんどいので放置してるが
284デフォルトの名無しさん:2010/07/06(火) 02:58:32
>>279
いや、そんなことないが。落ち着け。
285デフォルトの名無しさん:2010/07/06(火) 03:03:12
とまぁ、えらそうに申しておりますが、俺も>>248 >>262で初めて知り、
>>265のツッコミをした程度のへっぽこです。
知らなかったらlockステートメント使ってたと思う。
286デフォルトの名無しさん:2010/07/06(火) 03:30:32
んなこたあどうでもいいから>>282に教えて上げなさい
287デフォルトの名無しさん:2010/07/06(火) 03:39:33
質問が曖昧すぎて回答できません
288デフォルトの名無しさん:2010/07/06(火) 03:43:35
とりあえずクラスライブラリとかDllImportとか曖昧回答して上げなさい
289デフォルトの名無しさん:2010/07/06(火) 03:46:10
ぐぐったら少ないけど情報出てくるね。
290デフォルトの名無しさん:2010/07/06(火) 10:41:53
デッドロックの恐れがあるからCLR2.0以降では禁止されているという話らしいよ
291デフォルトの名無しさん:2010/07/06(火) 12:48:59
約束は破るためにあるっちゅうことやな
292デフォルトの名無しさん:2010/07/06(火) 13:06:04
ところでこいつを見て欲しい。どう思う?
ttp://www.atmarkit.co.jp/fdotnet/extremecs/extremecs_22/extremecs_22_02.html
Observerの変形と言えなくもない気がするが、状態オブジェクトが焼け太りしそうな悪寒。
実際んとこ、コレどんな場面で有効だと思う?
293デフォルトの名無しさん:2010/07/06(火) 13:31:43
Observerとかいう次元じゃなくてアプリケーション全体の構造の話でしょ
ステートが絶対に変化しないならいいんじゃないの
素直にやったら全部グローバル変数と変わらないから、テストのことを考えると
IProductsStateとかインターフェイスで小分けすることになるだろうけど
インターフェイス使っちゃうと後で変更がきかないよね
294デフォルトの名無しさん:2010/07/06(火) 14:09:25
>「銀の弾丸」が存在しない以上、「ステート集約プログラミング」も銀の弾丸ではありえない。
>「ステート集約プログラミング」とは、あなたが“カオスの縁で踊る”ステップのバリエーションを増やすものであって、
>他のステップがなくてもよいと主張するものではない

これだけでなんかオタ臭さをすげぇ感じるわ。
295デフォルトの名無しさん:2010/07/06(火) 14:45:39
オタですがなにか?(-_-メ)
296デフォルトの名無しさん:2010/07/06(火) 14:57:12
状態オブジェクトの変更に弱い
に尽きるな
筆者もそれはわかっててわざと誤魔化した書き方をしてるように見える
結局グローバル変数と一緒だわね
297デフォルトの名無しさん:2010/07/06(火) 15:07:06
>>294
実戦で役立つなら考案者が厨二でも邪気眼でも構わんが、これは正直微妙な感じ
他の人も指摘してる通り、ちょっとヲサレなグローバル変数以外の何者でもない罠

とは言え、相互作用する状態が大量発生するような手合いだと、Observerパターンでも苦しいのは事実
なんかうまい方法はないもんか
298デフォルトの名無しさん:2010/07/06(火) 15:28:57
なんかレベル低いことをわざわざ敷居高くして難しく書いてるだけな気がする。
299デフォルトの名無しさん:2010/07/06(火) 16:35:04
>>280
http://msdn.microsoft.com/ja-jp/library/ms173266.aspx
DllMainではマネージコードを実行してはいけないという制限があるので
「C#では不可能」というのが答えだな
C++/CLIでそこだけネイティブコードのみで実装する必要がある
300デフォルトの名無しさん:2010/07/06(火) 17:19:05
>>292
一つ前の記事の日本語でテスト名は書けというのは共感出来た。
ビジネスロジックのテスト名はそっちの方がわかりやすいしね。
301デフォルトの名無しさん:2010/07/06(火) 17:36:41
だね
302292:2010/07/06(火) 17:58:00
皆THX.
アレは文中でもある通り、DBの簡易代替に過ぎないんだろうな。

>>300
まあテスト名くらいは許容できるが、変数名を日本語で書くのは俺はあかん。
インテリセンス使えねえじゃん。
303デフォルトの名無しさん:2010/07/06(火) 18:51:18
あかんね
304デフォルトの名無しさん:2010/07/06(火) 19:13:21
変数全部に/// <summary>と/// <remarks>を。
305デフォルトの名無しさん:2010/07/06(火) 19:43:28
日本語使うとインテリセンス使えないんだっけ?
使えたように思ったけど気のせいか
306デフォルトの名無しさん:2010/07/06(火) 19:58:50
変換して確定しないと候補が出てこないんだから、インテリセンスの意味なし。
307デフォルトの名無しさん:2010/07/06(火) 20:01:19
候補が出てこない訳じゃないだろう
ピリオド打った後カーソルキー上下とかスクロールつまみ動かすとか
まあインテリセンスのメリット低下は確かだが
308デフォルトの名無しさん:2010/07/06(火) 20:10:16
そうだね
309デフォルトの名無しさん:2010/07/06(火) 20:35:39
>>292
もう中身以前にい近づきたくない感じ
310デフォルトの名無しさん:2010/07/06(火) 20:41:00
>>306-307
そこでイニシャル付き変数ですよ。k金額とかn日数とか。
というか、日本語の変数名を簡単に検索できるアドインを作ったら結構受けるかもな。
311デフォルトの名無しさん:2010/07/06(火) 21:20:13
migemoを組み込むってことか?
312デフォルトの名無しさん:2010/07/06(火) 21:23:28
川俣に期待するなと・・・
313デフォルトの名無しさん:2010/07/06(火) 21:36:21
なんで?
314デフォルトの名無しさん:2010/07/06(火) 21:41:06
匿名掲示板のレスにいちいち理由なんて期待するなと・・・
315デフォルトの名無しさん:2010/07/06(火) 21:53:36
>>313
やってることがいろいろと可笑しすぎる。
316デフォルトの名無しさん:2010/07/06(火) 22:15:34
MVVMのView側って何書くの?
Command Binding出来ないDragDrop系とか?
317デフォルトの名無しさん:2010/07/06(火) 22:23:00
Modelに依存しない処理。
Click系のコマンドでViewの操作のみならViewModelに書かずViewの中で完結する。
DragDropの事後処理等でModelに依存するコードがあるならその部分だけViewModelに書く。
無いならViewで完結。
間違ってもView内のハンドラでModelを触らない事。
318デフォルトの名無しさん:2010/07/06(火) 22:23:18
某スレに載ってたんですけど、
Jane Style 3.4 を使って2chに書込みをすると
C:\\Document And Setting\【スズキ タロウ】
という部分の文字列までパケット送信してるらしいのですが、
誰か逆アセンブルして解析した方はいますか?


※前々から2ch専用ブラウザは怪しいと言われていたのですが・・・

場合によっては警視庁ハイテク化にアプリとソースを引き渡します。
319デフォルトの名無しさん:2010/07/06(火) 22:24:22
>>299
マジレス感謝m(_ _)m
キーロガー作ってプロセスを隠蔽しようと思ったらやっぱC#じゃ無理か・・・
がんばってC++勉強します。。
320デフォルトの名無しさん:2010/07/06(火) 22:25:11
>>317
MVPレベルキタコレ!
凄くわかりやすかったです
サンクス
321デフォルトの名無しさん:2010/07/06(火) 22:30:01
またこいつか
322デフォルトの名無しさん:2010/07/06(火) 22:41:03
MVPと言えばいつも見てる高スキルのブロガーが落ちてたな
かと思えば何もしてない人が選ばれたり…
あれの選別基準がいまいちわからん
323デフォルトの名無しさん:2010/07/06(火) 22:43:58
あれは、コミュニティを運営してる人、もしくはライター。
Most Valuable Professionalとは名ばかり。
324デフォルトの名無しさん:2010/07/06(火) 22:45:15
むむむ…
そう言う事か…
325デフォルトの名無しさん:2010/07/06(火) 22:47:58
オレも以前受賞したことあるけど、雑誌に記事書いてたのが評価されたみたい。
他にはとくに活動してなかったし。
326デフォルトの名無しさん:2010/07/06(火) 23:47:43
>>316
きっちりやれば、たいていの場合XAMLしか残らない。
C# 側は、テンプレ通りの InitializeComponent() のみに。

全く持ってその通りで、一部の Command Binding できないものとかのために
しょうがなく View の分離コードに何か書く。
327デフォルトの名無しさん:2010/07/06(火) 23:52:33
MVP の評価基準が、やっぱ露出度で計られるんで。
(「MS に対する貢献」って言い方されるけども、結局それは好意的な記事の露出。)
コミュニティ運営と、編集の校正入るウェブ記事は評価高いっぽい。

ああ、あと、MS Connect へのフィードバック数とか、
フォーラムでの書き込みすうとか。

最終的に評価は米本社側でやるんで、
検索でどれくらいの位置、PV いくら、執筆本数いくら、会員数いくら
とか、客観的な数字がある方が受けるみたい。
328デフォルトの名無しさん:2010/07/06(火) 23:56:09
>>318
の質問誰か答えてちょ
329デフォルトの名無しさん:2010/07/06(火) 23:57:14
コピペ君って馬鹿だな、まで読んだ。
330デフォルトの名無しさん:2010/07/07(水) 00:14:17
>>328
自分でパケットキャプチャしろ
331デフォルトの名無しさん:2010/07/07(水) 00:18:09
>>328
応援してるよ頑張ってね
332デフォルトの名無しさん:2010/07/07(水) 00:25:08
>>328
333デフォルトの名無しさん:2010/07/07(水) 00:27:29
ここは328を応援するスレになりました
334デフォルトの名無しさん:2010/07/07(水) 00:46:39
>>328
逆アセしなくてもwiresharkのようなソフトで通信をモニターすればいいんじゃね?
まあ個人名称をそのままユーザーにしてる人もいるだろうから気持ち悪いよね
Styleは使ってないのでアレだがその情報はどこへ送ってるの?
335デフォルトの名無しさん:2010/07/07(水) 00:48:41
正直名前くらい漏れてもいい
336デフォルトの名無しさん:2010/07/07(水) 00:52:30
>>334
各板の鯖
Reflectorでソース解析済み。

>>335
2chにはプロ固定がいるのをお忘れなく
337デフォルトの名無しさん:2010/07/07(水) 00:52:50
コピペ君にマジレスって....
っていうか、「送信してるらしい」ってどこの誰にだよ。
2chのサーバー?w
仮にそうだとして、どこぞのPCのユーザー名なんか収集して何の役に立つんだ?
それはソフトの作者にとって、犯してるリスクに見合うものなのか?

なわけないだろw
被害妄想狂の想像とちがって、お前さんの個人情報(にすらならんがユーザ名なんか)
になんか1円の価値もないよ。

こんなの小6レベルの推理力でわかる話だと思うが。
338デフォルトの名無しさん:2010/07/07(水) 00:56:18
>>336
> Reflectorでソース解析済み。
結論が出てるならそれでいいじゃん。
339デフォルトの名無しさん:2010/07/07(水) 01:07:25
>>337
2ch プロ固定 でググレ

そしたらなぜ不味いかが分かるはず。
340デフォルトの名無しさん:2010/07/07(水) 01:07:59
Jane Styleって.NET製じゃないよな
341デフォルトの名無しさん:2010/07/07(水) 01:16:59
プロ固定…。
んーなんかデジャブ。
前に見たのはオカルト板だったはず。
だからその手の都市伝説はあっちの板でやれ。
342デフォルトの名無しさん:2010/07/07(水) 01:30:14
>>340
Delphi
343デフォルトの名無しさん:2010/07/07(水) 01:30:53
スクロールバーについて質問をしたいのですが、
スクロールバーで値を変更したときに、
フォーム内のすべてのコントロールの表示位置を変更する様な
プログラムを組むのでしょうか?
それとも、根本的になんか、勘違いしているでしょうか?
344デフォルトの名無しさん:2010/07/07(水) 01:34:49
Jane StyleはDelphiのはずだが>>336はReflectorで何を見たんだ…?

これはマジでオカルト板の出番かもしれん
345デフォルトの名無しさん:2010/07/07(水) 01:47:19
>>343
Panelとかの上に全てのコントロールを乗っけてPanelだけ動かす
まあ普通はAutoScroll使う
346デフォルトの名無しさん:2010/07/07(水) 01:49:15
>>340
ReflectorはDelphi対応みたいね

Delphiって中間コード持つような言語だっけ?
347デフォルトの名無しさん:2010/07/07(水) 01:50:33
>>336
気になるならスパイウェアのような挙動をするとしかるところへ報告しておけばいいんじゃね?
ローカルのアカウントに個人名使ってればIPとひも付きでデータが集まるしなあ
その程度だとそれほど価値はないがそういう兆候があるってことは
そのうち何かやりかねないので注意を促すと言う意味では動いた方がいいかもしれない
ソフトの監視という意味でね
利用者多いし
348デフォルトの名無しさん:2010/07/07(水) 01:51:57
あふぉか
349デフォルトの名無しさん:2010/07/07(水) 01:52:38
というのは>>346あて
350デフォルトの名無しさん:2010/07/07(水) 02:01:16
Reflectorで見れるのはDelphi.NET。
(2003年に出たDelphi 8から.NET対応の製品がリリースされてる。)

ネイティブコンパイルされるDelphiは.NETと無関係なのでReflectorでは見れない。

Jane Styleは後者。
351デフォルトの名無しさん:2010/07/07(水) 02:15:40
C#とは関係ないな。陰謀論は他でやれ
352デフォルトの名無しさん:2010/07/07(水) 02:18:10
>>345
ありがとうございました。
オートスクロールってプロパティ、
2002年のバージョンのc#には無かったですよね?
確か、そんな気がしましたが。
最近乗り換えたもので。
353デフォルトの名無しさん:2010/07/07(水) 02:49:29
Left,Top,Width,Heightと4つそろった構造体は標準で用意されてませんか?

Pointは二つ(X,Y)のみなので、これの4カ所バージョンを探しています。
354デフォルトの名無しさん:2010/07/07(水) 02:52:33
RectangleとかRegionとか
355デフォルトの名無しさん:2010/07/07(水) 02:55:10
Regionは気のせい
356デフォルトの名無しさん:2010/07/07(水) 02:56:06
出来ればSharp系のクラスではなく構造体で・・・
357デフォルトの名無しさん:2010/07/07(水) 03:00:53
これ構造体だったはず

>.NET Framework クラス ライブラリ
>Rectangle 構造体

>四角形の位置とサイズを表す 4 つの整数を格納します。より高度な領域関数を使用する場合は Region オブジェクトを使用します。

>名前空間: System.Drawing
>アセンブリ: System.Drawing (system.drawing.dll 内)
>構文
>[SerializableAttribute]
>[ComVisibleAttribute(true)]
>public struct Rectangle

http://msdn.microsoft.com/ja-jp/library/system.drawing.rectangle%28v=VS.80%29.aspx
358デフォルトの名無しさん:2010/07/07(水) 03:02:08
>>357
そですた…。
WPFやってるとごっちゃになるから勘違いしてしまったorz
サンクス。
359デフォルトの名無しさん:2010/07/07(水) 06:59:42
>>352
バージョン情報
.NET Framework
サポート対象 : 4、3.5、3.0、2.0、1.1、1.0

>>358
WPFにだってRect構造体があるし(こっちは各要素がdouble型だが)
360デフォルトの名無しさん:2010/07/07(水) 07:30:45
>>359
みつけた。サンクス。
361デフォルトの名無しさん:2010/07/07(水) 09:08:13
#include<stdio.h>
struct kou{
int ZAHYO data[4];
double data[3].x=(data[0].x+data[1].x+data[2].x)/3;
double data[3].y=(data[0].y+data[1].y+data[2].y)/3;
};

void main(void)
{
int data[4],i;
for(i=0;i<4;i++);
data[i]=(data[i].x,data[i].y);
printf("重心=(%f,%f)"data[3].x,data[3].y);

return 0;
}
これエラーが12個でるんだがそのエラーを消したい。手伝ってくれ
ちなみに問題は構造体を使って平面上の3点の座標を入力して三角形の重心を求める問題だ
362デフォルトの名無しさん:2010/07/07(水) 09:09:52
お断りします
363デフォルトの名無しさん:2010/07/07(水) 09:35:33
釣りだろw
スレタイ読めないバカがいるとは思えん
364デフォルトの名無しさん:2010/07/07(水) 10:45:07
スレタイ読めるのか!すごいな!
365デフォルトの名無しさん:2010/07/07(水) 11:13:51
学者さんだよ
366デフォルトの名無しさん:2010/07/07(水) 14:16:15
しーしゃーぷ
しーしゃーぷ
しーなんばー
そうだんしつ
ぱーとろくじゅう
367デフォルトの名無しさん:2010/07/07(水) 14:31:55
VIPPERはム板へ立ち入り禁止
368デフォルトの名無しさん:2010/07/07(水) 14:32:08
泣いた
369デフォルトの名無しさん:2010/07/07(水) 15:32:30
[]をオーバーライド?するにはどうすれば?
検索しても出てこないんですが
class AがあったらB=A[0];みたいなアクセスがしたいんです
370デフォルトの名無しさん:2010/07/07(水) 15:36:26
>>369は解決しましたが
foreach inに対応する方法がわかりませぬ
371デフォルトの名無しさん:2010/07/07(水) 15:36:42
できるよ、オーバーライドではない方法でだ。
プロパティ関連をしらべろ。
372デフォルトの名無しさん:2010/07/07(水) 15:39:14
List<A>から派生されたら出来た
373デフォルトの名無しさん:2010/07/07(水) 15:41:29
>>370
IEnumerable<T>インターフェースを実装すれば対応する
374デフォルトの名無しさん:2010/07/07(水) 15:46:48
IList<T>じゃねーの
375デフォルトの名無しさん:2010/07/07(水) 15:50:59
おいおい…
376デフォルトの名無しさん:2010/07/07(水) 15:54:07
あーごめん最初の質問しか読んでなかった
377デフォルトの名無しさん:2010/07/07(水) 17:02:36
http://homepage3.nifty.com/kons/hidemaru/helpsite/hidemac/html/200_Dll.htmlのDLL側の関数の作り方 を参考に
C#を使って秀丸エディタのマクロから呼び出すDLLを作ってます。
内容は秀丸マクロからDLLを呼び出して1234(数値)を返す動作です。
test.cs(以下の4行の内容)をコンパイルしてtest.dllを作成しました。
class Test{
static int Main(){return testNum();}
public static int testNum() {return 1234;}
}
これを秀丸マクロで以下のようにして呼び出してmessageで1234と表示させたいのですが「dllfunc関数で指定された呼び出し先が見つかりません」エラーが出ました。なお、秀丸マクロからDLLの読み込みは出来てました。
$dll = "test.dll";loaddll $dll;#a = dllfunc("Test");freedll;message str(#a); // 秀丸マクロ

test.csをどのように書き直すと良いでしょうか?どなたかご教示お願い致します。
378デフォルトの名無しさん:2010/07/07(水) 17:03:47
ネイティブからマネージのDLLってよべるんだっけか?
379デフォルトの名無しさん:2010/07/07(水) 17:06:59
COMにするかC++/CLIはさむかしないと
380デフォルトの名無しさん:2010/07/07(水) 17:22:13
逆P/Invokeと言う手法もないわけではない
381デフォルトの名無しさん:2010/07/07(水) 19:33:10
素人の集まりか
呼べないわけないだろ
382デフォルトの名無しさん:2010/07/07(水) 20:05:01
そうやって煽っても無い袖は振れませんので^^;
383デフォルトの名無しさん:2010/07/07(水) 20:05:05
.NETのアセンブリにネイティブのエントリポイントを作成して呼べるようにするのも
不可能じゃないんだけど、一筋縄じゃいかない。
秀丸のマクロから呼ぶのが目的ならCOMのサーバを作るのが手っ取り早いでしょ。
384デフォルトの名無しさん:2010/07/07(水) 20:46:25
ホストAPIでCLRバージョン指定してアプリケーションドメイン作ってマネージランタイム読み込んで
実行。終わったらアプリケーションドメインは解放してやらんとDLLがアンロードされないので注意。
とかメンドイわ!やっぱ言うとおりCOMでやるのが一番だな。
385デフォルトの名無しさん:2010/07/07(水) 23:47:09
うん
386デフォルトの名無しさん:2010/07/08(木) 00:31:56
素直にC++でやった方が遥かに簡単で軽快なコーdうわやめなにを
387デフォルトの名無しさん:2010/07/08(木) 01:44:34
まあな。処理内容にもよるけど。
まさか実際に定数を返すだけなんてこともあるまい。
388デフォルトの名無しさん:2010/07/08(木) 04:05:23
NetWorkStreamクラスのReadメソッドの引数に byte[4096] の変数を指定したら応答なしになってしまいました。
散々動かないと悩んでbyte[1024]にしたら直ったんですが4096の配列というのは大きすぎるもんなんでしょうか?
389デフォルトの名無しさん:2010/07/08(木) 05:58:34
リソースファイルで、テキストファイルがあるとします。
そのプログラムが実行中に、自分のリソースファイルの
テキストファイルを開いて書きこんで保存すると言う事が、
できるのでしょうか?
その他、画像リソースファイルなども。
390デフォルトの名無しさん:2010/07/08(木) 06:06:48
リソースを書き換えはできない
391デフォルトの名無しさん:2010/07/08(木) 06:16:17
ばぁぶぅ
392デフォルトの名無しさん:2010/07/08(木) 14:01:16
すみません以下のコードで例外が発生するんですが、
何が悪いのかわからないのですが・・・

//確実に数値化する
private int SetNum(string str)
{
try
{
int num = int.Parse(str);
return num;
}
catch (System.FormatException)
{
return 0;
}
}
お願いします。
393デフォルトの名無しさん:2010/07/08(木) 14:03:58
あ、上のコードなんですが
int num = int.Parse(str);
の部分でブレイクします。。。
394デフォルトの名無しさん:2010/07/08(木) 14:05:00
TryParse使うべき
395デフォルトの名無しさん:2010/07/08(木) 14:06:27
catchの()いらないんじゃね
396デフォルトの名無しさん:2010/07/08(木) 14:07:08
普通に動くけどどういう状況でどうなるんだ?
397デフォルトの名無しさん:2010/07/08(木) 14:07:27
>>394 >>395
なるほど迅速で正確なご回答ありがとうございました。
398デフォルトの名無しさん:2010/07/08(木) 14:09:13
>>396
strに "" が入ってきた時ですね。
2008expでは動いてたんですけど
2010proに代えてから初回例外が発生するようになって
どうやらここがおかしいっぽいという感じですハイ。
399デフォルトの名無しさん:2010/07/08(木) 14:09:16

private int SetNum(string str)
{

int res;

if(int.TryParse(str,out res) == false)
return 0;
else
return res;

}

こんなのとかかな?

そもそも例外発生するのは文字列が悪いと思うが、どんな文字列を渡してるんだ? 
400デフォルトの名無しさん:2010/07/08(木) 14:09:30
少なくともSystem.OverflowExceptionとか
401デフォルトの名無しさん:2010/07/08(木) 14:10:58
なんかJAVA的な書き方だな とオモタ
402デフォルトの名無しさん:2010/07/08(木) 14:11:15
どうでもいいが、Setとかメソッド名に使っておいて実体は型変換とかどういうことなの…
403デフォルトの名無しさん:2010/07/08(木) 14:13:29
>>402
シーッ
Getとか別の名前にする方がいいとかいっちゃダメッ 
404デフォルトの名無しさん:2010/07/08(木) 14:21:30
>>402
あ、なるほど。
そうですね。

とりあえず
//確実に数値化する
private int SetNum(string str)
{
int num = 0;
int.TryParse(str,out num);
return num;
}

として問題は回避できたっぽいです。

でもまだイミディエイトウィンドウに
'System.FormatException' の初回例外が mscorlib.dll で発生しました。
っていう文言が正確に数えてないんで分からないですが
100行以上くらい出てるんですがこれなんなんでしょ・・・。
2008expで開発してた時は出なかったんですが。。。
しかもエラーではない様子でプログラムはまともに動いてるように見えるし
この例外がどこで発生しているのかもわからないんです・・・(;ω;)
405デフォルトの名無しさん:2010/07/08(木) 14:26:56
2010はいいとしてターゲットのフレームワークはどれなんだろう。
4.0かしら?
406デフォルトの名無しさん:2010/07/08(木) 14:27:34
>>405
その通りです
407デフォルトの名無しさん:2010/07/08(木) 14:36:20
ちょっと俺も気になるから確かめてくる
408デフォルトの名無しさん:2010/07/08(木) 14:44:09
それと不思議な事なんですが
イミディエイトウィンドウにもろに表示されてるワケじゃない気がするんですよね。
イミディエイトウィンドウは上から順にメッセージが表示されると思うんですが
プログラムの立ち上げが終わった時点でイミディエイトウィンドウには何も表示されていない
部分までカーソルが下がってきてるんですよ。
それで、そのカーソルを上に持っていくと前述の通り大量の
'System.FormatException' の初回例外が mscorlib.dll で発生しました。
が表示されているという・・・。

状況としては
http://questionbox.jp.msn.com/qa3794467.html
この質問者の人に似ているかなあと。

加えて、すごく初歩的な質問でもうしわけないのですが
C#で開発者が設定できる1番最初のブレイクポイントってどこになるんでしょうか。
Program.csのMain()の
Application.EnableVisualStyles();
であってますかね?
というのもここでブレイクをかけて見ても既に上述の例外が発生していますもんで
http://gyazo.com/a0b4779e46074481ef531677d615af66.png(こんな感じです)
例外の発生している部分を突き止める事ができないな・・・っていう感じなんです。。。
409デフォルトの名無しさん:2010/07/08(木) 14:47:25
イミディエイトウィンドウではなくて出力ウィンドウではないんだろうか?
イミディエイトなら自分で出してるだけの気がする。

それはさておき、別にでないんだけどなぁ…
それって出力ウィンドウの右クリックで例外メッセージを表示しないようにしてただけとかそういう問題じゃなくて?

とりあえずソース

private void button1_Click(object sender, EventArgs e)
{ 
try
{
string text = "";
int res; 
if (!int.TryParse(text, out res)) res = -1;
System.Diagnostics.Debug.WriteLine(res);

}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message); 
}
 
}
410デフォルトの名無しさん:2010/07/08(木) 14:52:06
うおあ!
VSを再起動したら表示されなくなりました・・・。
僕がみていたのは皆さんにアドバイスされる前のコードで生成された
メッセージの履歴だったんでしょうか・・・^ω^;

411デフォルトの名無しさん:2010/07/08(木) 14:53:54
>>409さん
おそらく1番最初の int.Parse try{}catch{}で分けるという方法が
コンパイラの気に障っていた?ようですね・・・。

TryParseを使う事で例外の表示もなくなったようです。
どうも長々とスレ汚し、すみませんでした(^ω^;
ありがとうございましたー!
412デフォルトの名無しさん:2010/07/08(木) 14:55:03
(#^ω^)ビキビキ
413デフォルトの名無しさん:2010/07/08(木) 14:56:21
>>412
スマンお(^ω^;;
414デフォルトの名無しさん:2010/07/08(木) 15:01:35
>おそらく1番最初の int.Parse try{}catch{}で分けるという方法がコンパイラの気に障っていた?

そうではなく、テスト動作させてるときに空文字渡したとか言ってたから
キャッチはしているけど例外が発生したから表示されてたんじゃないか?

例外はコンパイルレベルで発生する代物ではないと思うんだ
415デフォルトの名無しさん:2010/07/08(木) 15:11:14
>>414
なるほどご明察です。
416デフォルトの名無しさん:2010/07/08(木) 15:22:47
■Jane Style 3.4 はスパイウェア
http://namidame.2ch.net/test/read.cgi/poverty/1278496905/

417デフォルトの名無しさん:2010/07/08(木) 16:30:03
>Reflectorでソース解析済み。
とか言って騒いでた馬鹿か。
418デフォルトの名無しさん:2010/07/08(木) 16:33:53
janestyleてドトネト制だったん?
delphiかとおもてた
419デフォルトの名無しさん:2010/07/08(木) 16:43:45
ヘルプにはDelphi 7.0 Professionalで開発したと書いてあるね
420デフォルトの名無しさん:2010/07/08(木) 16:47:06
>>413
( ^ω^)ゆるすおっ
421デフォルトの名無しさん:2010/07/08(木) 16:55:14
>>416
.netじゃねーよ……
422たった:2010/07/08(木) 17:21:18
.netじゃねーけど
Reflectorはdelphiに
対応してるみてーだなwwwww
ということはdelphiも
中間コード系の
言語なのかよ!?
あ!?
423デフォルトの名無しさん:2010/07/08(木) 17:39:55
>>422
8から
424デフォルトの名無しさん:2010/07/08(木) 17:41:13
っと、8からなのは.net frameworkに載ったのが8からね。
もともとPascal系は中間コード使ってる
425デフォルトの名無しさん:2010/07/08(木) 17:43:38
>>418>>419
無知
426デフォルトの名無しさん:2010/07/08(木) 17:56:11
>>422
無知な馬鹿
427デフォルトの名無しさん:2010/07/08(木) 18:17:39
オープンファイルダイアログと言うコントロールは、
前に使った時のフォルダのパスを覚えてて、
新しく開いたときに、前開いたときのフォルダを最初に見せてくれますが、
この情報は一体どこに覚えているのでしょうか?

普通にアプリケーション設定と同じ位置に覚えているのでしょうか?
428デフォルトの名無しさん:2010/07/08(木) 18:19:39
os
429デフォルトの名無しさん:2010/07/08(木) 18:37:21
http://www.atmarkit.co.jp/fdotnet/dotnettips/438winsettings/winsettings.html
例えばここにアプリケーション設定の記憶位置が書かれていますが、
そこと同じ様な場所なのだと考えても良いのでしょうか。
430デフォルトの名無しさん:2010/07/08(木) 18:38:22
os
431デフォルトの名無しさん:2010/07/08(木) 18:38:46
カレントドライブ、カレントディレクトリ
432デフォルトの名無しさん:2010/07/08(木) 19:05:02
>>429
はい、PCの中に記憶されてますよ。
433デフォルトの名無しさん:2010/07/08(木) 19:09:54
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32
434デフォルトの名無しさん:2010/07/08(木) 19:18:14
>>430-433
なるほど!
ありがとうございました!
435デフォルトの名無しさん:2010/07/08(木) 20:09:18
>>433
つまり、レジストリって事?

カレントなのかレジストリなのか、それとも、ユーザー設定なのか?
どこやねん。

お前らも本当は知らないんだろ。
別に知らないなら答えなくていいのに。

>>434
お前誰やねん。
436デフォルトの名無しさん:2010/07/08(木) 20:11:42
いまいちよくわかりません。
説明されているサイトなどに、誘導していただけませんでしょうか。

>>434-435
真面目に質問しています。茶化さないでください。
437デフォルトの名無しさん:2010/07/08(木) 20:15:07
とりあえず落ち着け
438デフォルトの名無しさん:2010/07/08(木) 20:16:46
>>435
(-3-)<Boo ナリスマシやめれ
439デフォルトの名無しさん:2010/07/08(木) 20:19:30
      / _ .::::ト、  ̄ ´ \  
     i \ ̄_ ̄_\   \
     l    )┼┼+(     |  あ゛あ゛っ!!
       /ヽ__ i\    i  ンダコラッ!!
       ヽ_     ̄__/   
         ̄''''‐'' ̄    
440デフォルトの名無しさん:2010/07/08(木) 21:12:58
>>433でなんでわからんの??
441デフォルトの名無しさん:2010/07/08(木) 21:15:07
イミディエイトウィンドウはデバッグ開始しても勝手にクリアされたりしないよ。
過去に出力された分はずっと残ったままになる。
イミディエイトに出力をリダイレクトする設定をしてなければデバッグ出力に出力される。
こっちはデバッグ開始するたびにクリアされる。

例外発生時にデバッガで停止するのは、まあわかってると思うけどデバッガの例外の設定。
442デフォルトの名無しさん:2010/07/08(木) 21:16:02
寝て起きたら書いてたコードが微妙に書き換えられててうまく動かなくなった
夢だったんだろうか、それとも夢遊病だろうか
夜中ちょっと目が覚めた時にパソコンがついてておかしいなとは思ったんだけど
超怖い
443デフォルトの名無しさん:2010/07/08(木) 21:20:21
>>442
ごめん。悪気はなかったんだ…
444デフォルトの名無しさん:2010/07/08(木) 21:27:42
>>440
つまり、レジストリなのですね。
解りました。
445デフォルトの名無しさん:2010/07/08(木) 21:42:37
コモンダイアログはコモンダイアログがやっていることだから基本的には考えなくていいと思う
446デフォルトの名無しさん:2010/07/08(木) 21:54:41
でも、例えばさ、そう言うのって、結局はさ、
自分の作ったプログラムを配布した場合、
ユーザーのパソコンの記憶領域を勝手にいじっちゃうわけでしょ?
いつの間にか勝手にレジストリをいじって記憶領域を減らすってのは
あまり良い気分じゃないよね。
まあ、実際殆ど問題無いけどさ。

レジストリを散々いじった挙句、そのソフトをもういらないからって削除した場合とか、
無駄な記憶だけが残るだけの結果になったりするじゃない。
なんか、そう言うのって気分悪いのさ。
447デフォルトの名無しさん:2010/07/08(木) 21:58:31
まあインストーラ付けないならアプリケーション設定は使うべきじゃないな
448デフォルトの名無しさん:2010/07/08(木) 22:01:52
コモンダイアログから随分話が飛んでるな
449デフォルトの名無しさん:2010/07/08(木) 22:02:19
わしのは、エクスプレス板だから、
ついて無いのじゃ。
確かにインストーラーがあるなら、
OSにアンインストールしてもらえば良いのだけど。
450デフォルトの名無しさん:2010/07/08(木) 22:04:27
ほぼ確実に朝になるとノートのバッテリが上がってたんだけど、イベントログ見たら
真夜中にWindowsのCEIPがなんかどっかに通信しようとしてコケてた(そのときLAN
ケーブル外してたんでエラーになってた)。
そのサービス殺してからは朝になってもバッテリが上がってることはなくなった。
何か関係してるのか?
451デフォルトの名無しさん:2010/07/08(木) 22:08:57
板違い。失せろカス。
452デフォルトの名無しさん:2010/07/08(木) 22:18:03
>>446
"コモン"コントロールを一体なんだと思ってるんだおまいわ・・・
453デフォルトの名無しさん:2010/07/08(木) 22:22:23
まあそんなのchmの設定保持とか他にもいくらでもあるわけで。
その程度のことを気にしてたら何もできない。
っていうか気にするだけ無駄。
454デフォルトの名無しさん:2010/07/08(木) 22:23:23
>>446
それは永久に残るものじゃないから
おまえ馬鹿だろ?
455デフォルトの名無しさん:2010/07/08(木) 22:27:21
記憶領域減らすw
ディスクの中にはいったいどの程度の無駄があるか知ってるか?
456デフォルトの名無しさん:2010/07/08(木) 22:33:18
わかってない奴ほど
どうでもいい細かいこと気にするの典型
457デフォルトの名無しさん:2010/07/08(木) 22:34:14
本当の「相談事」で申し訳ないが・・・。
O/Rマッパって何使ってる?

少し古めだけど一覧
http://d.hatena.ne.jp/aoki1210/20080416/p1
のリンクをざっと辿ってみた限りでは、S2Dao.NET + DBFluteがよさげ(特に定義ファイル書かなくていいのが楽そう)だと思ったんだけどね。
↑以外ではADO.NET Entity Framework が少し話題になってるみたいだけど、「これO/Rマッパぢゃねーし」とかゆー声もあるし・・・。
ってことで何かお勧めがあればプリーズ
458デフォルトの名無しさん:2010/07/08(木) 22:39:18
今夜バカ王が決まりそうな勢いだなw
459デフォルトの名無しさん:2010/07/09(金) 00:23:21
俺はエントリーするぜ!!
460デフォルトの名無しさん:2010/07/09(金) 01:05:39
>>454
いや、残るだろ。
意図的に削除したりしない限りは。
>>459
あんた、男らしいよ。
461デフォルトの名無しさん:2010/07/09(金) 01:16:18
OSが使うレジストリなんか気にしているお前は男らしくない。
462デフォルトの名無しさん:2010/07/09(金) 01:26:23
ある処理をしている間だけ、
numericUpDown_ValueChanged
イベントを発生させないようにするとかできるのでしょうか?
463デフォルトの名無しさん:2010/07/09(金) 01:30:43
>>462
フラグ用意してイベント内でスルー
とかにしとかないと後で見たとき
「イベントが発生しない!」とか
悩むかもよ
464デフォルトの名無しさん:2010/07/09(金) 01:49:48
>>463
解りました。
自前で実装します。
465デフォルトの名無しさん:2010/07/09(金) 02:27:02
イベントの発生の仕方について質問があります。

CPUがシングルか、マルチかで発生の仕方が変わったりするのでしょうか?

例えば、シングルだと、あるイベントが終わるまで他のイベントには移行しないが、
マルチだと、あるイベントが処理中に、もうひとつのイベントの処理が始まってしまうとか。

デバッガで追ってみると、値を変えた時に、バリューチェンジドイベントに
飛ぶときと飛ばない時があるのです。

466デフォルトの名無しさん:2010/07/09(金) 02:30:45
EXEで正常ならば問題無い
467デフォルトの名無しさん:2010/07/09(金) 05:06:37
わかりました。
468デフォルトの名無しさん:2010/07/09(金) 09:16:52
久しぶりに覗いたがこんな香ばしいスレだっけ?
469デフォルトの名無しさん:2010/07/09(金) 12:20:30
前から定期的に痛いの湧いてるじゃん
なりすましとか
470デフォルトの名無しさん:2010/07/09(金) 15:02:05
継承クラスをつくって空白のメソッドでオーバーライドする方法以外で、
Control.OnPaintとControl.OnBackgroundPaintの処理を無効にすることは
できないでしょうか?
471デフォルトの名無しさん:2010/07/09(金) 15:39:06
>>469
なりすまし乙
472デフォルトの名無しさん:2010/07/09(金) 15:39:21
派生クラス作ってWndProcオーバーライドしてWM_PAINTを無視する

何が不都合なのか分からんと答えようもないな
473デフォルトの名無しさん:2010/07/09(金) 15:42:40
わかる方だけ回答お願いします
474デフォルトの名無しさん:2010/07/09(金) 15:56:59
お礼は三行で
475デフォルトの名無しさん:2010/07/09(金) 16:08:22


がとう
476デフォルトの名無しさん:2010/07/09(金) 19:40:35
C#2.0でちょっとご相談
一つのファイルを複数ビューで表示させて、一つのビューで編集したら他のビュー全てに反映させたいんだけども
この場合、どんなパターン使えばいいかな
477デフォルトの名無しさん:2010/07/09(金) 19:43:27
3.5使えばWPFの標準的なパターンで実現できるのに。
とりあえず、変更の反映にはINotifyPropertyChanged。
478デフォルトの名無しさん:2010/07/09(金) 20:01:49
INotifyPropertyChangedに一票
479デフォルトの名無しさん:2010/07/09(金) 22:01:50
      _,, -- " ̄T ) ̄ ̄` --,,
      ,´      |く       `、
     ;       __,,=ミ" ̄ ̄ ̄``ヾj;
    .i      _,-"   `' - 、 ::::::::::::;;i
    .i    ,/  .,/; 三 ヾ ;;;\,  ::::::;;i
    .|   /   ソ;     '`、;  \、:::;;|
    .| ,/   ,=、       ,=、  ヽ、:;;|
    .トナ    i 0 i   ,;  ;i 0 i  .`ゝ:;;|
    .|1    .ゝイ   ,i、   ;ゝイ   :::;;|
    .i` - ____トi圭____ y"i
     ';                :::::;;'
      ` 、           :::::::_ ,´
        ` -- ,,____,, -- "
       /´`゛''''''ヾ、,;;- ‐'''' ""´``ヽ、
     ,i′,     ..:::;      、.  .::゙:、
     .,!、::i    ..::::::;   ....:::::::::i   ::::`:、
     ,i  ::| 。 .....:::::;;;;! ....:::::。::::;;;;!   :::::::i
.    ,! ;::::;、ー‐'''"´::`゛'''ー-‐'''":::、   ::::::|
.    / ,,,;;:::| |    :::.  ;;;:::::::::::::::;/`:、 , ;;::::l
   ,l′;:::::;! ;!-、_;-;__r-;_;-;、:::::::::;;i  !;;;' :゛i
.   l′;;:::::;! i!爻爻;Ov爻爻i!ー‐''::i  |` .:::|
   |  ;::::/ l!※《 WWE》※i!:::::::::::|  !、 :::;!
.  |___;::/  iヾ、゚・。⇔。・゚;;ノ;---‐'i.   i__.::;!
  i′`i′  ト、゛''ー-‐'''"::::::::::::;;;;;;!   ,!. ̄|
.  i´ ̄`i.  i′`:、:::::::::;;:::;;-‐''"::`i  ,;'"``'i
.  !、、;r; !.  l′  `ヽ;::::;;'"  .::::::::| l;ァ  .;!
  `゛''"′. |    ::`Y′  .:::::::::::i ゛''''"´
.       |    .:::::::i   :::::::::::::|
480デフォルトの名無しさん:2010/07/09(金) 22:04:43
コピペ君って馬鹿だな、まで読んだ。
481デフォルトの名無しさん:2010/07/09(金) 22:29:13
スパイウェアを仕込んでるJane Styleは危険です。

Google Adsense違反報告スレ Part10
http://pc12.2ch.net/test/read.cgi/affiliate/1267346244/

JaneStyleがスパイウェアみたいな動作するらしい件
http://namidame.2ch.net/test/read.cgi/poverty/1278496905/

【スパイウェア?】JaneStyleで書き込みしようとしたら、○○に情報が送信されていた件
http://tsushima.2ch.net/test/read.cgi/news/1278681871/

482デフォルトの名無しさん:2010/07/09(金) 22:38:07
板違い
483デフォルトの名無しさん:2010/07/09(金) 22:42:18
>>477-478
INotifyPropertyChangedってWPFご用達じゃ?と思ってMSDN見たら2.0からだったw
サンクス
484デフォルトの名無しさん:2010/07/09(金) 22:57:43
xmlファイルを読み込んで目的の要素を取得したいのですが、xmlファイルが

<hogehoge>
<pekepeke>
</pekepeke>
</hogehoge>
<hogehoge>
<pekepeke>
</pekepeke>
</hogehoge>

となっているとして、pekepekeの項目を上から順番に取得していくにはどうすればいいですか?
ttp://www.kisoplus.com/file/xml.html
を見てマネしたのですが、うまくいかなかったのです。
485デフォルトの名無しさん:2010/07/09(金) 23:05:24
うまくいかなかったとだけ言われても困る
XMLのサイズがよほど大きくない限りはXDocumentにロードしてLINQ to XMLとかで検索だな
486デフォルトの名無しさん:2010/07/09(金) 23:06:28
何がうまくいかなかったのかも書かないのか。誰も答えられないぞ。
487デフォルトの名無しさん:2010/07/09(金) 23:23:19
>>484
そのままだとroot要素がないぞ。

<root>
 <hogehoge>
  <pekepeke>
  </pekepeke>
 </hogehoge>
 <hogehoge>
  <pekepeke>
  </pekepeke>
 </hogehoge>
</root>

の間違いじゃないのか?
488デフォルトの名無しさん:2010/07/09(金) 23:27:36
XmlReaderを直接使うのは初心者にはかなり難しいし
慣れてても非常に面倒なのでLINQ to XMLかDOMを使いましょう
489デフォルトの名無しさん:2010/07/09(金) 23:29:40
横レスだけど煩雑なXmlReaderから開放されるなら今まで避けていたLINQ勉強しますね
490デフォルトの名無しさん:2010/07/09(金) 23:35:37
LINQ to XMLはあんまりLINQとは関係ない
LINQ to Objects向けに新しく作られた使いやすさ重視のシンプルなDOMライブラリ
もちろんLINQ使えば便利だけどLINQ使わなくても非常に扱いやすい
491デフォルトの名無しさん:2010/07/10(土) 00:44:35
いやー、LINQ って言葉の指す範囲広いよ。
クエリ式のことでもあるし、
Where とかSelect とかの関数名規約でもあるし、
IEnumerable 返すように設計されたデータ読み書きライブラリのことでもあるし。
492デフォルトの名無しさん:2010/07/10(土) 00:48:45
スパイウェアを仕込んでるJane Styleは危険です。

Google Adsense違反報告スレ Part10
http://pc12.2ch.net/test/read.cgi/affiliate/1267346244/

JaneStyleがスパイウェアみたいな動作するらしい件
http://namidame.2ch.net/test/read.cgi/poverty/1278496905/

【スパイウェア?】JaneStyleで書き込みしようとしたら、○○に情報が送信されていた件
http://tsushima.2ch.net/test/read.cgi/news/1278681871/


■Google Adsense 違反通報URL
https://www.google.com/adsense/support/bin/request.py?contact=violation_report


※個人情報漏洩による被害者をこれ以上出さない為に、
 このコピペを見つけた方は一人5箇所以上にコピペをお願いします。
493484:2010/07/10(土) 00:54:27
「ルート要素が2つあります。行5、位置2です。」

と出るのです。
494デフォルトの名無しさん:2010/07/10(土) 00:56:40
アホかおまえ
495デフォルトの名無しさん:2010/07/10(土) 01:03:01
496デフォルトの名無しさん:2010/07/10(土) 01:16:21
>>493
htmlファイルにhtmlタグがないのと同じ失敗だよ
497デフォルトの名無しさん:2010/07/10(土) 01:33:22
>>483にタイミング外した便乗質問
同じく2.0のListViewのLargeIconモードでデータバインド出来る?
ImageList側のやり方が分からない・・・
498デフォルトの名無しさん:2010/07/10(土) 01:41:11
>>496
4.01 Strictでもhtmlタグは省略できるような…?

>>497
System.Windows.Forms.ListViewはデータバインディングをまともには使えないはず
499デフォルトの名無しさん:2010/07/10(土) 02:06:14
>>498
あーやっぱ無理かー
ListViewでなくてもアイコン敷き詰めてスクロール&クリック出来るコンテナあればいいんだけど
2.0だと無いかねえ
500名無しさん@そうだ選挙に行こう:2010/07/10(土) 09:03:18
>>49
無駄なんじゃない?

>(クレームをつけられたネタであったため、記事の内容を少し改変し、UPし直します。
>前の記事も間違ってないと思っていますが、他の方々への配慮だと思い、改変版をUPします。)
ttp://techbank.jp/Community/blogs/mymio/archive/2010/07/04/27368.aspx

ああ、もう突撃とかすんなよ。
また消されたりしたらつまらんだけだ。
501名無しさん@そうだ選挙に行こう:2010/07/10(土) 09:11:33
あからさまにおかしいと指摘された部分は、
指摘の方がおかしいことにしつつ、大人の態度でw配慮して
実は見れなくしてしまうという高度な逃げ技
502名無しさん@そうだ選挙に行こう:2010/07/10(土) 16:05:32
コメント不可にすればいいだけなのに
503名無しさん@そうだ選挙に行こう:2010/07/10(土) 16:14:15
本当に全く何の意味も無い比較
struct Array2 { public int Item1; public int Item2; }と配列を比べて
前者の方がnewが速いから前者を使いましょうと言っている
MSに報告するべきだな
それはともかく、BitArrayはわかるけどBitVectorって何のためにあるんだろう
インデクサがビットの位置じゃなくてマスクになってるけど
ビットマスクがわかるんだったらBitVectorなんか使わずにビット演算使うだろ普通
504名無しさん@そうだ選挙に行こう:2010/07/10(土) 16:15:17
ネットwatch板でやれよ邪魔だから
505名無しさん@そうだ選挙に行こう:2010/07/10(土) 16:21:11
ネットストーカー君にそんなこと言っても無駄だと思うけどねw

俺が炎上させているのではない。
炎上するようなことを書くあいつが悪いのだ、

ってな具合の超「前向キング」な思考をするのがネットストーカー諸氏だからw

506名無しさん@そうだ選挙に行こう:2010/07/10(土) 16:42:22
前向キングってなに?
507名無しさん@そうだ選挙に行こう:2010/07/10(土) 16:49:32
>>505
なに?
508名無しさん@そうだ選挙に行こう:2010/07/10(土) 17:01:00
いまきた俺でもわかるように三行でまとめて
509名無しさん@そうだ選挙に行こう:2010/07/10(土) 17:01:40
読むだけ
時間の
無駄
510名無しさん@そうだ選挙に行こう:2010/07/10(土) 17:05:51


511名無しさん@そうだ選挙に行こう:2010/07/10(土) 21:10:04
あるクラス内で記述する関数の宣言に、以下の規約を
設けようと思う。

このクラス内に記述する関数は、すべて、
string型の引数をもち、string型の値を返す。

C#の言語仕様上で、そういう規約を強制させるような
仕組みは設けられるだろうか?
512名無しさん@そうだ選挙に行こう:2010/07/10(土) 21:14:45
むり
513名無しさん@そうだ選挙に行こう:2010/07/10(土) 21:24:45
インターフェイスでやる(拡張された分についてはどうしようもない)か、
属性やらリフレクションやらで実行時に検査、かなぁ。
514名無しさん@そうだ選挙に行こう:2010/07/10(土) 21:30:10
そもそも何故そんな規約を設けたいのか分からんけど
リフレクションでアセンブリ読み込んで規約違反がないかチェックするツールでも作ったらいいんじゃね。
ビルド後イベントで自動実行するようにしとけば完璧。
515名無しさん@そうだ選挙に行こう:2010/07/10(土) 21:37:28
FxCopでカスタムルール作れば
516名無しさん@そうだ選挙に行こう:2010/07/10(土) 23:12:50
ある晴れた昼下がり 市場へ続く道…(T_T)
517名無しさん@そうだ選挙に行こう:2010/07/11(日) 01:58:54
これまでにYahoo等のアカウントに

HTMLDoc = objeBrowser.Document

を使用して自動ログインするツールを作っていたのですが、
ID・PASSの入力フォームをJavaScrioptでページロード時に
生成されているページの場合には自動でログインさせる事が出来ません。

どうすれば良いのでしょうか?
518名無しさん@そうだ選挙に行こう:2010/07/11(日) 08:17:40
何かとコーディング規約を制定したがる人が多いが大抵は徒労に終わる。
519名無しさん@そうだ選挙に行こう:2010/07/11(日) 08:27:20
POSTしてクッキー保存とかできないの?
520名無しさん@そうだ選挙に行こう:2010/07/11(日) 15:20:06
ControlクラスのDoubleBufferedをtrueにし、
Paintイベントで同じ範囲をFillRect(赤)→FillRect(白)とした場合、一瞬赤色が見えるのは何故なのでしょうか。
Paintイベントで引数に渡ってくるGraphicsオブジェクトは2次バッファの物では無いの?
521名無しさん@そうだ選挙に行こう:2010/07/11(日) 16:30:51
>>518
そして中途半端に守ってるのと守ってないのがでてくるせいで
StrHogehoge と Hogehoge と HogehogeString が混在する現場になるんだよな。
522名無しさん@そうだ選挙に行こう:2010/07/11(日) 17:49:14
Dictionary<,>.GetValueOrDefaultがほしい
TryGetValueはなんか思考を中断される
523名無しさん@そうだ選挙に行こう:2010/07/11(日) 18:00:18
>>522
拡張メソッドで作れないか?
524名無しさん@そうだ選挙に行こう:2010/07/11(日) 18:44:13
>>522
レベルの低い質問者は初心者スレに行け!
マジウザイ
525名無しさん@そうだ選挙に行こう:2010/07/11(日) 18:52:44
>>522
非ジェネリックのIDictionaryだとインデクサが例外投げずにnull返すけど、
それもなんだかなぁって感じだしな

>>523
その程度の汎用的でメジャーな機能くらいフレームワークで用意しろってことじゃないのか
似たようなものだと、ParseOrDefaultとかも用意して欲しいかな
526名無しさん@そうだ選挙に行こう:2010/07/11(日) 19:20:28
ParseOrDefaultなんかいらないよ
527名無しさん@そうだ選挙に行こう:2010/07/11(日) 20:17:14
自分で拡張メソッド書けば。標準では不要。
528名無しさん@そうだ選挙に行こう:2010/07/11(日) 20:28:49
TryParse はいちいち out 用の変数用意しなきゃいけないのがめんどくせえ
529名無しさん@そうだ選挙に行こう:2010/07/11(日) 20:35:11
Parseで例外が投げられるよりましだろ
530名無しさん@そうだ選挙に行こう:2010/07/11(日) 20:38:53
確実に例外が投げられないことがわかっているならParse使えばいいよ
531名無しさん@そうだ選挙に行こう:2010/07/11(日) 20:41:46
http://support.microsoft.com/kb/957851/ja

こんな話もあるけどな。
532名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:26:24
>>520
フォームの DoubleBuffered を true にして、
Paintイベントに以下を書いたら赤は見えなかったよ

private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.FillRectangle(Brushes.Red, e.ClipRectangle);
g.FillRectangle(Brushes.White, e.ClipRectangle);
}
533名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:35:43
引数にIDictionary渡す時は何が適切なの?
IList系だとparams 配列 みたいなのが定番だけどIDictionaryはそのまま参照型のまま渡すの?
534名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:38:44
普通IListはIListのまま渡す
IListとparamsがどう関係あるのか知らないけどparams引数はかなりレア
IDictionaryはあまり使わない
535名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:49:14
>>534
そなの?
前、MSの中の人にきいたらIList系は配列型で渡して、params可能ならつける方がいいと言われたよ。
.Netのクラスライブラリもそのポリシーで設計されてるみたい。

今はその人と連絡とれないからIDictionaryはどうなのかと思ったんだけど…。
536名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:50:24
>>531
日付のカルチャ情報は国が違うだけでなく、日付表示を和暦にしたとかだけで影響を受ける場合があるので常に明示的に指定したほうがいいよ。
数値も小数点がカンマという国が結構あるので気をつけたほうがいいし。
537名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:54:05
んなこたー知ってる。>>531の問題は、そういう話じゃない。
538名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:55:26
class myClass{
int a;
public myClass(int num){
a = num;
}
}

class myClass2{
[System.Xml.Serialization.XmlArrayItem(typeof(myClass))]
ArrayList array;
public myClass2(){
array = new ArrayList();
array.add(new myClass(0));
array.add(new myClass(1));
array.add(new myClass2));
}
public void saveXML(){
//XMLファイルに保存する
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeofmyClass2);
System.IO.FileStream fs = new System.IO.FileStream(@"c:\abc.xml", System.IO.FileMode.Create);
//エラーが発生する
serializer.Serialize(fs, this);
//閉じる
fs.Close();
}
}
といった感じにプログラムを書いたのですが
これを逆シリアル化するさいにクラス内にpublic void loadXML()という関数を作って
arrayの中にデータを入れたいのですがどうやってやればいいんでしょうか・・・。
myClass2としてロードすればできるんですがそうするとクラス内に作れないしで・・・。
539名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:56:17
>>534
IList は、メソッドの中で Add とか呼ばれちゃう可能性あるからなぁ。
それを意図しない場合は IEnumerable の方がいいかと。

>>535
今思えば、params は配列型じゃなくて IEnumerable<T> にしてた方がよかったと思うけどね。
まあ、1.0 の頃と今では IEnumerable の地位が大分変ってるんでしょうがないけど。
540名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:56:17
>>535
クラス作成して配列で渡すのが慣わし。
例としてEventArgs等がある。
541名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:00:44
>>539
なるへそ。
オライリーなんかの本だとそうしてるね。

>>540
ふむふむ、イミュータブルなクラスでやり取りする事になるのか。
542名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:02:38
UDPでTCPを模倣してみたがやっぱこういう処理はC#じゃ遅すぎるな
543名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:05:37
ネットワークの処理が遅いとか実装が糞なだけだろ。
544名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:06:15
>>538
staticにする
545名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:12:53
あ、普通にロードしたのをキャストした後にほしい部分だけとりだせばおkでしたね・・・。
546名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:14:49
params付けた方がいいというのは全ての要素をその場で手渡しするような使い方を意図している場合の話だろ。
例えばXElementのコンストラクタはparamだけどそれはコードに階層構造をベタ書きするため。
元からあるリストを渡すためのメソッドならparams付ける意味ないでしょ。
547名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:23:00
だからベタ書き出来るように出来る事ならparamsつけましょって事でしょ。
付けたところで困る事はないしさ。
548名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:39:51
C#が遅すぎるんならSilverlight動画アドインなんて出来るわけないよな。
549名無しさん@そうだ選挙に行こう:2010/07/11(日) 23:01:59
string.Formatで「{0}以上{1}以下」みたいな文字を表示させるときに、
{0}や{1}を表示させない場合は「以上」「以下」も一緒に表示させなくしたい。

色々試してたら↓のコードが上手く行ったんだけど、
この方法ってアリ? たまたま上手く行ってるだけ?

public static void Main()
{
  Console.WriteLine(string.Format("{0}{0:以上}{1}{1:以下}", null, null));
  Console.WriteLine(string.Format("{0}{0:以上}{1}{1:以下}", 100, null));
  Console.WriteLine(string.Format("{0}{0:以上}{1}{1:以下}", 100, 200));
  Console.WriteLine(string.Format("{0}{0:以上}{1}{1:以下}", null, 200));
}

>100以上
>100以上200以下
>200以下
550名無しさん@そうだ選挙に行こう:2010/07/11(日) 23:10:04
>>548
Silverlightプラグインはほとんどネイティブコードだ
.NETをスクリプティングに使ってるだけで下層のメディア処理はネイティブコードに丸投げ
>>549
そういう仕様じゃなかったっけ
551名無しさん@そうだ選挙に行こう:2010/07/11(日) 23:18:06
そうなの?マルチプラットフォームって聞いてたから。
552名無しさん@そうだ選挙に行こう:2010/07/11(日) 23:21:51
移植するときはネイティブコード部分を入れ替えるだけで済むから
その上で動くマネージコードはマルチプラットフォームだよという意味
553デフォルトの名無しさん:2010/07/11(日) 23:40:26
>>550
ありがとう。見つけられた。

http://msdn.microsoft.com/ja-jp/library/0c899ak8.aspx
>その他
>上記以外のすべての文字
>文字が結果の文字列にそのままコピーされます。

色々鑑みて「 "{0:#,#'以上'}{1:#,#'以下'}" 」でイケそう。ありがとう!
554デフォルトの名無しさん:2010/07/12(月) 00:43:01
すみません。自分で関数を作りました。もし、戻り値をint型とするとき
成功したら0を返すのか1を返すのかで迷っています。

if文の条件判定でその関数を使う場合1を返したほうがいいですし、
なんかC言語のmain関数なんかは、正常終了の場合、0を返します。

どっちがいいのでしょうか?bool型を使うと簡単なのはわかりますが、int型を戻り値とする場合は
どちらのほうが的確でしょうか?
555デフォルトの名無しさん:2010/07/12(月) 00:49:42
どっちでもいいよ。
556デフォルトの名無しさん:2010/07/12(月) 00:50:59
初期値に0を持たせるのが普通。
その関数で正常終了と判定した後にどうなるかで変わるんじゃないかな。
知らんけど。
557デフォルトの名無しさん:2010/07/12(月) 00:52:54
成功失敗にint型とか仕事なら首に出来る仕様だな。
558デフォルトの名無しさん:2010/07/12(月) 00:54:37
C# なら void にして、失敗なら、例外を投げる。
559デフォルトの名無しさん:2010/07/12(月) 00:56:42
列挙型を返すのは?
560デフォルトの名無しさん:2010/07/12(月) 01:02:32
さあ
561デフォルトの名無しさん:2010/07/12(月) 01:06:42
もう S_OK でいいよ
562デフォルトの名無しさん:2010/07/12(月) 01:17:58
成功か失敗理由かでいいよ
563デフォルトの名無しさん:2010/07/12(月) 01:33:33
うん
564554:2010/07/12(月) 01:37:57
みなさん、どうもありがとうございます。

C言語の文字列操作関係の関数は成功すると0を返すみたいなので、それにならいます(><;)

いろいろと私のせいで議論してくれたみたいで、ありがとうございました(><;)
565デフォルトの名無しさん:2010/07/12(月) 01:42:36
うぜええええ(><;)
566デフォルトの名無しさん:2010/07/12(月) 01:50:25
なんでこんなレベル低いやつがこっちで質問してんだ
567デフォルトの名無しさん:2010/07/12(月) 01:51:51
>>554
C# で書くんなら絶対 bool にしろ。

C 言語とかとの相互運用目的なんだったら、非 0 が true。

main 関数とかの戻り値はあれ、エラーコードなのよ。
HasError == false だから 0。
568554:2010/07/12(月) 02:10:52
>>567
そうなんですね。非0がtrueの方がいいんですね。じゃあ、書き直します。

基本はbool でプログラムしてるんですが、ちょっとしゃれでC言語風に書いてみたいなあと思いまして・・

みなさん、スレ汚しすみません。初心者スレで聞けばよかったです。
569デフォルトの名無しさん:2010/07/12(月) 06:51:13
>>568
C言語は論理式で非0をtrueと扱う言語だから。
C#とかみたいにboolが用意されてる言語ならboolを使うべき。
570デフォルトの名無しさん:2010/07/12(月) 07:12:22
>>565
おはようございます(><;)
571デフォルトの名無しさん:2010/07/12(月) 07:25:28
おい馬鹿やめろ
572デフォルトの名無しさん:2010/07/12(月) 07:28:10
うわなにをする(><;)
573デフォルトの名無しさん:2010/07/12(月) 07:33:15
>if文の条件判定でその関数を使う場合1を返したほうがいいですし、
if(func()) return; /* エラー検出して強制終了とかの場合こうしねえか? */
574デフォルトの名無しさん:2010/07/12(月) 08:45:46
フォームアプリケーションで、ボタンを配置して
そこにフォーカスをあてた状態でリターンキーを押すのですが、
ボタンをおせません。マウスでクリックしたときのような
アニメーションも発生しません。
ボタンを押せるようにするにはどうすればいいでしょうか?
575デフォルトの名無しさん:2010/07/12(月) 09:30:34
そういう風に作ればいい
576デフォルトの名無しさん:2010/07/12(月) 11:30:25
C#2010のコード自動調整(自動でタブを追加したり
switch文を改行したりする機能)って有効にしたまま使ってる?

577デフォルトの名無しさん:2010/07/12(月) 16:48:58
オートフォーマット切るとか考えたこともないわ
コードのフォーマットにこだわって手修正したりする奴は迷惑なだけ
578デフォルトの名無しさん:2010/07/12(月) 18:38:16
デフォの括弧の位置だけは気に入らないけど。。。デフォのままで使ってる。
579デフォルトの名無しさん:2010/07/12(月) 18:48:22
そういや全てのソースを整形するにはどーすんの?
580デフォルトの名無しさん:2010/07/12(月) 19:48:06
返り値をboolで返すのも、IsXXXみたいな十分に明示的なネーミングのメソッドの場合は除くとして、
一般にはうんこだとされてる手法だと思うけど....
そんな程度の人が偉そうに命令口調で講釈垂れてるんだから嫌になるな
581デフォルトの名無しさん:2010/07/12(月) 19:50:15
> 一般にはうんこだとされてる手法だと思うけど....

思わない
582デフォルトの名無しさん:2010/07/12(月) 19:53:10
まあ、馬鹿な君ならそうでしょうとも
583デフォルトの名無しさん:2010/07/12(月) 19:54:38
一般に続く名詞はなんだろうな
584デフォルトの名無しさん:2010/07/12(月) 19:56:00
たとえばTryParseは成功したらTrue、失敗したらFalseだけど
>>580の命名規則にしたがってないからうんこメソッドだな
585デフォルトの名無しさん:2010/07/12(月) 20:07:19
Tell, Don't Ask原理主義者か?何事もほどほどに。
586デフォルトの名無しさん:2010/07/12(月) 21:27:17
最近だとHashSet<T>.Addは要素が重複してても例外を投げずにfalseを返す
587デフォルトの名無しさん:2010/07/12(月) 22:00:20
既にあるVC#プロジェクトでlinq-to-xmlを使いたく、まず最初に
  using System.Xml.Linq;
と宣言を追加しただけの状態でコンパイルしてみたのですが、
  型または名前空間名 'Linq' は名前空間 'System.Xml' に存在しません。アセンブリ参照が不足しています。
というエラーがでるのですが、どうすれば解決できるのですか?
588デフォルトの名無しさん:2010/07/12(月) 22:04:43
System.Linq.Xml.Linq.dllを参照設定に追加する
ターゲットフレームワークは.NET3.5か.NET4に設定する必要がある
589デフォルトの名無しさん:2010/07/12(月) 22:07:14
あきらめろ
590デフォルトの名無しさん:2010/07/12(月) 22:13:00
>>588
ありがとうございます。
対象のフレームワークは、.NerFramework3.5でした。
System.Linq.Xml.Linq.dllの参照設定とはどのようにやるのですか?
591デフォルトの名無しさん:2010/07/12(月) 22:15:29
ねーねー。なんで初心者スレ行かないの?
592デフォルトの名無しさん:2010/07/12(月) 22:21:04
ソリューションエクスプローラで参照設定を右クリックして参照の追加を選ぶ
.NETタブのSystem.Linq.Xml.dllを選んでOK
LINQ to XMLってちょっと癖があって結構難しいよ?
ちゃんとわかってる人のための便利なオモチャって感じ
593デフォルトの名無しさん:2010/07/12(月) 22:33:16
ちゃんとわかってる人のための便利なオモチャって感じだね
594デフォルトの名無しさん:2010/07/12(月) 22:40:03
>>592
おお!できました!
ありがとうございました!
595デフォルトの名無しさん:2010/07/12(月) 22:44:49
>>594
お役に立ててなによりです
596デフォルトの名無しさん:2010/07/12(月) 22:51:40
いえいえどういたしまして
597デフォルトの名無しさん:2010/07/13(火) 20:39:00
File.Replaceってsoruceとdestinationが同じドライブでないとダメなようだけど、
こんな使いにくい制限をわざわざ設けてる理由って何なんだろう。

ファイルを上書き保存する時なんかに、作業ディレクトリに一旦一時ファイルを
作ってから元のファイルを置き換える用途を当然想定してるんだと思ってたが、
こんな制限があったらこういう使い方できないよね。
598デフォルトの名無しさん:2010/07/13(火) 20:47:07
その用途ならMoveでもCopyでもいいだろ
599デフォルトの名無しさん:2010/07/13(火) 20:54:39
馬鹿っぽい(たぶん「ぽい」ではないんだろうが)物言い....
600デフォルトの名無しさん:2010/07/13(火) 20:59:40
>>597
物理的にファイル動かさなくて済むからでしょ。
601デフォルトの名無しさん:2010/07/13(火) 21:05:49
>>600
それは事実としては正しいけど、
それって>>597みたいな制限を正当化する理由になるかね?
602598:2010/07/13(火) 21:16:23
ファイルシステム上のエントリの参照先を変更するだけなんだから
当然ファイルの実体は全部同じボリューム上にある必要があるだろ
603デフォルトの名無しさん:2010/07/13(火) 21:18:39
>>602
言ってる意味分かってる?
だから、そういうシステムの都合があるにせよ、
そのシステムの都合をFile.Replaceに「押し付ける」理由をお聞きしてるわけですが。
604デフォルトの名無しさん:2010/07/13(火) 21:29:48
>>603
MSに聞けとしか。

想像だけどアトミックな操作に使ってくれ(そしてそれは物理ボリュームが別だと無理)ってことなんじゃないの?
同じディレクトリ内の作業でバックアップファイル作るために使うとかさ。

それ以外は Move とか Copy とか使えってことなんじゃないのかね。

605598:2010/07/13(火) 21:31:06
WIN32のReplaceFileをラップしただけだろっつうか
ファイルシステムに依存した機能だからこそアトミック性が保証できるんだろっつうか
逆にファイルシステムの都合に依らないファイル操作なんてありえんのかって話だが
606デフォルトの名無しさん:2010/07/13(火) 21:35:25
なぁ、formの無いプログラムってどうやるん?

タスクトレイだけですませたいんだけど。
フォームがないとデザイン画面でnotifyiconとか作れないし。
607デフォルトの名無しさん:2010/07/13(火) 21:42:00
態度がでかいな
608デフォルトの名無しさん:2010/07/13(火) 21:44:36
あの、すみません。

Formの無いプログラムっていうのは、どうやってつくればよろしいんでしょうか?

タスクトレイだけですまたいんです。

フォームがないとVisualStudioのデザイン画面を使い
NotifyIconコントロールなどを貼り付けたりすることができません。

よろしければ、教えてもらいたいのですが。すみません。どうぞ、宜しくお願いします。
609デフォルトの名無しさん:2010/07/13(火) 21:48:53
改行が多いな
610デフォルトの名無しさん:2010/07/13(火) 21:51:48
あの、すみません。Formの無いプログラムっていうのは、どうやってつくればよろしいんでしょうか?タスクトレイだけですまたいんです。
フォームがないとVisualStudioのデザイン画面を使いNotifyIconコントロールなどを貼り付けたりすることができません。よろしければ、教えてもらいたいのですが。すみません。どうぞ、宜しくお願いします。
611598:2010/07/13(火) 21:53:03
ノリがいいな
612デフォルトの名無しさん:2010/07/13(火) 21:53:40
>>604
ただの愚痴だけど、>>597みたいな処理を安全に書くのって意外と手間だからさ。

安全っていうのは、例えば仮に何らかの理由でオリジナルのファイルを
作業ディレクトリに作った一時フォルダで置き換えられないとしても、
最低限オリジナルのファイルが失われないことを保証しようと思うと結構面倒。

こういうのこそライブラリで用意されるべきだと思うんだけどな。
613デフォルトの名無しさん:2010/07/13(火) 21:54:42
すまたin!
614デフォルトの名無しさん:2010/07/13(火) 21:57:20
今必要だけどないものをウダウダ言ってもムダ
その間にソース書いたほうがよっぽど生産的
615デフォルトの名無しさん:2010/07/13(火) 21:59:14
>>608
notifyIcon.Visible = true;
しといて
Application.Run();
呼ぶだけ。
これでメッセージループが動く。
終わるときは、
Application.Exit();
を呼ぶ。
616608:2010/07/13(火) 22:03:32
>>615
どうも、ありがとうございます。それだけでできるんですか?
とても助かりました。今からやってみます!
他の人もどうもありがとうございました!
617デフォルトの名無しさん:2010/07/13(火) 22:29:35
C#の初心者向けで良い本何かありますか?
あと、C#のソースをJAVAに移植するとしたら、どんな事に気をつければよいですか?
618デフォルトの名無しさん:2010/07/13(火) 22:35:52
@ITで十分
本なんていらん
どうしてもというなら@ITの本があるからそれ買え
619デフォルトの名無しさん:2010/07/13(火) 22:42:28
>>616
最小構成サンプル
using System;
using System.Windows.Forms;
namespace nicon {
public class nicon {
System.Windows.Forms.NotifyIcon icon
= new System.Windows.Forms.NotifyIcon();
System.ComponentModel.ComponentResourceManager res
= new System.ComponentModel.ComponentResourceManager(typeof(nicon));
nicon() {
icon.Icon = (System.Drawing.Icon)res.GetObject("nicon");
icon.ContextMenu = new ContextMenu( new MenuItem[] {
new MenuItem("Exit", delegate { Application.Exit(); } )
});
}
[STAThread]
public static void Main(string[] args) {
nicon inst = new nicon();
inst.icon.Visible = true;
Application.Run();
inst.icon.Dispose();
}
}
}
620デフォルトの名無しさん:2010/07/13(火) 23:42:52
StreamReaderってファイルが無かったりアクセス権がなかったりしたら
例外をスローもせずに完全に固まらないか?
621デフォルトの名無しさん:2010/07/13(火) 23:48:01
んなこたーない。
622デフォルトの名無しさん:2010/07/13(火) 23:56:27
おまえアク禁な
623デフォルトの名無しさん:2010/07/13(火) 23:56:44
>>621
いやなる
Windows7 64bit C:\ルートに存在しないファイル名でStreamReaderやってみそ
624デフォルトの名無しさん:2010/07/13(火) 23:58:00
StreamWriterの方もだわw
625608:2010/07/14(水) 00:00:19
>>619さん。

ぬぁー!どうもありがとうございます。すごい参考になりました!
もう、あとは私の個人的な機能を付加するだけですね(;^_^

個人的な機能もたいしたことがないので、ちょっと追加するだけでよさそうです。
こんなものをパッと書けるなんてすごいですね。

ネットを今、あさってる最中でした。ありがとうございました。ComponentResourceManagerとかすごい参考になります。
626デフォルトの名無しさん:2010/07/14(水) 00:03:04
>>623
いやだよ。
627621:2010/07/14(水) 00:09:35
>>623
Windows7 Ultimate x64 + Visual Studio 2010 Professional

.NET2.0/4.0, x86/x64/AnyCPU, Debug/Release の12通りの組み合わせで試してみたけど、
どの組み合わせでもFileNotFoundExceptionが発生するな。とりあえずソース晒せ。
ちなみに俺はこう書いた。

using (var sr = new StreamReader(@"C:\a.txt"))
{
}
628デフォルトの名無しさん:2010/07/14(水) 00:29:37
using (StreamReader sr = new StreamReader(@"c:\a.txt"))
{
   String data = sr.ReadToEnd();
}
MessageBox.Show("aaa");

複雑なんでFormLoadにこれを書いて試したがやっぱりメッセージが出てこない
629デフォルトの名無しさん:2010/07/14(水) 00:31:21
ちなみにVisualStudio2008の.Net2.0 Windows7 64bit
Windows7はクリーンインストール後、特にフォルダの権限とかいじってない状態です
630デフォルトの名無しさん:2010/07/14(水) 00:35:46
>>625
あのさあ・・・初心者スレに行ってくれないかな?
631デフォルトの名無しさん:2010/07/14(水) 00:43:34
>>628
そりゃc:\a.txtが存在してないならMessageBox.Showが呼び出されることは決して無いだろうが
632621:2010/07/14(水) 00:47:07
>>628
確かにVS2008でデバッグ実行すると、例外が捕捉されないな。

出力ウィンドウを見る限り例外自体は発生しているし、デバッグなしで実行(Ctrl+F5)すれば
ちゃんと例外ハンドラが働くから、VS2008のデバッガの問題っぽい。

メッセージボックスが表示されないこと自体は>>631の言うとおり正常な動作。

とりあえず StreamReader は避けて File.ReadAllLines とか File.ReadAllText を使ったら?
633デフォルトの名無しさん:2010/07/14(水) 00:59:40
>>532
ああほんとだ、デバッグモードのしとけば何か原因が拾えるという思い込みが逆に命取りだった
普通に実行したら例外が出てるね
なんじゃこりゃ
634デフォルトの名無しさん:2010/07/14(水) 01:05:41
100ずれてますよ
635デフォルトの名無しさん:2010/07/14(水) 01:53:49
VS2008のデバッグ実行でも、出力窓には例外が出ているハズ
例外出ても止まったり止まらなかったりするのは割とよくある
636デフォルトの名無しさん:2010/07/14(水) 09:38:11
P2PソフトをC#で作ってみた
DHTを実装して普通に車輪の再発明しても意味がないので
全文検索システムに改造してみた
といっても負荷の予想がつかないので小さいメモを放流して
内容から検索するみたいなそんなものを
理論上数百万件のデータが保持出来る
検索はたぶん1つにつき10分程度かもしれない
ただの実験ソフトなんだけど、実用的に動いたら応用範囲はかなりあると思うのだけど
誰かテストしませんか?
637デフォルトの名無しさん:2010/07/14(水) 09:39:57
するする
面白そう
638デフォルトの名無しさん:2010/07/14(水) 09:44:58
検索に10分?え?
639デフォルトの名無しさん:2010/07/14(水) 11:15:26
>>637
アップロードとかいろいろしないといけないのでしばらくお待ちください

>>638
遅いかな?まあGoogleみたいなのに比べると遅いけど
ネットじゅうに分散したメモから10分で余すところ無く拾い集めてくるってことだよ
といっても予想だけど、シミュレーションではうまく動いてるけど
実際のネット環境では動くかどうか
640デフォルトの名無しさん:2010/07/14(水) 11:34:49
目的のデータを保持してるマシンが24時間稼働とは限らないからね
641デフォルトの名無しさん:2010/07/14(水) 11:38:37
>>577,578
そのまま使ってるのかー。
自分も一応そのまま使ってるけど、2010になってから
かなり補正するようになって使いにくくなった気がする。
;か}が入力されたときに調整してるから}を先に書くと
うまく補正されない。癖の問題ではあるけど。

ところで「基本設定」と「上級者設定」ってのがあるけど、
基本設定の場合、手動で追加しないとタブオーダーと
インデント操作はできないの?
642デフォルトの名無しさん:2010/07/14(水) 11:41:14
P2Pってそれぞれのマシンが落ちててもいいように、自動でキャッシュ持つんじゃないの?
643デフォルトの名無しさん:2010/07/14(水) 11:42:12
うまく補正されない。痔の問題ではあるけど。

に見えた。
644598:2010/07/14(水) 11:43:04
>>641
;}が先に書いてあってもEnter押したらたいがい補正されるだろ?
645デフォルトの名無しさん:2010/07/14(水) 11:45:36
おお、名前が残っていたがもう不要だな
646デフォルトの名無しさん:2010/07/14(水) 11:49:56
641がどんなコードの書き方しててどんなオートフォーマットの動作を難儀に感じてるのか全く分からない
647デフォルトの名無しさん:2010/07/14(水) 12:38:29
>>644
ある程度構文正しければ確かに補正されたと思う。
構文関係は慣れることにします。
>>646
 /*〜*/の中に貼り付けすると勝手にインデントする
 (これを直すのにインデント操作ボタンが欲しかったけど基本設定では表示されてなかった)
 /*で改行すると次の行に*が入る
この辺が特に難儀に感じた。
648デフォルトの名無しさん:2010/07/14(水) 12:45:34
まあね
649デフォルトの名無しさん:2010/07/14(水) 14:04:14
すみません、すべてのテキストボックスでエンターが押された時に
フォーム内のボタンを押した事と同じイベントを発生させたいのですが
これはどうやって実現できますか?

また、テキストボックスが10個あるとして
そのすべてに同じKeyUpイベントと処理を記述するのは見通しが悪くなると思うのですが
これを一カ所にまとめる事はできますか?
VB の handle1,handle2 みたいな書き方がしたいのですが

ご教示お願いいたします。
650デフォルトの名無しさん:2010/07/14(水) 14:11:19
>>649
> すみません、すべてのテキストボックスでエンターが押された時に
> フォーム内のボタンを押した事と同じイベントを発生させたいのですが
同じイベントを発生させるんじゃなくて、それぞれのイベントで同じメソッドを呼び出す方向で

> また、テキストボックスが10個あるとして
> そのすべてに同じKeyUpイベントと処理を記述するのは見通しが悪くなると思うのですが
> これを一カ所にまとめる事はできますか?
> VB の handle1,handle2 みたいな書き方がしたいのですが
デザイナでイベントハンドラを既存のに設定する
651デフォルトの名無しさん:2010/07/14(水) 14:12:16
>>650さん
ありがとうございます。
さっそく調べてみます。
652デフォルトの名無しさん:2010/07/14(水) 14:17:14
>>650さん
>デザイナでイベントハンドラを既存のに設定する
できました!ありがとうございます!
653デフォルトの名無しさん:2010/07/14(水) 14:54:09
ListView を仮想モードにした場合、
項目の選択状態を未選択、または先頭の項目を選択状態にするには、
どうすれば良いでしょうか?
SelectedItemsプロパテイでできるかと思いましたが、
仮想モードではエラーとなりました。
654デフォルトの名無しさん:2010/07/14(水) 15:02:49
ListView.VirtualModeの解説に書いてる
655デフォルトの名無しさん:2010/07/14(水) 15:12:14
もう一つ質問なんですが^^;

C#のコードの記法が

if(state)
{
}
とかに自動的になるのが気に入らないんですが

デフォルトを
if(state){
}
にする方法はありますか?
656653:2010/07/14(水) 15:13:54
>>654
SelectedIndices ですね。
大変失礼しました。ありがとうございます。
657デフォルトの名無しさん:2010/07/14(水) 15:24:11
>>655
C#の相談というよりVSの使い方だが
[ツール]→[オプション] の中にテキストエディタの設定をするところがある
658デフォルトの名無しさん:2010/07/14(水) 15:24:27
>>655
オプションのテキストエディタ - C# - 書式設定の中を好きにいじれ
あと初心者用スレもあるから内容に応じて選択しろ
659デフォルトの名無しさん:2010/07/14(水) 15:45:00
\   / .::::::::::::::::::::::::;;:;;::,ッ、::::::   )  く   ホ  す
  \  l  ,ッィrj,rf'"'"'"    lミ::::::: く   れ  モ  ま
     Y           ,! ミ::::::: ヽ  な  以  な
`ヽ、  |           くミ:::::::: ノ   い  外  い
     |、__  ャー--_ニゞ `i::::,rく   か  は
``''ー- ゝ、'l   ゙̄´彑,ヾ   }::;! ,ヘ.)  !  帰
      ゙ソ   """"´`     〉 L_      っ
      /          i  ,  /|    て    r
≡=- 〈´ ,,.._        i  't-'゙ | ,へ     ,r┘
,、 yx=''" `ー{゙ _, -、    ;  l   レ'  ヽr、⌒ヽ'
        ゙、`--─゙      /!         `、
  _,,、-     ゙、 ー''    / ;           `、
-''"_,,、-''"    ゙、    /;;' ,'  /         、\
-''"    /   `ー─''ぐ;;;;' ,'  ノ      
   //    /     ヾ_、=ニ゙
660デフォルトの名無しさん:2010/07/14(水) 15:46:09
うわ−!すみません誤爆です^^;
>>657 >>658さん ありがとうございました!解決しました!
661デフォルトの名無しさん:2010/07/14(水) 15:53:53
>>660
しねよ
662デフォルトの名無しさん:2010/07/14(水) 18:01:14
>>661
お前が市ね、ばか
663デフォルトの名無しさん:2010/07/14(水) 18:03:58
^^; ←これむかつく
664デフォルトの名無しさん:2010/07/14(水) 18:14:27
>>662
じゃあ俺が市ぬよ。
665デフォルトの名無しさん:2010/07/14(水) 20:02:43
System.IO.Directory.GetDirectories("C:");
System.IO.Directory.GetDirectories("C:\\");
って、結果違うのね。。。
フォルダの時はちゃんと\付けて返してくれるのに、
なぜドライブの時は\を付けてくけないのだ。。。
666デフォルトの名無しさん:2010/07/14(水) 20:13:00
それより、ドライブのルートと SearchOption.AllDirectories を指定して
GetFiles や GetDirectories を使うと落ちるのはどうにかならないものか。
SystemVolumeInformationにアクセスしようとして権限違反で落ちるようなんだけど。
667デフォルトの名無しさん:2010/07/14(水) 20:35:01
リンクがループしてると無限ループするって書いてあるし、実用的なオプションとは思えない
TopDirectoryOnlyで例外ハンドルしながら自分で再帰処理するしかないんじゃ
668デフォルトの名無しさん:2010/07/14(水) 21:02:22
いくつか教えてください。
・JapaneseCalendar.Eraから西暦の開始日付を取得したい
・JapaneseCalendar.Eraを"平成"等の文字に変換したい
完全にJapaneseCalendar依存にしたいのでEraをswitch分岐したり
定数で開始日付を固定したくはないのですが出来ますか?

669デフォルトの名無しさん:2010/07/14(水) 21:24:02
前者はリフレクションでJapaneseCalenderのprivateフィールドを読めば可能。
後者はたぶん無理。
670デフォルトの名無しさん:2010/07/14(水) 21:35:43
通常の使い方では無理ってことですね・・・。
Parseで変換できるんだから"平成"等の取得くらいは期待してました・・。
ありがとう。
671デフォルトの名無しさん:2010/07/14(水) 21:41:21
年号の取得はもう一段階上のDateTimeFormatInfoの仕事らしい
672デフォルトの名無しさん:2010/07/14(水) 22:06:49
あれは動けばいい
673636:2010/07/14(水) 22:43:55
初期ノードキャッシュ用と本体配布が出来るCGIが使えるサーバが見つからない
674デフォルトの名無しさん:2010/07/14(水) 22:48:37
GAEは?
675デフォルトの名無しさん:2010/07/14(水) 23:07:44
GAEは?・・・
676デフォルトの名無しさん:2010/07/14(水) 23:20:06
>>670
int era = 0;
var culture = new System.Globalization.CultureInfo("ja-JP", true);
culture.DateTimeFormat.Calendar = new System.Globalization.JapaneseCalendar();
var eraName = culture.DateTimeFormat.GetEraName(era);
で取得できるみたい
677デフォルトの名無しさん:2010/07/14(水) 23:21:05
>>674
面白そうだけどPerl版で普通のhttpリクエストしか実装してないから
GAE専用のアクセスクラスを実装しないといけないので時間が掛かる
678デフォルトの名無しさん:2010/07/14(水) 23:34:43
>>677
そうなのか、サンクス
679669:2010/07/14(水) 23:56:43
>>676
そんな方法があったのか。無知を恥じる。
680デフォルトの名無しさん:2010/07/15(木) 01:57:00
質問でっす
windowsフォームアプリケーションでinvokeを使う場合
this.Invoke(〜〜〜
で使えますがフォームを持たないクラスでこうしたい場合はどのようにすればよいのでしょうか?
分かる方、お願いいたします
681デフォルトの名無しさん:2010/07/15(木) 01:57:58
Invokeの意味わかってんのか?
682デフォルトの名無しさん:2010/07/15(木) 02:07:38
そーーーゆのいいですから、即答お願いいたします〜〜〜orz
683デフォルトの名無しさん:2010/07/15(木) 02:16:44
諦める

コントロールへの参照がないならControl.Invokeする必要ないし
コントロールへの参照があるならそれ使ってInvokeするだけだし
684デフォルトの名無しさん:2010/07/15(木) 02:20:06
出来ない
意味もわからない馬鹿は出直せ
685デフォルトの名無しさん:2010/07/15(木) 02:24:14
InvokeA
Invoke9
686デフォルトの名無しさん:2010/07/15(木) 02:56:44
>>681
そっちこそそういうのいいですからw偽物です

では別クラスのスレッドからフォームを操りたい場合はどうすればいいんでしょうか
687デフォルトの名無しさん:2010/07/15(木) 03:29:10
どうすればも何もそのままだと思うが何が分からんのよ
フォームを操るんだからフォームの参照持ってるだろ?
688デフォルトの名無しさん:2010/07/15(木) 03:42:59
別クラスが引数一つのget_chatというイベントを持っています。
別クラスでは新しいスレッドが作られていてそのスレッド内でイベントを発生させてフォーム側でそのイベントを処理するのですが
フォーム側のソースでイベントの引数を受け取ろうとしたら"有効でないスレッド間の操作"となってしまいます。

現在はフォーム側で
private void get_chat(string chat)
{

this.Invoke((MethodInvoker)delegate()

{
textBox1.Text += chat;
textBox1.Text += "\r\n";
});

}
として無事chatを受け取れているのですがライブラリとして作っているのでフォーム側でこのようにするのは避けたいわけです。

まだ始めたばかりで説明下手ですみません・・・
689デフォルトの名無しさん:2010/07/15(木) 03:46:54
イベント駆動にしてその中でInvokeするだけだろ
何がわかんねぇんだ?
690デフォルトの名無しさん:2010/07/15(木) 03:48:59
今度から初心者スレへ行けよ
691デフォルトの名無しさん:2010/07/15(木) 04:05:11
692デフォルトの名無しさん:2010/07/15(木) 04:07:22
ChatClass.OnGetChat += EventHander(OnGetChat)

private void OnGetChat(Object o, EventArgs e){
textBox1.text += e.chat;
}



ClatClass
{
private RecvThread (){
socket.recv(*****)
if(OnGetChat != null){
ここでinvokeしてOnGetChatを呼び出したい

}

という意味では?}
693デフォルトの名無しさん:2010/07/15(木) 04:09:34
気持ち悪い実装だな
クラスからフォームのメソッド呼び出すとかどんな設計だよ
694デフォルトの名無しさん:2010/07/15(木) 04:16:43
外部スレッドで発生したイベントは当然フォームではメインスレッドで動かさないといけないのに
イベント処理が別スレッドのまま渡されてすべてユーザーがフォームでInvokeしないといけない
なんて仕様の方が気持ち悪い、意味分からない、利点が思いつかない
自分も外部クラスでラップしたイベントがいちいちユーザーが使う時にInvokeしないと使えないなんて
無様すぎるから疑問に思ってたけど、これといった解決策が分からないままでいた
695デフォルトの名無しさん:2010/07/15(木) 04:19:19
Javaを含むあらゆる言語を否定した出したよこいつ…
696デフォルトの名無しさん:2010/07/15(木) 04:23:01
>>695
ジャバは知らないがMFCとかC++SDKとかイベントループは各フォームが1個づつ持ってて
外部から投げようがメインスレッドで確実に処理される
単に別スレッドのまま呼び出すのはただのコールバックだし
それだったらわざわざEventHandlerなんて意味深なものを用意する意味が分からないんだが
697デフォルトの名無しさん:2010/07/15(木) 04:31:23
C#やめてC++使えば?
698デフォルトの名無しさん:2010/07/15(木) 04:32:45
とにかくこいつを初心者スレへ連れて行け
699デフォルトの名無しさん:2010/07/15(木) 04:35:28
basicはgotoを使うのが当たり前なのに
C#は何でgotoを使ったらいけないみたいな風潮なの?気持ち悪っ!
とか何とか言い出しそうだなw
700デフォルトの名無しさん:2010/07/15(木) 04:42:42
多言語と比較は意味ないよねぇー
だって、仕様(しょう)がない。。。
701デフォルトの名無しさん:2010/07/15(木) 04:53:18
ようするに
MFCは旧来のオブジェクト指向言語のイベントは
メインスレッド <- 外部スレッドがポストだったんだけど
JavaをベースにしたC#は
メインスレッド->外部スレッドに関数ポインタ(デリゲート)を渡して呼び出してもらう
にしたからクラスで完結したイベント処理が「不可能」なんだな
やりたくでも出来ないんだw
かっこ悪いのは分かってるけど出来ないんだw

もし無理やりやるとしたら
外部クラスでデリゲートをキューしておいて
メインスレッドのフォームからそれを一括呼び出しする関数を呼び出すみたいな
そういうことしか方法がないのかもしれない

>>698>>699はそこまで考える頭が無いのは分かってるが
702デフォルトの名無しさん:2010/07/15(木) 04:55:15
せめてオブジェクトクラスにそういうことをあらかじめやってくれる
イベントキューみたいなのを包めて設計して欲しかったな
703デフォルトの名無しさん:2010/07/15(木) 05:20:55
久しぶりに痛い奴に遭遇した
704デフォルトの名無しさん:2010/07/15(木) 05:27:30
>>673
自分で用意すればいいじゃん
705デフォルトの名無しさん:2010/07/15(木) 05:27:39

rem dirの出力をクリップボードに取り込む
dir | clip

rem クリップボードの内容を表示
clip

こういうコンソールアプリを実装したい場合、
上下の処理の分岐ってどう書けばいいんですか?
706デフォルトの名無しさん:2010/07/15(木) 05:38:06
ComboBoxのテキストを編集できないようにする方法を教えてください。
707デフォルトの名無しさん:2010/07/15(木) 06:19:00
>>688
ISynchronizeInvokeでググれ
708デフォルトの名無しさん:2010/07/15(木) 06:28:20
>>707

rem dirの出力をクリップボードに取り込む
dir | clip

rem クリップボードの内容を表示
clip

こういうコンソールアプリを実装したい場合、
上下の処理の分岐ってどう書けばいいんですか?
709デフォルトの名無しさん:2010/07/15(木) 06:40:24
C#で簡単な.NETプログラムを作りました。
(ハローワールド程度)
これを、自分のパソコンのウェブサイトにコピーしたのですが
動きません<C:\inetpub\wwwroot>

VSでのデバッグ時には動いています。

http://localhost/とやると、デフォルトのHTMLが表示されます。

http://localhost/WpfBrowserApplication1.xbap と入れると
アプリケーションのダウンロードエラーとなってしまいます

WpfBrowserApplication1.*は全部Default.htmlのあるルートに
コピーしてあります。
710デフォルトの名無しさん:2010/07/15(木) 06:54:15
>>706
ぐぐれ
デザイナーのプロパティの項目を上からみていけ
711デフォルトの名無しさん:2010/07/15(木) 07:27:54
>>705
PeekConsoleInput関数でいける感じはするけど保証はないな、ドキュメント的に
712636:2010/07/15(木) 08:36:47
http://notepadp2p.x10.mx/

とりあえずアップロードしてみたテスト
713デフォルトの名無しさん:2010/07/15(木) 09:07:26
これって結局なんなの?
凄く時間のかかる全文検索だけ?
どういう目的で使うの?
714デフォルトの名無しさん:2010/07/15(木) 09:12:15
>>713
将来的にはこれはまったく別のP2Pシステムの一部になる予定だけど
本当に機能するか実験してる所です。
何か面白い使い方があれば適当にやって下さい。
多少の修正は対応します。
715デフォルトの名無しさん:2010/07/15(木) 09:16:07
京都府警がアップを始めました
716デフォルトの名無しさん:2010/07/15(木) 09:16:15
最低でも某有名P2Pみたいにポート開けずに検索出来るようになってからだな
717デフォルトの名無しさん:2010/07/15(木) 09:17:16
そうだな、暗号化されてるし、誰が書いたか特定するのは不可能だから
しかも検索出来るのはその文章のタイトルか内容のヒントを知ってる人だけだから
秘密の情報をやり取りするのとかに使えるかもしれない
718デフォルトの名無しさん:2010/07/15(木) 09:24:15
そこまでして読みたい文章ってなんだ?
んでヒント知ってる者同士ならその間柄でやり取りしたほうがセキュアじゃね?
暗号化つっても通信経路だけで常にオープンなわけだし
719デフォルトの名無しさん:2010/07/15(木) 09:54:42
スレ違いじゃね?
720デフォルトの名無しさん:2010/07/15(木) 09:55:36
>>701
デリゲートをキューに入れて、メインスレッドで一括呼び出しって、
それこそ Control.Invoke とか Dispatcher.Invoke がやってる事じゃん。
721デフォルトの名無しさん:2010/07/15(木) 10:19:11
ネットワークに参加できない
722デフォルトの名無しさん:2010/07/15(木) 10:57:14
だれも>>685に反応しないところを見ると
このスレ30歳以下しかいないんだな
723デフォルトの名無しさん:2010/07/15(木) 11:00:01
>>721
原因が分からないけどこれのパケットだけ何故かFWに全部はじかれてる
なんでだろう
724デフォルトの名無しさん:2010/07/15(木) 11:14:18
>>722
今日初めてこのスレに来たから反応する暇も無いが
わかりにくいわw
725デフォルトの名無しさん:2010/07/15(木) 11:23:26
>>721
たぶんOKです
726デフォルトの名無しさん:2010/07/15(木) 11:42:16
>>725
さっきルータのポートだけ開けてパソコンのFWで開け忘れてた
今は両方開けたつもりだけどまだ参加できないって言われる
「切断 0/0 受信 0.00bps / 送信0.00 bps 受信 49bytes / 送信 343bytes」って出てる
727デフォルトの名無しさん:2010/07/15(木) 11:48:47
なんのかんのでこのスレの住人は優しい奴が多い。
オアシス的な場所。
728デフォルトの名無しさん:2010/07/15(木) 11:55:41
>>726
dataフォルダをまるごと削除してもう一度再起動してもらえますか?
申し訳ない、こればっかりはデバッグ出来ない問題なんで
729670:2010/07/15(木) 11:58:13
>>676
おお、ありがとう!試してみます。
730デフォルトの名無しさん:2010/07/15(木) 12:21:10
>>701
>>>>698>>699はそこまで考える頭が無いのは分かってるが

自分が良く分かって無いのにこういうこと言っちゃう人って…
731デフォルトの名無しさん:2010/07/15(木) 12:26:48
非同期コールバック系処理で同期取るの面倒だからこういうことするのは俺だけじゃないはず

Begin〜( delegate()
{
ThreadPool.Push( delegate() //Invokeのデッドロック回避
{
Invoke( (MethodInvoker)delegate()
{
  //メインスレッドで処理
}
}
} ) ) );
732デフォルトの名無しさん:2010/07/15(木) 12:34:02
イベントを使った非同期パターンを実装する場合はAsyncOperationを使って
UIスレッドでイベントを発生させるのが推奨されてる
もちろんフレームワーク側でのサポートが必要(WinFormsやWPFではサポートされてる)
733デフォルトの名無しさん:2010/07/15(木) 16:06:45
Javaから引越し中ですが、
ArrayList 同士の結合をするには、どうすれば良いのでしょうか?
734デフォルトの名無しさん:2010/07/15(木) 16:10:18
AddRange
それはそれとしてArrayListなんか廃棄してList<T>なりに移行すること
735733:2010/07/15(木) 16:19:07
>>734
ありがとうございます!
List<T>なんてものもあるのですね。違いを調べて使ってみます。
736デフォルトの名無しさん:2010/07/15(木) 18:01:08
>>728
おお、dataフォルダ消したら接続できた
ありがとう
737デフォルトの名無しさん:2010/07/15(木) 18:09:41
>>736と思ったら今度は例外が出て落ちるようになった

System.Security.Cryptography.CryptographicException はハンドルされませんでした。
Message="データが正しくありません。\r\n"
Source="mscorlib"
StackTrace:
場所 System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)
場所 System.Security.Cryptography.Utils._DecryptKey(SafeKeyHandle hPubKey, Byte[] key, Int32 dwFlags)
場所 System.Security.Cryptography.RSACryptoServiceProvider.Decrypt(Byte[] rgb, Boolean fOAEP)
場所 c.a(Byte[] A_0, Byte[] A_1)
場所 c6.a()
場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
場所 System.Threading.ThreadHelper.ThreadStart()
InnerException:
738デフォルトの名無しさん:2010/07/15(木) 19:27:07
例外ぐらいトラップしてロギングしときなよ…
お行儀の悪いソフトだな…
739デフォルトの名無しさん:2010/07/15(木) 20:11:28
DBで管理するメモ帳を作ろうかと思ってます.

入力した文字列に含まれる単語をstring[]などで取得したいのですが

いい方法はないですか?

//例 今日は学校に行った ⇒ { "今日","学校","行った"} ("は","に")が入ってもかまわないです

変換キーを押したときに,IMEで再変換時にでる下線部ごとにstring[]を作ってくれるとありがたいのですが,
ググってもIME周辺の処理がいまいち分かりません

回答求む
740デフォルトの名無しさん:2010/07/15(木) 20:15:21
形態素解析でぐぐれ
741デフォルトの名無しさん:2010/07/15(木) 20:16:17
>>740

サンクス
742デフォルトの名無しさん:2010/07/15(木) 20:18:38
>>741
うん
743デフォルトの名無しさん:2010/07/15(木) 20:41:08
Graphics.DrawLineで画面外の滅茶苦茶な数値を入れるとちゃんとエラーも出さずに描画してくれるみたいだけど、
描画する線が明らかに全くない場合は自前でDrawLineを呼び出さないように弾いちゃった方が早い?
それとも自前でコードを書かなくてもDrawLine内で同コストで弾いてくれる?
744デフォルトの名無しさん:2010/07/15(木) 20:46:44
1ドットずつ判定するから長い線じゃなければ自分で判定して弾かなくてもいいよ
745デフォルトの名無しさん:2010/07/15(木) 21:24:58
スケーリングやトランスフォームも含めてGraphicsにお任せすることもあるけど、
そんなとき自前で判定してたらメリット半減だよね。
746デフォルトの名無しさん:2010/07/15(木) 21:50:17
>>743
ぜひ実測して結果を公表して。
747デフォルトの名無しさん:2010/07/15(木) 22:13:25
お前がやれ
748デフォルトの名無しさん:2010/07/15(木) 22:15:53
ちょっと昔のドロー系のアルゴリズムを書いてある本なら必ず掲載されてたなw
749デフォルトの名無しさん:2010/07/15(木) 22:19:42
>>737
なんだそれは
>>738暗号関係の部分はしてる
こっちでは何も出ない
環境の問題?
750デフォルトの名無しさん:2010/07/15(木) 22:23:24
>Graphics.DrawLineで画面外の滅茶苦茶な数値を入れるとちゃんとエラーも出さずに描画してくれるみたいだけど、
こんなのは昔のN88BASICのline命令から普通にできた話
仮想スクリーンだとか言葉は違うけど

指定したエリア(カメラの範囲や表示可能領域)から外れた場合は
処理しないってのはまあ大体実装されてる機能だよ
751デフォルトの名無しさん:2010/07/15(木) 22:23:36
.netに環境も糞もないだろ…
752デフォルトの名無しさん:2010/07/15(木) 22:27:21
と思ったら古いソースといつのまにかごっちゃになってた
修正します
753デフォルトの名無しさん:2010/07/15(木) 22:33:55
赦します
754デフォルトの名無しさん:2010/07/15(木) 22:52:07
N88BASICにクリッピングなんて気の利いた機能あったっけな。
MS系BASICにそんなのなかった気がしたが....

まあ、>>750が勝手に熱くなってるけど>>743が聞いてるのはべつにそんなことじゃ
ないはずなんだがなw
755デフォルトの名無しさん:2010/07/15(木) 22:54:41
http://notepadp2p.x10.mx/
修正版アップしました
756デフォルトの名無しさん:2010/07/15(木) 23:03:59
今日は蒸すね(´・ω・`;)ふぅ
757デフォルトの名無しさん:2010/07/15(木) 23:09:45
>>754
できたよ
当時は若かったので仮想スクリーンが何を意味するかわからなかったけど
現在のGPUでは当たり前にやってるような機能が当時からあったんだなあ
と近年3D関連やってみて思った
758デフォルトの名無しさん:2010/07/15(木) 23:18:48
実環境は想像よりパケットロスが大きいことが分かったのでちょっとプロトコル変えます
759デフォルトの名無しさん:2010/07/15(木) 23:19:58
てかX68Kみたいに仮想VRAM上の特定領域を表示したりしてるわけじゃなく
単に座標が実表示領域を超えててもエラーにならないってだけだろ?
760デフォルトの名無しさん:2010/07/15(木) 23:32:10
>>757
直線のクリッピングなんて中学の数学の知識で出来るけどね。
んな大げさな話でもない。
761デフォルトの名無しさん:2010/07/15(木) 23:38:09
まあね。
762デフォルトの名無しさん:2010/07/16(金) 09:10:13
Windowsで線を描く場合は、そんなに単純じゃないと思う。
おそらく1ドットずつウィンドウ内かどうか判定して描画している。
763デフォルトの名無しさん:2010/07/16(金) 09:26:15
>おそらく1ドットずつウィンドウ内かどうか判定して描画している。
764デフォルトの名無しさん:2010/07/16(金) 09:26:56
今時のOSがそんな間抜けな設計のわけねえだろ。
ちゃんと計算されてる。角度とか。
765デフォルトの名無しさん:2010/07/16(金) 09:36:02
角度?
766デフォルトの名無しさん:2010/07/16(金) 09:37:04
シャア専板だかで昔流行ったギャグだ
767デフォルトの名無しさん:2010/07/16(金) 09:54:48
>>764
と言うと、ウィンドウの重ね合わせの描画処理ってどうやってると思います?
まさか下のウィンドウから順番に描画していき、最後に画面に表示ってのはないと思うけど。
768デフォルトの名無しさん:2010/07/16(金) 10:01:51
初心者スレへGo!
769デフォルトの名無しさん:2010/07/16(金) 10:12:18
そんなこと言わずに教えてくれ。
正式にどうやっているか知らないので。
770デフォルトの名無しさん:2010/07/16(金) 10:14:11
初心者スレに凄いのいるからそいつに聞けよ
771デフォルトの名無しさん:2010/07/16(金) 12:07:37
あるプロジェクトから別のプロジェクトのコントロールを使いたいのですが、
ツールボックスのコントロールが有効にならないため、使用できません。

自作していない他のコントロールは全て有効になっており、
試しにデザイナーを使わずに動的にコードでコントロールを生成したところ、
正常に動作しました。

これはどう言ったことが考えられますでしょうか?
772771:2010/07/16(金) 12:18:19
追記ですが、
自作コントロールを作成したプロジェクト内のフォームにそのコントロールを貼り付け、
それをデザイナーでコピーして、
別のプロジェクトのフォームに貼り付けることはできました。
773デフォルトの名無しさん:2010/07/16(金) 12:41:41
名前空間が違うんでねーの
774771:2010/07/16(金) 13:21:24
名前空間が違う場合、動的コードによる生成やデザインでコピペ時にエラー出ませんかね?
775デフォルトの名無しさん:2010/07/16(金) 13:38:20
>>771
おれ自分専用のユーザーコントロール用プロジェクトを別に作ってるよ。
XAMLでちゃんとネームスペース指定してやれば問題なくつかえています。
776デフォルトの名無しさん:2010/07/16(金) 13:38:27
dllにしてツールボックスでアイテムの追加なんていう・・・ことじゃないよね?
777771:2010/07/16(金) 13:58:38
解決しました。

原因は、2つのプロジェクトのアセンブリ名が同じで、
かつ出力の種類が「Windowsアプリケーション」だったため、
リビルドすると、片方のプロジェクトにEXEが上書きされていたためです。
お恥ずかしい限りです。

皆様のご意見、試行錯誤の参考になりました。ありがとうございます。
778デフォルトの名無しさん:2010/07/16(金) 17:07:50
OpenFileDialogで一覧側にフォーカス当てた状態で開きたい
どうすればいい?
779デフォルトの名無しさん:2010/07/16(金) 17:58:23
>>767
今のWindowsではそれぞれのウィンドウが自分自身をバッファに描いたら
それをハードウェアの機能使って重ねてるだけでしょ
780デフォルトの名無しさん:2010/07/16(金) 18:17:31
>>779
ウィンドウの数が増えた場合、遅くなるってこと?
781デフォルトの名無しさん:2010/07/16(金) 18:24:12
ハードウェア様の力をナメちゃいかん
半透明+枠のぼかし+影効果付きで画像を数十枚描画するくらい屁でもない
782デフォルトの名無しさん:2010/07/16(金) 18:31:10
>>780
おそくならねえよw
この辺の2Dアクセラレーターはかなり前から積んでるだろうw
最近は2Dアクセラレーターの代わりに3D処理部分を使ってるみたいだが
783デフォルトの名無しさん:2010/07/16(金) 18:46:52
>>781 >>782
重くならない理由になってないけど。
結論から言うと、
10枚のウィンドウががぴったり重ってる時に一番下のウィンドウに線を描いた場合、
ハードだろうがソフトだろうが、
10枚全部描画しなおすなんてことはしない。
1000枚ウィンドウが重なっていても、スピードは落ちない。
784デフォルトの名無しさん:2010/07/16(金) 18:50:15
>>783
だからその辺は奥行きを見て見えてる部分に関しては
クリッピングなどでエリア内だけ描画するようにしてるだよ
この辺の処理効率はある意味当たり前に実装されてる
785デフォルトの名無しさん:2010/07/16(金) 19:33:03
最近はいったんウィンドウの中身をバッファに描くから
奥のウィンドウだけが更新されようが関係ない
最後の重ね合わせの段階では単なる画像描画だからハードの力でリアルタイムに行える
786デフォルトの名無しさん:2010/07/16(金) 19:42:38
>>778
大まかな方針としては、Application.EnterThreadModalでダイアログのウィンドウハンドルを
検索して適当な子ウィンドウに適当なメッセージを送ればいいんだろう。

ただこのやり方は恐らくXPスタイルのダイアログに対してしか使えないけどね。
787デフォルトの名無しさん:2010/07/16(金) 20:37:09
うひ
788デフォルトの名無しさん:2010/07/16(金) 21:30:24
>>785
だよね。ダブルバッファの理屈でいくと見えてようが見えてまいが描画してるよな。
重ねあわせは一々計算の必要のない単純なメモリコピーだからちょっとぐらい増えようと速度かわらんし。
789デフォルトの名無しさん:2010/07/16(金) 21:43:57
ひょ
790デフォルトの名無しさん:2010/07/16(金) 23:25:07
>>788
ダブルバッファには違いがないが、
下から全てのウィンドウをバッファに描いていき、最後にコピーとかはしないよ。
今から15年以上前のPCでも実現できていたことを考えてみて。
例えばCPUが80286、12MHz、メモリが1MBで、同じことができるだろうか?
791デフォルトの名無しさん:2010/07/16(金) 23:31:17
いいかげんスレ違い
792デフォルトの名無しさん:2010/07/16(金) 23:40:31
ごめんなさい。
793デフォルトの名無しさん:2010/07/17(土) 00:46:31
以下を実行すると、どこかでたまに文字化けするのですが、仕方がないのでしょうか?
もしかして円マークが原因でしょうか?

for (int i = 0; i < 200; i++) {
Console.WriteLine(@"C:\欲があるのは良くない");
}
794デフォルトの名無しさん:2010/07/17(土) 01:14:08
まったく文字化けしないですよ。
XP SP3+VC#EE2010
795デフォルトの名無しさん:2010/07/17(土) 01:37:37
プログラミングに限らんけど、ダメな人って妙なところを横着して端折ろうとするよな。
>>793なんか、絶対にこのコードで本当に「問題」が再現するか確認してないだろw
796デフォルトの名無しさん:2010/07/17(土) 03:18:11
フォームアプリだと文字化けした。
コンソールアプリだとしなかった。
原因はわからなかった。

XP SP3 Visual C# 2010 Express
797デフォルトの名無しさん:2010/07/17(土) 03:25:09
cygwinでcコード書いてるときは日本語を使うときに
特定の文字は問題がおきるんだがその辺の関係かね?
@をつけると"そのまま"扱われるらしいが内部的に
どういう文字コード体系で扱われるのかまでは
気にしたことがなかったな
798デフォルトの名無しさん:2010/07/17(土) 03:26:29
richTextBoxのScrollBarsをForcedBothにしてもWidth, Heightを変更するとスクロールバーが消滅してしまい
以後表示できなくなってしまいます。
大きさ変更後も強制的にスクロールバーを表示し続けるにはどうすればいいんでしょうか
799デフォルトの名無しさん:2010/07/17(土) 03:28:45
あんまり試す気はないけどこういうのもやってみてくれ

for (int i = 0; i < 200; i++) {
Console.WriteLine(@"C:\\欲があるのは良くない");
}
800794:2010/07/17(土) 03:38:01
フォームにして、TextBoxのMultiLineに出力しても、文字化けしないが。。。
バク出るコードの最小のコードをうぷしてよ。検証のしようがない。
801デフォルトの名無しさん:2010/07/17(土) 03:38:21
>>793
欲って字がダメ文字に入ってるな・・・
http://sites.google.com/site/fudist/Home/grep/sjis-damemoji-jp/table

というかワザとわからないフリをして書き込んでないか?
802デフォルトの名無しさん:2010/07/17(土) 03:47:53
というかあれだな・・・
@とると>>793のコードはビルドできないんだよな

どんな開発環境でやってそうなるんだ
もっと詳しい情報だせよ

それともあれか?また後だしでこんなこともわからないのかよ
と書き込む痛い子か?
803デフォルトの名無しさん:2010/07/17(土) 04:34:35
http://notepadp2p.x10.mx/
トップ画面に表示するリストを近隣ノードから集めたものにした
これで人数が少ない時は誰かが書いたら即座に表示されると思う
人が多くなってきたら検索語に関連したメモが出てくるようになると思う
804デフォルトの名無しさん:2010/07/17(土) 08:29:19
うん。なるよ。
805デフォルトの名無しさん:2010/07/17(土) 08:48:03
VIPでやれ
806793:2010/07/17(土) 09:08:40
>>794 >>800
最小のコードがあれなんです。もちろん検証済みです。
ちなみに、
Console.SetOut()で、ファイル出力した場合は文字化けしません。
デバッグ時にコンソールに出力した場合のみ出ます。

>>796
文字化けしましたか。ありがとうございます。

>>797
特定の文字の場合は常に文字化けすると思いますが、
「たまに」文字化けしてしまうのです。

>>799
「\\」がそのまま「\\」になってしまいますが、文字化けはしませんでした。
円マークを抜くと、文字化けしなくなります。

>>802
環境は、
Vista64bit SP2 C# 2008 Express
Microsoft Visual Studio 2008 Version 9.0.30729.1 SP
Microsoft .NET Framework Version 3.5 SP1
です。
807デフォルトの名無しさん:2010/07/17(土) 09:12:06
>>790
全部コピーじゃなくて単純な矩形領域のコピー可否判断をしている。
線引くときに1ドットづつなんて判断なんかしねーよ。良く考えろ。
80286でそんなすっとろい処理考えてたら首になるわ。
808793:2010/07/17(土) 09:14:55
あと、for (int i = 0; i < 200; i++) としていますが、
200行のうちのどこかで文字化けします。
809デフォルトの名無しさん:2010/07/17(土) 10:22:04
>>807
Zバッファ
810デフォルトの名無しさん:2010/07/17(土) 10:32:34
>>808
アドバイスはできないけど、その文字化けしてる画面の画像、
どこかにアップロードしてみて
どんなのか見てみたい
811デフォルトの名無しさん:2010/07/17(土) 10:53:57
>>809
線引いたりするのはCPUだからアルゴリズム的に工夫しないとしんどい
DWMによる各ウィンドウのバッファの最終合成はすべてGPUで行われるから
すべてのピクセルに対してエフェクトをかけつつ毎フレーム全コピーとか余裕
812デフォルトの名無しさん:2010/07/17(土) 10:55:41
OSのバージョンでも違うしなあ
N88BASICというかPC9801のころはLSIがVRAMに対して引いてたので
今のGPUのように勝手にエリア内判定してくれてたのかな・・
もう忘れちゃったわw
813793:2010/07/17(土) 10:57:48
>>810
少し抜粋しましたが、以下のように、たまに出ます。200回のうち1、2回。

C:\欲があるのは良くない
C:\欲があるのは良くな・「
C:\欲があるのは良くない
C:\欲があるのは・ヌくない
C:\欲があるのは良くない

そろそろ、あきらめます。>>796 さんも文字化けしてるのが気になりますが。
814デフォルトの名無しさん:2010/07/17(土) 11:16:10
VS2008で試してみたら同じように化けた
@"AAAああああああああああ"でも同様
先頭の半角文字の個数が奇数の時に発生するみたい
815デフォルトの名無しさん:2010/07/17(土) 11:18:05
>>814
コンソールのほうで?
まあwindowsも内部はucsで2バイト管理だけどファイルはS-jisとか
いびつな状態だからなあ
どこかで変換して・・・とかあるのかもしれん
816デフォルトの名無しさん:2010/07/17(土) 11:23:42
> 欲があるのは良くない

( ^ゎ^)
817デフォルトの名無しさん:2010/07/17(土) 11:26:19
>>813
それ、ファイルにリダイレクトしても化けてるの?
818813:2010/07/17(土) 11:34:22
コンソールアプリやファイル出力だと発生しないっぽい
おかしくなるのはVSの出力ペイン上だけかな
819デフォルトの名無しさん:2010/07/17(土) 11:40:46
あ、すまん名前欄間違えてた
>>818 = >>814だった
820デフォルトの名無しさん:2010/07/17(土) 11:43:21
>>818
あ、そこのことだったのね、確認したらうちでも化けたよ
何なんだろうね
821デフォルトの名無しさん:2010/07/17(土) 11:54:42
>>812
PC-9801のGDCには線を引く機能はあったけど
N88-BASICではその機能は使わずにCPUで引いてた
822デフォルトの名無しさん:2010/07/17(土) 14:07:41
>>811
TextboxはOSが勝手に再描画してくれるけど、Lineとかは自分で再描画する必要がある。
この違いを考えてみてくれ。
823デフォルトの名無しさん:2010/07/17(土) 14:19:00
そりゃコントロール側で勝手に再描画してくれてるだけだw
もしコモンコントロールとしてLineコントロールがあれば当然自動で再描画されるだろうな
文字列だってTextOut関数とか使って描画したら自分で再描画しないといけない
824デフォルトの名無しさん:2010/07/17(土) 14:41:16
つまり、各ウィンドウのバッファには、何もないってことでは?
あれば勝手にマージされて表示されるはず。
825デフォルトの名無しさん:2010/07/17(土) 14:48:07
毎回クリアされるだけでしょ
826デフォルトの名無しさん:2010/07/17(土) 15:09:45
クリアされるのではなく、元々ウィンドウ毎のバッファがないのが正しい。
テキストボックスとかはオブジェクトとして持ってるからOS側で再描画可能だが、
Lineなどで描いた情報はバッファにないので、消える。
827デフォルトの名無しさん:2010/07/17(土) 15:19:56
TextBoxにバッファなどございません
828デフォルトの名無しさん:2010/07/17(土) 15:32:03
描画用のバッファではなく、テキストボックスをオブジェクトとして持っている。
OSはそれを描画している。
つまり、ウィンドウのサイズが1024*768だろうが、2048*1536だろうが、
そのウィンドウの再描画に必要なバッファサイズは変わらないと言うこと。
ちょっと語弊あり。
829デフォルトの名無しさん:2010/07/17(土) 15:35:04
どこまでがOSの機能かの境界線にはひょっとしたら曖昧さがあるのかも知れんが、
少なくともコントロール(コモンコントロール含む)の機能をOS側だと見做すプログラマは
まずいないと思うけど.....

しかし、なんでこんな低レベルかつどうでもいい話になってんの?
830デフォルトの名無しさん:2010/07/17(土) 16:43:06
>>828
初心者スレで氏ね
831デフォルトの名無しさん:2010/07/17(土) 16:44:40
プログラマはマジ死ね
832デフォルトの名無しさん:2010/07/17(土) 16:45:32
この板も全滅だな・・・
833デフォルトの名無しさん:2010/07/17(土) 17:11:58
こんなXP以前とVista以降をごっちゃにした話なんぞどうでもいいわ
834デフォルトの名無しさん:2010/07/17(土) 17:12:36
>>830
氏#ね。
835デフォルトの名無しさん:2010/07/17(土) 18:28:36
しかし、馬鹿はある意味しょうがないけど死ねだの氏ねだのガキみたな言葉遣いが
平気でできる幼稚クンは何か嫌だね。
836デフォルトの名無しさん:2010/07/17(土) 18:34:13
年取った人って「幼稚クン」とか「〜してネ」とか
変なところでカタカナ使うよな
なんで?
837デフォルトの名無しさん:2010/07/17(土) 18:34:57
>>836
マレジスするとカナカタの変な使い方が80年代から90年代初頭にかけて流行った
838デフォルトの名無しさん:2010/07/17(土) 18:39:02
戦後まもなくはカタカナがはやったからな。
老害ははやくしねよ。
839デフォルトの名無しさん:2010/07/17(土) 18:42:48
>>837-838
適当なこと言うなよ。
どっちもない。
戦前は片仮名の仮名遣いで教育を受けた世代がいたのは事実だが、
そんな世代はもう80以上だし、別に流行ったわけでもない
840デフォルトの名無しさん:2010/07/17(土) 18:45:23
自作のクラスをフォームに貼り付けるにはどうすればいいんですか?
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.onmousemove.aspx
のFunButtonの様にカスタマイズしたTabPageクラスを使用したいです・・・。
ちなみにTabControl内に自作TabPageと既存TabPageとを混在させたいんですが、こちらも可能でしょうか?
841デフォルトの名無しさん:2010/07/17(土) 18:47:55
842デフォルトの名無しさん:2010/07/17(土) 18:49:15
>>841
ありがとうございます`;ω;´
843デフォルトの名無しさん:2010/07/17(土) 19:21:32
すみません。何故かツールボックスに自殺クラスが追加されません`;ω;´
手順は、プロジェクトのコンテクストメニューから[追加]->[クラス...]の後コードを書いてビルドでツールボックスに追加されるんですよね?
844デフォルトの名無しさん:2010/07/17(土) 19:28:50
>>843おまえが自殺して人生おわったほうがはやい。
845デフォルトの名無しさん:2010/07/17(土) 19:30:08
自殺を教唆する事は犯罪です`;ω;´
846デフォルトの名無しさん:2010/07/17(土) 19:40:49
>>844
通報しました
847デフォルトの名無しさん:2010/07/17(土) 19:42:58
>>843>>844のカキコを見たきっかけで自殺して初めて犯罪成立だが、
書いただけではまだ成立していない。
848デフォルトの名無しさん:2010/07/17(土) 19:46:00
つまり完全犯罪未遂 - Attempted Perfect Crime -
849デフォルトの名無しさん:2010/07/17(土) 20:07:22
勘違いする奴がいるといけないで一応突っ込んどくけど、
そんなものが犯罪になるわけがないだろ。
850デフォルトの名無しさん:2010/07/17(土) 20:15:53
お前ら面白すぎるぞ!
とりあえずC#を難読化するフリーのツールを教えてくれ。NanDoku以外で。
851デフォルトの名無しさん:2010/07/17(土) 20:19:54
VisualStudioExpressEdition (ビルド時に暗号化オプションをつける)
852デフォルトの名無しさん:2010/07/17(土) 20:24:14
>>851マジカ!それだけでよかったんか・・・。

ところで.Netが吐くバイナリってバイナリエディタでコードを改変されたとして、
そのアセンブリが正常か異常かはローダーが判断してくれたりするのかな?
853デフォルトの名無しさん:2010/07/17(土) 20:29:27
著名しとくといい
854デフォルトの名無しさん:2010/07/17(土) 20:30:29
ちょ、ちょめい?w
855デフォルトの名無しさん:2010/07/17(土) 20:34:30
アセンブリのところに署名するだけでよかとですか?
856デフォルトの名無しさん:2010/07/17(土) 20:58:14
いろんな方法があると思うけど
URL を指定して HTML を取得する
一番短く書けるコードでどんなのでしょうか?
857デフォルトの名無しさん:2010/07/17(土) 20:59:08
初心者スレで聞けよ
858デフォルトの名無しさん:2010/07/17(土) 22:27:49
ググれないなら諦めた方がいい
859デフォルトの名無しさん:2010/07/17(土) 22:30:28
>>856
System.Diagnostics.Process.Start("http://hoge.jp/");
860デフォルトの名無しさん:2010/07/17(土) 22:39:29
とりあえず859は論外
861デフォルトの名無しさん:2010/07/17(土) 22:45:29
>>859
頭使えw
862デフォルトの名無しさん:2010/07/17(土) 22:50:59
まあ確かに取得できるけどさ、後続のコードで利用できねえだろw
まあ、このぐらいかねえ。

string html;
using (var wc = new System.Net.WebClient())
{
  wc.Encoding = System.Text.Encoding.UTF8; // 必要に応じて
  try
  {
    html = wc.DownloadString("http://www.hoge.jp");
  }
  catch (System.Net.WebException)
  {
    html = "";
  }
}

863デフォルトの名無しさん:2010/07/17(土) 23:08:52
教えてください。


CAD風のグラフィックってOnPaint内に記述するのが普通?
それともPictureBoxなどのコントロールのイベントハンドラ
内でRefreshしまくりが普通?

ダブルバッファリングを使うことを前提として
864デフォルトの名無しさん:2010/07/17(土) 23:18:25
どっちでも一緒
CADみたいなの作るんだったらどうせ描画処理とか内部の処理とかものすごく複雑になるんだから
そんないつでも変更できるようなところどうでもいい
865デフォルトの名無しさん:2010/07/17(土) 23:28:55
一緒とは思わんけどな....

>>863
揚げ足とって悪いけど、その2つって対立しないよ。
Refreshするってことは、自動的にOnPaintで描画することを意味する。

OnPaintが発生しないコントロール以外では、普通はあえてCreateGraphics を使う
必要はないと思う。
866デフォルトの名無しさん:2010/07/17(土) 23:30:33
そうですか。C#始めたばっかりなのでその辺がよくわかってないです。

OnPaint使う方がMFCに似てる気がしますが。
867デフォルトの名無しさん:2010/07/17(土) 23:34:49
イベントとOn○○の違いのことを言ってるのか?
C++わかるんだったら、イベントは関数ポインタの配列みたいなもので
On○○は(オーバーライドされない限り)○○イベントに登録された関数ポインタを呼んでると考えとけばいい
868デフォルトの名無しさん:2010/07/18(日) 00:57:58
statusStrip.ItemsにAddしたToolStripStatusLabelのオブジェクトに、Text = "hogehoge";しても表示がhogehogeにならない
869デフォルトの名無しさん:2010/07/18(日) 02:23:58
今、Cやってるんだけど、ちゃんと繋がって覚えられる?
870デフォルトの名無しさん:2010/07/18(日) 02:25:10
努力次第じゃないかな
871デフォルトの名無しさん:2010/07/18(日) 02:42:45
>>869
CやっててもやってなくてもC#簡単。
872デフォルトの名無しさん:2010/07/18(日) 02:52:53
>>871
musk

GUI系のイメージあるから
難しいのかと。。。

おすすめの書籍とかサイトある?
873デフォルトの名無しさん:2010/07/18(日) 02:59:34
>>872
お題がほしいなら2chの専ブラでもやってみれば?
作り方を解説したブログとかあったはずだし
オープンソースでソース公開してるツインテールだっけ?
もあるし
C#は勉強するのは楽よ
874デフォルトの名無しさん:2010/07/18(日) 03:03:27
>>873
あじゃーす

C終わったらやってみま
875デフォルトの名無しさん:2010/07/18(日) 03:09:11
C終わったらって何をもって「終わった」とするんだろうな
876デフォルトの名無しさん:2010/07/18(日) 03:10:43
道具を理解するのに終わりも糞もないけどなw
それに道具で積み上げた他人の作った部品を理解するには
時間はたくさんいるし
877デフォルトの名無しさん:2010/07/18(日) 03:11:09
ヘミ猫になれば終わり
878デフォルトの名無しさん:2010/07/18(日) 03:13:27
とりあえず入門書の知識全部入れて
構想のプログラムつくれたら、変わるつもり
879デフォルトの名無しさん:2010/07/18(日) 03:29:21
やたらageてる子ってなんなの?
880デフォルトの名無しさん:2010/07/18(日) 03:34:22
smtpclientでメールを送ろうとしてるのですが、CCやBCCが空白のときに
エラーが出てしまいます。
このエラーを回避する方法を教えてください。

エラー内容はパラメータ'address'を空の文字列にすることは出来ません
コードの一部は以下のようになってます。

public static bool SendMail(string strFrom,string strTo, string strCc,string strBcc,string strSub,string strBody )
{
System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage();
mailMessage.From = new System.Net.Mail.MailAddress(strFrom);
mailMessage.To.Add(new System.Net.Mail.MailAddress(strTo));
mailMessage.CC.Add(new System.Net.Mail.MailAddress(strCc));
mailMessage.Bcc.Add(new System.Net.Mail.MailAddress(strBcc));
mailMessage.Subject = strSub;
mailMessage.Body = strBody;
      System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();
      smtpClient.Send(mailMessage);
 
CCやBCCが空のときは設定されないようにすればいいと思うのですが、
方法が分からないので教えてください。
881デフォルトの名無しさん:2010/07/18(日) 03:38:52
if strXXX != 空白 then mailMes(ry
882880:2010/07/18(日) 03:56:04
textboxから値を受け取って各変数に格納してたのですが、
textboxが空でも変数はnullじゃなかったようで、
if(strTo != null)
{
処理
}
では、無理でした。
ただ、strXXX.lengthで0のとき処理をしないようにしたら出来ました!
883デフォルトの名無しさん:2010/07/18(日) 04:03:21
誰がnullと比較しろと言った
884880:2010/07/18(日) 04:06:26
すいません。
元々!=nullでやってて、それで上手くいかなくて質問させていただきました。

空白で比較するというのを見てlengthを思いつきました。
ありがとうございました。
885デフォルトの名無しさん:2010/07/18(日) 06:33:21
System.String.IsNullOrEmptyでいいじゃないか
886デフォルトの名無しさん:2010/07/18(日) 09:44:02
もとMVPで超有名な菊池さんがIsNullOrEmptyは使っちゃだめだ。

s == null || s.Length == 0

と書けば十分だし書くべきって昔言ってた。
理由は忘れた。
887デフォルトの名無しさん:2010/07/18(日) 09:46:14
じゃあ
class MyString : String{ public bool IsNullOrEmpty(){ return s == null || s.Length == 0; } }
って書くわ。
888デフォルトの名無しさん:2010/07/18(日) 09:53:17
IsNullOrEmpty なんてメソッドあったことをはじめてしった・・・
889デフォルトの名無しさん:2010/07/18(日) 09:55:30
>>886
ぐぐったら、昔の.NET2.0でバグがあったらしいね。
それでじゃない?
もう修正されてるらしいが。

http://blogs.wankuma.com/ogiogi/archive/2006/12/12/50253.aspx
890デフォルトの名無しさん:2010/07/18(日) 10:18:14
>>855
実質的にあんま意味ないよそれ。
891デフォルトの名無しさん:2010/07/18(日) 10:33:25
なんでDoubleClickイベントでマウスの座標取得できないの?
コントロールのグローバル座標とマウスのグローバル座標で位置を出すしかないの?
892デフォルトの名無しさん:2010/07/18(日) 10:46:36
マウス以外でも起こりうる高位のイベントだから
マウス限定のダブルクリックならMouseDoubleClickを使う
893デフォルトの名無しさん:2010/07/18(日) 12:54:13
>>886
だれ?菊池さんって。
スマイリーのこと?
894デフォルトの名無しさん:2010/07/18(日) 13:04:36
いや「走る爆弾娘」の方だよ
895デフォルトの名無しさん:2010/07/18(日) 13:08:14
>>879
いまだにこんなこと言ってる人がいるのかw
化石だな
896デフォルトの名無しさん:2010/07/18(日) 13:12:11
>>886
理由は嫌いだかららしい
無視しろ
897デフォルトの名無しさん:2010/07/18(日) 13:16:49
>>894
エーネッヤカ・ダーヴァナ・パンニャッター
898デフォルトの名無しさん:2010/07/18(日) 14:57:13
System.IO.StreamReaderでshift_jisを指定しているのですが、
utf-8のファイルも文字化けせずに読み込めてしまいます。
これは指定方法がまずいのでしょうか?

private void button1_Click(object sender, EventArgs e)
{
System.IO.StreamReader reader = new System.IO.StreamReader(@"C:\test.cs", System.Text.Encoding.GetEncoding("shift_jis"));
while (reader.EndOfStream == false)
{
String line = reader.ReadLine();
Console.WriteLine(line);
}
reader.Close();
}
899デフォルトの名無しさん:2010/07/18(日) 15:17:19
単に英数字のみのファイルだったとか言うオチだろどうせ
900デフォルトの名無しさん:2010/07/18(日) 15:17:38
>>898
自動認識できなかった場合、指定したエンコードとなる。
901898:2010/07/18(日) 15:43:57
>>900
謎がとけました。ありがとうございます。
902デフォルトの名無しさん:2010/07/18(日) 16:18:01
C#で作った有名なソフトって何がある?
903デフォルトの名無しさん:2010/07/18(日) 16:19:48
Visual C#
904デフォルトの名無しさん:2010/07/18(日) 16:20:53
ロマンシング詐欺
905デフォルトの名無しさん:2010/07/18(日) 20:48:37
Visual C#だな
906デフォルトの名無しさん:2010/07/19(月) 12:12:30
Visual C#とか
907デフォルトの名無しさん:2010/07/19(月) 12:14:20
ロマンシング詐欺もそうだったな
908デフォルトの名無しさん:2010/07/19(月) 12:40:42
ロマンシング詐欺のソースあったよな?
無効化された奴。どこだが知ってたら教えてくれ
909デフォルトの名無しさん:2010/07/19(月) 13:09:29
Reflectorでとれるじゃん
910デフォルトの名無しさん:2010/07/19(月) 13:38:31
P2Pの実験のサイトが消されてしまったようだ
911デフォルトの名無しさん:2010/07/19(月) 18:48:04
stringとStringの違いってなんですか
912デフォルトの名無しさん:2010/07/19(月) 18:58:23
ちがいます
913デフォルトの名無しさん:2010/07/19(月) 19:50:55
>>911
ggrks
914デフォルトの名無しさん:2010/07/19(月) 20:00:10
違いはない
実装依存というわけでもなくて、言語仕様で明記されているので絶対に常に同じ
何の意味があるのかは俺も知らん
915デフォルトの名無しさん:2010/07/19(月) 20:04:29
typedefは混乱を招くからサポートしないといいつつこの有様だよ
916デフォルトの名無しさん:2010/07/19(月) 20:42:02
>>911
stringはusing Systemしてなくても使える。
Stringはusing SystemしてないとSystem.Stringの形じゃないと使えない。
917デフォルトの名無しさん:2010/07/19(月) 22:53:45
int の実態は Int32 みたいな感じか。
918デフォルトの名無しさん:2010/07/19(月) 23:08:40
static メソッド使うときだけ String にしてたわ。型宣言とかは string で。
単なる癖だけど。
919デフォルトの名無しさん:2010/07/19(月) 23:19:07
そこはInt32の実態がintだろ。
920デフォルトの名無しさん:2010/07/19(月) 23:32:43
いや、それは、int の実態が Int32でしょ。
実態:実際のありさま。実情。(大辞林)
921デフォルトの名無しさん:2010/07/20(火) 00:10:51
C#の組み込み型はエイリアスで、intなら

using int = System.Int32;

に相当するから、Int32の方が実態
922デフォルトの名無しさん:2010/07/20(火) 01:01:11
Int32:別名
int:本物
923デフォルトの名無しさん:2010/07/20(火) 01:13:27
ごちゃごちゃうるせえな!

int とか strignはC#言語の型なんだよ!

Microsoft.NetFrameworkでの言語ではInt32とかStringが定義されているんだよ!
たとえば、他のベンダーがC#使おうとすると、IntHogeとかStringHogeとか適当な名前付けて
型をつくるってこともありうるって事だよ!
924デフォルトの名無しさん:2010/07/20(火) 01:16:49
>>920
一応突っ込んどくけど、なんでわざわざ辞書まで引いて誤用するんだw
意味がわかんないよ。
この場合正しくは「実体」でしょ。
925デフォルトの名無しさん:2010/07/20(火) 01:26:09
Disposeのあるオブジェクトって、GCが動いてオブジェクトが破棄される段階に入ったらDisposeちゃんと自動で動く?
926デフォルトの名無しさん:2010/07/20(火) 01:26:30
>>923
でも命名規則でローカル変数はキャメル型。
927デフォルトの名無しさん:2010/07/20(火) 01:30:48
928デフォルトの名無しさん:2010/07/20(火) 01:35:27
929デフォルトの名無しさん:2010/07/20(火) 03:30:53
コンテクストメニューをどこかクリックしてポップアップが消えたらOnPaintが走って消えた部分を補完描画してくれるはずなんだけどなぜか描画されない。
ちゃんと処理のフローが来ているかどうかを確かめるためにOnPaintの中にMessageBox.Show("test");とするとちゃんとダイアログが出てくるし、
何故かダイアログを仕掛けると症状が消える。
どうなってんのwindows7
930デフォルトの名無しさん:2010/07/20(火) 03:42:10
wpf使え
931デフォルトの名無しさん:2010/07/20(火) 03:45:07
929ですけどUpdateし忘れてただけでした^^;
932デフォルトの名無しさん:2010/07/20(火) 04:17:07
マルチラインのテキストボックスで、
文字を枠から5ptほど離して表示したいんですが、設定方法はありますか?
933デフォルトの名無しさん:2010/07/20(火) 10:21:07
試してないけどmarginやらpaddingやらで設定できないか?
934デフォルトの名無しさん:2010/07/20(火) 10:35:05
ごめんできないね
935デフォルトの名無しさん:2010/07/20(火) 10:42:36
>>932
picturebox の上に5pt空けてtextboxを置く
936デフォルトの名無しさん:2010/07/20(火) 12:38:49
textbox自体、alignをtopにしても
枠と文字の間がちょっと離れてるんですが……
この距離ってどっかで変更できるんですか?
937デフォルトの名無しさん:2010/07/20(火) 20:09:09
EDITのメッセージにそんなんあった気がする。
938デフォルトの名無しさん:2010/07/20(火) 22:10:51
[DllImport("User32.DLL")]
public static extern int SendMessage(IntPtr hWnd, UInt32 Msg, Int32 wParam, Int32 lParam);
const UInt32 EM_SETMARGINS = 0xD3;
const Int32 EC_LEFTMARGIN = 1;
const Int32 EC_RIGHTMARGIN = 2;
public Form1() {
InitializeComponent();
SendMessage(textBox1.Handle, EM_SETMARGINS, EC_LEFTMARGIN, 8);
}
で動いた。
939デフォルトの名無しさん:2010/07/20(火) 22:13:14
あ、マージンのみ。トップとかはどうするのかな?
940デフォルトの名無しさん:2010/07/20(火) 22:36:07
なんで最近ArrayListとか使えなくなったの
941デフォルトの名無しさん:2010/07/20(火) 22:37:43
使えなくなったわけじゃないけどジェネリックコレクションが使えるようになったから存在価値が無くなった
Silverlightのライブラリでは削除された
942デフォルトの名無しさん:2010/07/20(火) 22:50:01
ジェネリックじゃないコレクションのメリットって何だろう
943デフォルトの名無しさん:2010/07/20(火) 22:53:23
string と int みたいなまったく関連性のないクラスをつっこめるとかかねえ
それも List<object> で充分なわけなんだけれども。
944デフォルトの名無しさん:2010/07/20(火) 23:04:17
ジェネリックを扱えない言語でも使える
945デフォルトの名無しさん:2010/07/20(火) 23:23:38
ToArrayでキャストが入るのが場合によっては嬉しいと思うよ
946デフォルトの名無しさん:2010/07/21(水) 00:41:35
Hashtableのインデクサは例外を返さないのが違う。
947デフォルトの名無しさん:2010/07/21(水) 01:23:36
>>945
どういうこと?
948デフォルトの名無しさん:2010/07/21(水) 02:52:23
>>947
少し考えれば分かると思うよ
949デフォルトの名無しさん:2010/07/21(水) 10:11:53
>>945
ごちゃまぜリストから特定型を抽出するくらいしか思いつかない
それもジェネリックのOfTypeとかあるからなぁ・・・
2.0までしか使えない環境ならってことかな
950デフォルトの名無しさん:2010/07/21(水) 10:20:29
書いた後に気づいた抽出もできないじゃん・・・
951デフォルトの名無しさん:2010/07/21(水) 12:35:34
>>944
ジェネリックはCLSに入っちゃったから
そういう言語が存在すること自体が間違ってることになる
952デフォルトの名無しさん:2010/07/21(水) 12:41:15
初心者スレのせいで抽出が拙者に見えて混乱した
953デフォルトの名無しさん:2010/07/21(水) 17:57:08
なんか質問者と回答の半分くらいのホストが一緒なんだけど自作自演ってことでよろしいか?
954デフォルトの名無しさん:2010/07/21(水) 18:02:16
よろしいです
955デフォルトの名無しさん:2010/07/21(水) 18:08:58
少し古い文章ですが、
http://d.hatena.ne.jp/Horiuchi_H/20060411/1144724047
って今も解決方法は無いのでしょうか?
(あるいはapp.configのファイル名を指定する方法とか・・・)

まぁ、どうしてもダメなら「インストールディレクトリ+ファイル名決め打ちでXMLとして読み込んでしまう」という方法で逃げれるとは思いますが、
やはり、可能ならAppSettingsReaderを使いたいんですよね。
956デフォルトの名無しさん:2010/07/21(水) 21:55:48
>>953
なんで、んなことわかるの?プロ固定?
957デフォルトの名無しさん:2010/07/21(水) 21:59:40
ワロス
958デフォルトの名無しさん:2010/07/21(水) 22:48:35
throw を使うと例外が起きたとき、その場所にジャンプしてくれて便利なんですが、
Debug.Assert でも同じようにジャンプする方法ないでしょうか?
959デフォルトの名無しさん:2010/07/21(水) 22:52:03
throw使えばいいじゃんw
960デフォルトの名無しさん:2010/07/21(水) 22:55:37
>>953
.go.jpが混ざってることについてスルーするとか
961デフォルトの名無しさん:2010/07/21(水) 22:56:47
引き継いだコード全ての関数にtry〜catch〜が・・・さらにcatchではthrowしてるだけだし・・・(’A`
何か直すのに良い方法ない?
962デフォルトの名無しさん:2010/07/21(水) 23:03:35
さらにtry..catchをかぶせるw
963デフォルトの名無しさん:2010/07/21(水) 23:09:50
tryってデバッグの邪魔になるからあんまり使いたくないけど
配布用ソースとかに分けてtry入れるわけにもいかないし
あと配布時には例外をどっかに記録したい時にDebug.Writeなんかを使えばいいんだろうけど
どこの関数で問題が起こってるかトレースする時にも細かいメッセージを出して確認したいけど
これもDebug.Writeするとものすごい量のログが出てくるし
どうするのがいいんだろうね?

1.デバッグ時には例外で止まる
2.配布時には例外をログの取るようになる
3.デバッグ時には細かいトレースメッセージを表示させる
4.ソースの修正を必要としないでリリースビルドするだけでこれが切り替わる

以上の条件を備えた方法ってあるのかね?
964デフォルトの名無しさん:2010/07/21(水) 23:14:20
>>963
条件付コンパイル
965デフォルトの名無しさん:2010/07/21(水) 23:16:47
>>963
もう1つ条件を
プラグマでtryする度に2重記述なんて気持ち悪いソースは作りたくないw
966デフォルトの名無しさん:2010/07/21(水) 23:19:26
試してないけどこれでどうかね

try
{
  throw new Exception();
}
catch (Exception ex)
{
  Hoge(ex);
// Logging
}

[Conditional("DEBUG")]
private void WhenDebugging(Exception ex)
{
// Getting trace message
  throw ex;
}
967デフォルトの名無しさん:2010/07/21(水) 23:20:54
s/Hoge/WhenDebugging/
968デフォルトの名無しさん:2010/07/21(水) 23:22:23
>>966
なるほどそれはいいかもしれない
969デフォルトの名無しさん:2010/07/22(木) 00:26:35
970デフォルトの名無しさん:2010/07/22(木) 00:36:56
そもそもリリースビルドだからって例外(もちろんプログラマが想定していない、
つまりバグに起因するもの)で止まらないプログラムって、考え方間違ってると思う。
971デフォルトの名無しさん:2010/07/22(木) 01:09:43
>>963
1、2、4の意味がよくわからないんだけど、
デバッグ時は例外が起きたらそこで止まるから何もしなくても1は解決で、
その時にエラーの詳細も見れるから3も解決で、
切り替える必要もないから4も解決じゃね?
972デフォルトの名無しさん:2010/07/22(木) 01:38:03
>>963
とりあえずデバッグ→例外→スローされるときのチェックを入れるで十分だろ。

>>966
リリースビルドで挙動が変わるソースってのは極力避けた方がいい。
デバッグ時のみばかすかログを吐くくらいにしておけ。
973デフォルトの名無しさん:2010/07/22(木) 10:48:28
>>963
TraceSource使う
欲しい種類のメッセージだけ設定ファイルでフィルタできる
974デフォルトの名無しさん:2010/07/22(木) 11:32:54
smtpclientでメール送信を行う際に、メールを他のメーラーで参照するために、eml形式で保存をしたいのですが、方法を教えてもらえないでしょうか。
975デフォルトの名無しさん:2010/07/22(木) 11:39:52
簡単な方法はない
C++かなんかで書かれたコンバータのソースコードを拾ってきて
BinaryReaderでも使ってC#に移植する
976デフォルトの名無しさん:2010/07/22(木) 18:37:12
DataGridViewでVirtualModeにした場合、
RowCountに5000と設定した段階で重いのですが、
仕方がないのでしょうか?

グリッドサイズを 10 * 10 程度に小さくして、
スクロールされたら、Valueプロパテイを毎回全部書き直すような、
独自の仮想モードを実装して試してみましたが、
これはこれで再描画が重かったです。

DataGridViewのスクロールによる再描画は速いので、
Valueプロパテイ以外を使って値を設定できれば速そうなのですが。
977976:2010/07/22(木) 20:45:56
自己解決です。AutoSizeRowsModeで行の高さを自動にしてました。。。
978デフォルトの名無しさん:2010/07/22(木) 22:40:12
>>959
throw と Debug.Assert の区別がつかない人は黙ってようね^^
979デフォルトの名無しさん:2010/07/22(木) 23:04:09
他のプログラムのウィンドウからマウスを出さないようにしたいんですが、
どういう方法を取ればいいんでしょうか?
980デフォルトの名無しさん:2010/07/22(木) 23:11:42
WinAPI
981デフォルトの名無しさん:2010/07/23(金) 11:19:12
>>979
自分のウィンドウじゃなくて、ターゲットが別のプログラムなのかいね?
982デフォルトの名無しさん:2010/07/23(金) 11:23:21
マウスを動かさない。
983デフォルトの名無しさん:2010/07/23(金) 11:25:36
そのプログラムを最大化して最前面に出せばいいんじゃね?
984デフォルトの名無しさん:2010/07/23(金) 13:11:03
ログ出力ライブラリを探してて、やたら古いlog4netではなくNLogを使おうと思ったんだけど、
http://journal.mycom.co.jp/articles/2010/03/19/nlog/index.html
以外に、日本語の情報源ってあるかな? 特に
・DBへの出力
・イベントログへの出力
あたりがあると、とてもありがたい。
現在、google翻訳に頼りきりながら原文を調べてるところだけど、やはり(ノウハウという面も含めて)日本語の情報が欲しいなぁ・・・。
985デフォルトの名無しさん:2010/07/23(金) 14:53:08
>>984
その情報なら、1ヶ月後に >>984 のHPに載ってたよ。
986984
>>985
一ヵ月後というと2010年4月ですよね?
すみません、上手く検索できないのですが、出来ればURLを教えていただけませんか?