ふらっとC#,C♯,C#( ..
369:40
08/10/03 00:33:12
>>368さん
参照URLを拝見しました。理解できました。ありがとうございました。
370:デフォルトの名無しさん
08/10/03 00:36:55
>>367
\ -> \\
本来、文字列の中で \ はエスケープなので、\\ と書かなくちゃいけない。
それを \ で済ますことができるようになる
371:デフォルトの名無しさん
08/10/03 00:37:04
>>367
「@文字列」ですな。
例えばファイルのパスを記述する時、「\」はエスケープ文字を意味する記号になるので
通常は「"C:\\Windows"」など[「\\」と\を2個記述しなければいけないのですが、
@を先頭に付ければ「\」を文字列として扱い、一つしか記述しなくても済みます。
372:40
08/10/03 00:41:57
>>370さん, 371さん
丁寧な補足解説ありがとうございます。
おかげでよくわかりました。
373:デフォルトの名無しさん
08/10/03 00:43:01
>>365
逆。昔はエディタの補完機能なんてのもないし、長い名前付けなかった。
ほんと大昔、初期の初期はプログラムの規模が小さいから
名前の衝突の危険性が低かったからいいんだけど、それはすぐに破たん。
結果どうなったかというと、意味のわからない頭文字略語だらけで、
書いた人にしか意味が分からない名前だらけに。
例えば、>>361 のコードなら、
cb_t b;
add(&b.elem, sbe_create_mcdbe(msg_sec_v10feb05, ws_sec_feb05_11b10)
とかになるんじゃないかと。
374:デフォルトの名無しさん
08/10/03 00:43:50
質問です、エクスプローラでファイルを右クリックして、[プロパティ]画面の
[概要]タブを開くと、そのファイルの作成者やコメントなどの情報を設定したり
閲覧したりすることができます。これを何かの処置で非表示にすることは
可能ですか?設定は随時行い、表示はさせない、という使い方をしたい
のですが、方法についてご存知の方がいらっしゃいましたらご指導お願いします。
.NETからは、dsofile.dll というDLLで設定と参照ができることはわかったのですが、
これをそのファイルごとに非表示にしたり表示したりできれば思います。
375:デフォルトの名無しさん
08/10/03 00:48:04
@"blah\" とかやっても平気なのは何気に凄いね
376:デフォルトの名無しさん
08/10/03 00:50:55
MSDNって、どうしてあんなに遅いんですか?
377:デフォルトの名無しさん
08/10/03 00:51:13
スペッコ不足です
378:デフォルトの名無しさん
08/10/03 00:53:15
つーかパスはC:\\\\\\\\\\\\\\\windows\\\\\\\system32\\\\\\
とかやっても動くぞ
二つ以上連続の\は勝手にOSが読み替えてくれる
379:デフォルトの名無しさん
08/10/03 00:54:41
>>376
仕様です。
IE で見るのが苦痛なサイトを自前で作ってるって笑われてる。
380:デフォルトの名無しさん
08/10/03 00:55:43
MSDNの分かりづらさはなんとかならないのか
専門の校閲係とか雇って分かりやすくしとけよ
381:デフォルトの名無しさん
08/10/03 00:56:13
>>374
プログラムというより、OS の設定の領域。
プログラム的には、シェルエクステンションの仕組みでうんぬんかんぬん・・・
382:デフォルトの名無しさん
08/10/03 00:59:37
>>379
文字が小さくて
拡大すると、どうでも良い部分も拡大されて読めなくなるのは?
383:デフォルトの名無しさん
08/10/03 01:11:39
>>382
仕様です。
JavaScript で文字調整やってやがるから、
フォントサイズいじっても無駄とかだと思う。
拡大鏡の類で拡大すればちゃんと大きくなると思うが。
384:デフォルトの名無しさん
08/10/03 01:18:44
いやかしましは百合ものだろ
初期設定がアレなだけ
385:デフォルトの名無しさん
08/10/03 01:32:23
どこの誤爆だよw
386:デフォルトの名無しさん
08/10/03 01:32:35
かしまし噴いたwww
387:デフォルトの名無しさん
08/10/03 02:30:50
コーラ返せww
388:デフォルトの名無しさん
08/10/03 18:53:33
どなたーか EachWithIndex 実装してる人いませんか?
389:デフォルトの名無しさん
08/10/03 19:54:51
>>388
Rubyのアレならこんなのが
URLリンク(grabbagoft.blogspot.com)
390:デフォルトの名無しさん
08/10/03 20:57:23
>>388
こんなんでどうだろ?
public static class IListExtensions {
public delegate void Fun<T>(T obj, int index);
public static void EachWithIndex<T>(this IList<T> lst, Fun<T> func){
int index = 0;
foreach (T obj in lst){
func(obj, index++);
}
}
}
class Program
{
static void Main(string[] args)
{
string[] strs = { "Foo", "Bar", "Zot" };
strs.EachWithIndex(
(name, index) => { System.Console.WriteLine("{0}: {1}", index, name); }
);
IList<string> lst = new List<string>();
lst.Add("Hoge");
lst.Add("Fuga");
lst.Add("Sugo");
lst.EachWithIndex(
(name, index) => { System.Console.WriteLine("{0}: {1}", index, name); }
);
System.Console.ReadLine();
}
}
391:デフォルトの名無しさん
08/10/03 20:58:07
>>389
これIEnumerable<T>への拡張メソッドにしたほうがいいよね
回りくどくて格好悪い
392:391
08/10/03 21:07:27
意味解らんこと言ってるな
わざわざ余計なインスタンス作ってDo呼び出させる意味がわからない
393:デフォルトの名無しさん
08/10/03 21:13:01
元記事に書いてあるじゃん。
> I still like the "Do" keyword in Ruby to signify the start of a block
394:デフォルトの名無しさん
08/10/03 21:29:54
>>390
Action<T, int>使えよ
395:390
08/10/03 21:33:47
>>394
> Action<T, int>使えよ
おや。そんなものが?
じゃ、こうかな。
public static class IListExtensions {
public static void EachWithIndex<T>(this IList<T> lst, Action<T, int> func){
int index = 0;
foreach (T obj in lst){
func(obj, index++);
}
}
}
396:デフォルトの名無しさん
08/10/03 21:48:15
IEnumerable<T>はどうした
397:デフォルトの名無しさん
08/10/03 21:50:43
引数名はactionだろ常考
398:デフォルトの名無しさん
08/10/03 21:51:42
Union of Soviet Socialist Republics
399:デフォルトの名無しさん
08/10/03 22:03:47
>>396,397
そういうもん?
じゃ、これで。
public static class IEnumerableExtensions {
public static void EachWithIndex<T>(this IEnumerable<T> lst, Action<T, int> action){
int index = 0;
foreach (T obj in lst){
action(obj, index++);
}
}
}
400:デフォルトの名無しさん
08/10/03 22:11:48
Enumerableの拡張メソッド見た感じじゃthis IEnumerable<T>の引き数名は
sourceだがここでもsourceでいいのかね
401:390
08/10/03 22:27:26
>>400
valuesじゃ駄目だろうか?
public static class IEnumerableExtensions {
public static void Each<T>(this IEnumerable<T> values, Action<T> action) {
foreach (T obj in values) { action(obj); }
}
public static void EachWithIndex<T>(this IEnumerable<T> values, Action<T, int> action){
int index = 0;
foreach (T obj in values){
action(obj, index++);
}
}
}
402:デフォルトの名無しさん
08/10/03 22:29:27
派生クラスでプロパティを違う型に変えるのは出来ないの?
class Class1
{
public Class1 Owner { get{〜} }
}
class Class2 : そlass1
{
public Class2 Owner { get{〜} }
}
403:デフォルトの名無しさん
08/10/03 22:32:57
>>399
メソッド名はForEachでいいと思う。
C#だとWithIndexみたいなのは付けずにオーバーロードを使うほうが自然。
public static class EnumerableEx
{
public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
{
foreach (var item in source)
{
action(item);
}
}
public static void ForEach<T>(this IEnumerable<T> source, Action<T, int> action)
{
int index = 0;
foreach (var item in source)
{
action(item, index++);
}
}
}
404:デフォルトの名無しさん
08/10/03 22:33:57
new すればいいんじゃない?
405:デフォルトの名無しさん
08/10/03 22:35:50
オーバーライドでの共変・反変性はサポートされとらんねー
406:403
08/10/03 22:36:48
>>401
参考までにこれも
URLリンク(msdn.microsoft.com)
Enumerable.Selectにもインデックス付きのバージョンがあるんだけど
Enumerable.SelectWithIndexとはならない。
407:デフォルトの名無しさん
08/10/03 22:36:57
じぇねりっく!
408:デフォルトの名無しさん
08/10/03 22:38:04
_
409:デフォルトの名無しさん
08/10/03 22:42:16
public Class1 Owner2 { get{〜} }
public Class2 Owner1 { get{〜} }
( ^▽^)
410:デフォルトの名無しさん
08/10/03 22:45:43
>>399
俺も>>403に一票。てか、俺が書いたとしてもforeachを一行で書くくらいの違いで
クラス名、変数名まで全く同じになりそう
あ、でも型パラメータは一応Enumerableに合わせてTSourceにしとくかな
411:デフォルトの名無しさん
08/10/03 23:10:13
プロジェクトによって、インテリセンスのコメントが
出てきたり、出てこなかったりするんだけど、
何が違うんでしょう?
同じソリューション内にa, b, zの3つのプロジェクトがあったとして、
aからはzのコメントが出てくるのに、bからだとzのコメントが出てこない、
みたいな状態です。
参照設定も同じようになってます。
412:デフォルトの名無しさん
08/10/03 23:25:52
>>403
なるほどなるほど
413:デフォルトの名無しさん
08/10/03 23:32:32
超初心者の質問ですがどなたか願いします
名前空間ってあるじゃないですか
あれって使わないものもusingで指定しても大丈夫ですか?
自分がちょっとテストしてみたところ問題ないような感じなんですよ
めんどくさいので全名前空間usingセット作っておいたら便利なのかと思うんです
何か不都合がおきますか?
414:デフォルトの名無しさん
08/10/03 23:37:32
クラス名が時々衝突する
Timerなんか3つあるしな
415:デフォルトの名無しさん
08/10/03 23:39:39
>>414
わかりました
横着は駄目ですね
ありがとうございました
416:デフォルトの名無しさん
08/10/03 23:43:33
型名をタイプしてからShift+Alt+F10が便利
417:デフォルトの名無しさん
08/10/04 00:06:48
>>409
418:デフォルトの名無しさん
08/10/04 15:17:26
c#ってマックで動きますか?
419:デフォルトの名無しさん
08/10/04 15:17:44
動きます。
420:デフォルトの名無しさん
08/10/04 15:26:44
.Net frameworkがインストール可能な環境なら
どこでも動くってことでおk?
421:デフォルトの名無しさん
08/10/04 15:28:06
いいえ
.NetFrameworkに限りません
422:デフォルトの名無しさん
08/10/04 15:44:15
メガマック食いてえー
423:デフォルトの名無しさん
08/10/04 16:06:44
>>422
スーパーサイズで良いですか?マックマクにしてやんよ
424:デフォルトの名無しさん
08/10/04 17:48:38
メモリ上にある画像(byte[]で保持しているjpg画像)を、
HTMLで好きなようにレイアウト組んで表示させたいんだけど、
WebBrowser使ってできるかな?
画像データはファイルに落とさないこと前提で。
425:デフォルトの名無しさん
08/10/04 18:02:57
プロトコルハンドラを書けばいいんじゃない?
それで、<img src="foo:ID"/>とかできるとおもう。
IInternetProtocolとかでぐぐれ
426:デフォルトの名無しさん
08/10/04 18:07:15
何しようとブラウザに画像ファイルとしてキャッシュされる可能性は捨てられんがそれはOK?
427:デフォルトの名無しさん
08/10/04 18:25:09
今ペイントソフト的なのを作ろうとしているんだが…
範囲選択、塗り潰し、グラデーションが上手くできなくて困ってる。
塗り潰しはピクセルごとに色を取得してクリックしたとこと同じなら…とやろうとしたがそれだと離れた場所にある同じ色のピクセルも色が変わってしまう。
グラデーションはLinearGradientBrushでやろうとしたが、グラデーションが繰り返されてフォトショとかみたいにならない。
初心者で悪いんだが、助言もらえると助かる。
428:デフォルトの名無しさん
08/10/04 18:25:21
或いはNetscapeプラグイン、或いはActiveX
429:デフォルトの名無しさん
08/10/04 18:32:05
困ったときはPaint.NET見てみる
俺は見たことも使ったことも無いから参考になるかどうかは知らん
430:デフォルトの名無しさん
08/10/04 18:43:47
無料のSicence Libraryなかなかいいのないよね。
431:427
08/10/04 19:07:47
>>429
前に見たんだが、ファイル数多くてどれがどれだか分からないし、さらに理解もできなくて…
オープンソースの奴がある程度は理解できるようにはならないと駄目だよな…
432:デフォルトの名無しさん
08/10/04 19:35:11
>>425
ありがとう。
ググってみるわ〜。
むずそうだったらファイルに落とすか、
諦めてDataGridに表示とかにするわ。
>>426
全然おk
433:デフォルトの名無しさん
08/10/04 19:44:41
塗りつぶしは上下左右のピクセルを調べて同じ色なら塗る
を上下左右に再帰的に適応していけばできる気がするな
それよりもいい方法があるかもわからんけど
434:デフォルトの名無しさん
08/10/04 19:59:07
>>433
極めて正しいが多分今のPCでは実用速度的に厳しいと思う
塗りつぶしは昔から研究されてるからちょっと調べればアルゴリズム色々転がってるよ
435:デフォルトの名無しさん
08/10/04 19:59:31
>>433
そのまま再帰で書くとSystem.StackOverflowExceptionしそうだな。
多少きれいじゃなくなるけど、非再帰に書き直さないとな。
スタックを使えばできないこともないと思う。
それと、直接塗りつぶすんじゃなくて、
画像と同じサイズの配列(Bitmapでも可)を用意して 塗りつぶすところと塗りつぶさないところのフラグ(マスク)を作ってから
重ね合わせで塗りつぶせば、グラデーションやテクスチャの流し込みとかにも応用できそう。
あと、塗りつぶす前にマスクをぼかしておけば、よりきれいにぬれているように見えるはず
436:デフォルトの名無しさん
08/10/04 22:32:15
ソースコードを記述したファイルの管理について質問させてください
C#はソースの場所と名前空間に特に関連が無いようですが、一般的に従うファイルの置きかたなどあるのでしょうか?
今はVC#がソースを置くディレクトリに全てのファイルをそのまま置いてます
また、クラスとファイルの関係ですが、どうするのが普通なのでしょうか?
Javaみたいに1個のpublic classに対して1個のファイルを作るのが普通でしょうか?
よろしくお願いいたします
437:デフォルトの名無しさん
08/10/04 22:34:42
好きにすればいいよ
438:デフォルトの名無しさん
08/10/04 22:37:45
>>436
> C#はソースの場所と名前空間に特に関連が無いようですが、一般的に従うファイルの置きかたなどあるのでしょうか?
ありません。
> 今はVC#がソースを置くディレクトリに全てのファイルをそのまま置いてます
ファイル数が少ないときはそれでよいかと。
> また、クラスとファイルの関係ですが、どうするのが普通なのでしょうか?
> Javaみたいに1個のpublic classに対して1個のファイルを作るのが普通でしょうか?
一般的にはそんな感じですが、Java と違って、ひとつのファイルに複数のクラスが書けるので、
機能的にまとまったクラス群はひとつのファイルにまとめることもあると思います。
439:デフォルトの名無しさん
08/10/04 23:02:47
>>437-438
レスありがとうございます
参考にさせていただきます
ついでに、もう1個質問です
C#にはパーシャル クラス機能があり、1個のクラスを複数のファイルに分割して記述できると知りました
しかし、使う場面が思いつきません
パーシャル クラスの一般的な使い方とかあるのでしょうか?
440:デフォルトの名無しさん
08/10/04 23:03:38
>>439
VS でウィンドウアプリを作れば、プロジェクトがどういう風にパーシャルクラスを
使ってるかわかるよ
441:427
08/10/04 23:17:19
>>433-435
レスThx、参考になった
塗りつぶしアルゴリズムでググってみたら良さげなのが出たからそれを利用してみる事にする。
続けてで悪いんだが、範囲選択はどうしたら出来るか助言を貰いたい。
442:デフォルトの名無しさん
08/10/04 23:38:10
>>439
基本的に、機械生成コードと手書きコードを合わせて1クラスにするための機構。
443:435
08/10/04 23:47:52
>>441
矩形だけなら始点(sx,sy)と終点(ex,ey)を保持するだけで良いが
それ以外を選択するには、Bitmapで形を保持すると良い
PictBearは選択範囲をBitmapで保存できたから、多分そんな形でやってるはず。
>>442
WPF,XAMLがある今、いらない子?
444:デフォルトの名無しさん
08/10/04 23:50:45
>>443
いや、WPF 以外にもいろいろ使われてる。
WPF の XAML も、ビルドの途中で partial class を自動生成してる。
445:デフォルトの名無しさん
08/10/04 23:50:50
>>443
形の保持ならGraphicsPathでよかろうよ
446:デフォルトの名無しさん
08/10/05 00:07:30
ラスタ形式の画像の選択範囲は、
αチャンネルで持つのが普通な気が。
447:デフォルトの名無しさん
08/10/05 01:03:01
splitで出力された1次元配列にいくつの要素があるかわかるメソッドってない?
448:デフォルトの名無しさん
08/10/05 01:04:24
Count()
449:デフォルトの名無しさん
08/10/05 01:05:07
>>447
ubound
450:デフォルトの名無しさん
08/10/05 01:05:29
ごめん、VB と勘違いした
451:447
08/10/05 01:08:36
即レスサンクス!
Count()はVBで>>448=>450でおk?uboundを使ってみます!
452:427
08/10/05 01:11:46
助言してくれた人たち、ありがとう。
教えてもらった方法をなんとか試してみる。
453:447
08/10/05 01:16:32
ん、、?
uboundがVBかorz
454:デフォルトの名無しさん
08/10/05 01:25:10
現実では無理だと悟ったので、人工知能の少女を作って仮想世界で彼女作ろうと思うのですが
C#でできますか?
455:デフォルトの名無しさん
08/10/05 01:28:10
C#はそんな貴方の夢を叶えます
456:デフォルトの名無しさん
08/10/05 01:53:29
>>440
レスありがとうございました
自分は今のところコマンドプロンプトで実行するアプリケーションしか作ってないので、そのうち勉強させてもらいます
すみませんが、またまた質問させてください。
今度は例外処理に関してです。
C#だと、例外は必ずしもtry~catchしなくて良いのでしょうか?
Encoding.GetEncoderメソッドを使うプログラムを考えているのですが、特に例外処理しなくても、コンパイルも実行もできてしまいます
おそらく、このメソッドは存在しない文字コードを指定すると例外を発生させますよね?
そのための例外処理が必要だと思うのですが、どうなってるんでしょ?
Javaで言うところのRuntimeExceptionが出ているのでしょうか?
APIを調べたのですが、URLリンク(msdn.microsoft.com)を読んでも、例外関係の情報が入手できません。
例外の基本的な処理の考え方や、ドキュメントからの例外情報の入手方法を知りたいです。
よろしくお願いいたします
457:デフォルトの名無しさん
08/10/05 01:59:56
>>456
いちいち Java と比べるのはやめれ。
例外処理をしなければ、UnhandledException が出て、アプリが終了するだけ。
458:デフォルトの名無しさん
08/10/05 09:04:26
GetEncoder自体はEncoderオブジェクト返すだけだし例外投げる要素が無いな
459:デフォルトの名無しさん
08/10/05 10:33:11
>>457
すみません、自分はCとJavaとrubyくらいしか、経験が無いもので、、、^ ^;
>例外処理をしなければ、UnhandledException が出て、アプリが終了するだけ。
なるほど
しかし、いきなりアプリが終了するのは厳しいですな
>>458
間違えました
Encoding.GetEncoding(String);でした
URLリンク(msdn.microsoft.com)
見ると、例外の情報も載ってますね
申し訳ありませんが、さらに質問させてください
普通にVC#2008ExpressEditionを使っていると、例外処理を行わなくてもコードが書けてしまいますよね
これを、VC#2008ExpressEditionが自動的に全ての例外を処理しなければ警告を出すような設定にすることはできないのでしょうか?
あと、またまたJavaに例えてしまい申し訳ないのですが、各例外にExceptionとRuntimeExceptionのような違いはないのでしょうか?
よろしくお願いいたします。
460:デフォルトの名無しさん
08/10/05 10:34:34
>>456
変な引数与えたときはたいてい ArgumentException。
Java と比べてってことは、「throws リストはないの?」ってことだろうけども。
あれは、「内部実装を外部に漏らしてしまう」って欠点がある割に、
どうせ「面倒だったらException型でcatchしちゃえ」って人が多くて
対して役に立たないから C# では採用しなかった。
461:デフォルトの名無しさん
08/10/05 10:38:38
>>459
URLリンク(msdn.microsoft.com)(VS.80).aspx
例外処理の強要は、Java みたいに throws リストでやるんじゃなくて、
単体テスト書いて、ちゃんとコーナーケースのテストもして、
例外が出たらテスト通さないようにするのがいいと思う。
462:デフォルトの名無しさん
08/10/05 11:11:25
VS2008C# Expressです。
フォームを作成すると、Form1.Designerに以下のような
コードが追加されますが、このSystem.ComponentModel
名前空間のインターフェース、クラスはどのような意味を
持つのでしょうか?ヘルプやHPで調べてもよくわかりません。
private System.ComponentModel.IContainer components = null;
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
}
このフォームにボタンを追加すると、InitializeComponentの
this.components = new System.ComponentModel.Container();
が消えてしまいます。
そこからさらにTimerを追加すると、
this.components = new System.ComponentModel.Container();
が復活し、
this.timer1 = new System.Windows.Forms.Timer(this.components);
が新たに追加されます。
アンマネージドリソースの破棄に関係しているのでしょうか?
詳しく解説しているHP等ありましたら、教えてください。
宜しくお願いします。
463:デフォルトの名無しさん
08/10/05 11:19:38
はじめに入ってるのはそういうテンプレートだから
消えるのは多分使ってないと判断されたから
追加されるのは使うから
IContainerはComponent派生クラスの後片付け(Dispose呼び出し)のルール
自分がDisposeされるときに自分の持ってるComponentもまとめてDisposeするため
464:デフォルトの名無しさん
08/10/05 11:42:59
>>460-461
レスありがとうございます
確かにJava使ってたときもなんでもかんでもExceptionでcatchなさる御仁は多かったですね
うちの会社はルールが厳しくて許されませんでしたけど、下請けに出した古いコードはcatch(Exception e)の嵐…
しかも、何も処理して無いことも多いですし、酷いときはVMが突然終了するコードもありましたね
現実問題、例外処理はどうするもんなんでしょ?
たとえば、ArgumentExceptionとかはそもそもメソッドの使い方を間違えているわけだから、例外が出たらプログラマの責任でテスト失敗てのは納得できます
だから、ArgumentExceptionをcatchして例外処理を記述する必要は無いと思います
しかし、ファイル読み込みに失敗とかのケースはやはりcatchしてなんだかの処理をすべきですよね(少なくともアプリが突然終了はないですよね)
catchして処理すべき例外とプログラマの責任でそもそも例外が出ないようにテストする例外と、なんか、その辺を解説している記事とか本とかないですかね
465:462
08/10/05 11:43:51
>>463
レスありがとうございます。
Component派生クラスのオブジェクトをFormの
System.ComponentModel.IContainer componentsに登録させておき、
フォームをDisposeするときに一緒にDisposeさせる…
上記のような処理のためcomponentsが存在している。
といった理解でよろしいでしょうか?
466:デフォルトの名無しさん
08/10/05 11:47:56
>>465
うん
467:462
08/10/05 11:50:22
>>466
ありがとうございました。
468:デフォルトの名無しさん
08/10/05 11:51:50
Silverlight2RC0来たね
469:デフォルトの名無しさん
08/10/05 12:21:11
半透明なコントロールを親コントロールに貼り付けたとき、
親コントロールが子コントロールの領域を描画しなくなって
表示がおかしくなるのを防ぐために設定するのって何だっけ?
変な日本語ですまn
470:デフォルトの名無しさん
08/10/05 13:06:53
>>465
厳密に言うとそれだけじゃなくて Container Site Componentの
結合のために存在している。
しかし、この辺は ComponentModel の基本的なことだから押さえた
ほうがいいともいえるけどコンポーネントを作るんじゃなく使うだけ
なら気にしなくてもいいからわかんなくてもいいかも。
471:469
08/10/05 13:12:09
追記
Win32で言うところの
WS_CLIPCHILDREN と WS_CLIPSIBLINGS
を外したいってことなんだが。
472:デフォルトの名無しさん
08/10/05 16:26:58
例外処理はこれで十分
static void Main(string[] args)
{
try{
//ほげほげ
}
catch(Exception){
MessageBox(e.ToString(), "えら〜");
}
}
473:デフォルトの名無しさん
08/10/05 16:28:36
hogeってなんなの?
474:デフォルトの名無しさん
08/10/05 16:32:19
hageやhigeの変種
475:デフォルトの名無しさん
08/10/05 16:32:58
>>472
e
476:デフォルトの名無しさん
08/10/05 16:33:04
hogeの定義は無いよ
適当とか未確定とかニュアンスでいいんじゃないでしょうか?
477:デフォルトの名無しさん
08/10/05 16:37:12
では、ハナモゲラ語とはなんですか?
478:デフォルトの名無しさん
08/10/05 16:59:13
Lengthだろ
479:デフォルトの名無しさん
08/10/05 17:05:41
!
480:デフォルトの名無しさん
08/10/05 17:13:57
想定外の例外は最上位でキャッチしてログ書いてメッセージ出して終了。
普通に想定される処理続行可能な例外はその場でキャッチして適度に処理。
続行出来ないようなのはあえてキャッチせず最上位に任せるか、
ラップして再スローしてやっぱり最上位に任せる。
例外処理って、厳密にやろうとすると細かいルールばかりになって、
しかもかなり慎重に考えないと意味なかったりやたらコーディングが複雑になったりして、
結局シンプルに決めた方がましなことが多い。
481:デフォルトの名無しさん
08/10/05 17:37:48
変数と配列・リストで命名規則の違いとかってありますか?
たとえば変数の場合は出だしが小文字でそれ以降は大文字
例) int variableNumber;
みたいな感じにするのが一般的とされていますが、これと似たような暗黙上のルールは
配列・リストにありますか?
482:デフォルトの名無しさん
08/10/05 17:54:20
>>481
暗黙っていうか、それはcamelスタイルって名前がついてる。
MSのクラスライブラリ作成のガイドラインに、なににどのスタイルを使うとか書いてある。
483:デフォルトの名無しさん
08/10/05 17:58:11
配列やリストだって変数に入れるインスタンスじゃん?
484:デフォルトの名無しさん
08/10/05 18:02:20
ローカル変数に大文字二十日湾だろ不通
485:462
08/10/05 18:10:02
>>470
基本的なことなら理解したいのですが、
解説サイトとしてはMSDNの「Visual Studioによるコンポーネント」
のあたりを読むしかないですかね?
コンポーネントのありがたみというかコンポーネントでないと
出来ない事なんかがよくわかりません。
486:デフォルトの名無しさん
08/10/05 18:56:11
どうしてプロパテーはジェネリックに出来ないの?
487:デフォルトの名無しさん
08/10/05 19:13:51
うまく質問している内容が伝わるか不安ですがよろしくお願いします
やりたいのは、データをファイルに保存するクラスを作りたいのですが
テキストファイル形式で保存するんじゃなくて、テキストエディタで開いても
みれないデータ形式ありますよね?.exeとか
そんな感じで保存したいんだけどどういう知識が必要なのかな?
保存したいのは計算結果の数値や文字列データです
488:デフォルトの名無しさん
08/10/05 19:16:59
>>487
好きにフォーマットを考えて、好きに読み書きすればよろし。
489:デフォルトの名無しさん
08/10/05 19:45:24
>>488
だから、普通に書き込んだらテキストファイルで見れるから
そうならないように書き込みたいからやり方教えろって言ってるんだけど
お前メクラか?
490:デフォルトの名無しさん
08/10/05 19:50:21
お前がテキストで書き込んでるから見えるんだろボケ
491:デフォルトの名無しさん
08/10/05 19:52:47
>>489
>>488は別に煽ってるわけでもないし、ましてメ○ラなわけでもない。
むしろ馬鹿でメ○ラでツ○ボでどうしようもないのは君の方だぞいやマジで。
492:デフォルトの名無しさん
08/10/05 19:54:08
>>489
> だから、普通に書き込んだらテキストファイルで見れるから
ならない。
バイナリを見れる、って意味では見れるけどなw
493:デフォルトの名無しさん
08/10/05 19:59:26
まあお前らKOOLになれよ
BinaryFormatterでシリアライズなんかどうかな
494:デフォルトの名無しさん
08/10/05 19:59:56
昨日splitで出力された配列に何個要素が入ってるのかわかる関数を教えてくれってレスして
count()を教えてもらったんだけどこの関数どうやって使うんですか…?
ググってもそれらしい構文が見つからなくて…
495:デフォルトの名無しさん
08/10/05 20:01:18
素直にLengthプロパティ見れ
496:デフォルトの名無しさん
08/10/05 20:06:59
>>494
だからお前はオブジェクト指向の概念から学べよ猿
あと、countだと、nullだった場合エラー出るからお勧めできない
countなんて薦めた奴はバカだから放置しろ
497:デフォルトの名無しさん
08/10/05 20:51:01
>>494
その人、たぶん Length って言いたかったんだと思うよ。
VBとか他の言語がいろいろ混ざっちゃってたっぽいので。
Split の結果って配列だから、それの長さ調べろってこと。
498:494
08/10/05 20:56:07
>>495-497
そうかLength見ればいいのか…
なんか変な考え方してたみたいですorz
皆さん優しくありがとう
499:デフォルトの名無しさん
08/10/05 21:10:30
初心者です。C#で
ある整数のセットに対して、最小値(か最大値)を配列で返す機能ってあります
でしょうか?ちょっと探してみたくらいじゃみつかりませんでした。
例
[3,3, 5, 2, 2, 4, 4, 7] => [2,2]
[7,2,3,4,1,,-1,-1,-3,5] => [-3]
500:デフォルトの名無しさん
08/10/05 21:11:32
あ、,,になっている部分は、nullみたいな感じで無視します。
501:デフォルトの名無しさん
08/10/05 21:15:56
そのものはないけど、
new[] { data.Max() }
502:デフォルトの名無しさん
08/10/05 21:20:37
>>501
複数あったらその数だけ作るらしいぜ
var max = data.Max();
var result = Array.FindAll(data, x => x == max);
503:デフォルトの名無しさん
08/10/05 21:35:02
var min = data.Min()
var result = array.Where(n => n == min);
でもおk
504:デフォルトの名無しさん
08/10/05 21:35:34
>>503訂正
var result = data.Where(n => n == min);
505:デフォルトの名無しさん
08/10/05 21:41:21
みなさんありがとうござます。
早速ためしてから感謝しようとおもっておりましたが、
int[] d = {11,11,22,33,10,10};
d.Min()がない。
というような状況です。もしかして2.0には、Min,Maxないんでしょうか
(Math.Min,Maxはありましたが)
506:デフォルトの名無しさん
08/10/05 21:55:20
ああ、そう。
Min, Max は 3.0 から。
507:デフォルトの名無しさん
08/10/05 21:59:09
単に3.0って言うとややこしいぜ
.NET 3.5/C#3.0から
508:デフォルトの名無しさん
08/10/05 22:07:38
public static int[] Maxs(int[] arr)
{
int max, cnt;
if(arr.Length == 0)
{
return new int[0];
}
max = arr[0];
cnt = 1;
for(int i = 1; i < arr.Length; i++)
{
if(arr[i] == max)
cnt++;
if(arr[i] > max)
{
max = arr[i];
cnt = 1;
}
}
int[] result = new int[cnt];
for(int i = 0; i < cnt; i++)
result[i] = max;
return result;
}
こうかな?
509:デフォルトの名無しさん
08/10/05 22:10:48
>>508
もう少し短くまとめろよ・・・情けない
510:デフォルトの名無しさん
08/10/05 22:17:36
2.0 でちゃんとやると508になる気がするが。
C# 3.0 使えという話ではある。
511:デフォルトの名無しさん
08/10/05 22:18:10
>508 大変ありがとうございます。
double, floatなどでもつかえるようにしてみようとおもいましたが
==, >の比較ができなく困ってしまいました。
class MathEx
{
public static T[] Maxs<T>(T[] arr) where T : IComparable
{
T max;
int cnt;
省略
max = arr[0];
cnt = 1;
for (int i = 1; i < arr.Length; i++)
{
if (arr[i] == max)
cnt++;
if (arr[i] > max)
{
max = arr[i];
cnt = 1;
}
}
T[] result = new T[cnt];
省略
}
}
もうちょい悩んでみます。
512:デフォルトの名無しさん
08/10/05 22:24:07
質問者です。以下でなんとかいきそうでした。
if (arr[i].CompareTo(max) == 0)
cnt++;
if (arr[i].CompareTo(max) > 0)
513:デフォルトの名無しさん
08/10/05 22:24:08
>>511
.CompareTo
514:デフォルトの名無しさん
08/10/05 22:27:46
>513
ありがとうございます。このスレでもでてきたEachForや今回のMaxsのような独自の便利
関数は、みなさんどのように管理されてるんでしょうか??なにかアドバイスあればお願い
します。
515:508
08/10/05 22:29:30
>>509
public static int[] Maxs(int[] arr)
{
int max = Int32.MinValue;
int cnt = arr.Length == 0 ? 0 : 1;
foreach(int value in arr)
{
if(value == max)
cnt++;
if(value > max)
{
max = value;
cnt = 1;
}
}
int[] result = new int[cnt];
for(int i = 0; i < cnt; i++)
result[i] = max;
return result;
}
うーん、こうかな…
516:デフォルトの名無しさん
08/10/05 22:37:19
>>515
まあ、まずまずだけど、ひとひねりほしいな
例えば再起処理を使うとかさ
forでやるのはダサイ
>>514
管理ってなんぞ?クラスで定義すればいいんじゃねーの?
517:デフォルトの名無しさん
08/10/05 22:40:25
こんなんで再帰使う方がアレだわ
518:508
08/10/05 22:41:45
よく見たらバグってんなこれ
519:デフォルトの名無しさん
08/10/05 22:55:13
>>514
適当にinternal staticなクラス作って入れとく
よほど汎用的で便利なものでなければプロジェクトごとに書き捨て
520:デフォルトの名無しさん
08/10/05 22:58:44
倹索とかで見つからなかった場合null帰すのとエラーはどっちがいいの
521:デフォルトの名無しさん
08/10/05 23:00:22
場合による
「検索」という意味合いのメソッドなら例外は投げない方がいいかも
522:デフォルトの名無しさん
08/10/05 23:00:59
>>514
CodeProjectに登録
523:デフォルトの名無しさん
08/10/05 23:02:17
>>516
なんという関数型脳w
524:デフォルトの名無しさん
08/10/05 23:06:52
この問題結構奥深いな…
最小値、最大値のセットだけでなく
2番目、3番目、そして一番多くはいってる数とか
だそうとして、
ヒストグラムに一旦入れて、やってみてたけど、朝までかかり
そうなかんじなんで、つかーれたのでエロみてくる。
525:516
08/10/05 23:14:49
おまえらバカだから答え教えてやるよ
まず、配列をList<>に入れる
その後。Sort()
あとは言わないでもわかるな?
526:デフォルトの名無しさん
08/10/05 23:18:27
>>521 そもそもnull使えない型とか…
527:デフォルトの名無しさん
08/10/05 23:25:43
null許容型もだめな型ってあるの?
あるいはDictionary.TryGetValueみたいに可否と結果を別に表す方法もあるし。
528:デフォルトの名無しさん
08/10/05 23:26:18
>>525
List<>に入れるときはforを使わず再帰処理を使うんですね
わかります
529:デフォルトの名無しさん
08/10/05 23:28:44
数字なら最大値でも返えせば
530:516
08/10/05 23:31:09
要素から最大値を抜き出す
その要素に-1を代入
また、要素から最大値を抜き出す
最初に取り出した最大値より小さい場合は
唯一の最初のが最大値
あとはわかるな?
531:デフォルトの名無しさん
08/10/05 23:32:19
タイプつかってヒストグラムできた。が馬鹿でかいものになった。
歪度とかCV、σとか無意味につけてしまった。
532:デフォルトの名無しさん
08/10/05 23:37:56
ダメだ、俺の頭では、-1を代入のところがよくわからん。。。
整数だからマイナス数値ばっかのセットだってあるんだよね
533:デフォルトの名無しさん
08/10/05 23:42:09
これに速度の差とかあるですか?
try
{
int index = 0;
for(;;)
{
if(name == list[index++].name)
{
break;
}
}
return list[index];
}
catch(ArgumentOutOfRangeException)
{
return null;
}
//int count = list.Count;
//for(int i = 0; count > i; i++)
//{
// if(name == list[i].name)
// {
// return list[i];
// }
//}
//retnrn null;
534:デフォルトの名無しさん
08/10/05 23:45:08
>>533
foreachのほうが早い
535:デフォルトの名無しさん
08/10/05 23:52:39
516は突っ込んだら負けなんだろうか
要素は全部0以上とか元の配列を破壊してもいいとか勝手な条件付けすぎ
536:デフォルトの名無しさん
08/10/05 23:53:23
>>530
最大値が負の数だったら?
537:デフォルトの名無しさん
08/10/06 00:00:40
エレガントな解はまだかーい?
538:デフォルトの名無しさん
08/10/06 00:08:52
>>535
>>536
屁理屈言うな
あくまで>>505の規格に即しただけ
誰が符号付整数なんて条件出したんだ?
539:デフォルトの名無しさん
08/10/06 00:11:54
元々の質問は>>499でそ
540:デフォルトの名無しさん
08/10/06 00:12:05
いや、499時点で負数出てきてるし…
541:デフォルトの名無しさん
08/10/06 00:18:21
組み紐群ならったときに、エレガントな方法あったきがする。。。
が教科書すら全部研究室おいたまま10年以上たっとるな。
542:デフォルトの名無しさん
08/10/06 00:36:00
ApplicationExceptionじゃなくて
ArgumentOutOfRangeExceptionとか
InvalidOperationExceptionとか
中の人以外が勝手に使ってもいいの?
543:デフォルトの名無しさん
08/10/06 00:46:30
真面目な話、いくらふらっとスレだからって、>>499ってそんな悩む問題なのか?
そっちの方が悩ましい問題だ。
こんなのベタにやればいいだけじゃん。
間違いなく(負の数について簡単に説明してやりさえすれば)小学生でも書けるコードにしか思えないんだが。
544:デフォルトの名無しさん
08/10/06 00:47:13
>>542
ApplicationExceptionは黒歴史になりました
545:デフォルトの名無しさん
08/10/06 00:51:22
>543
小学生でも書けるかもしれないが、万人が使いたくなるような
汎用的なもの、もしくは、ロジックがみためにも美しいもの
をつくるのは、難しいぞ。
そんなに簡単に書けるコードだというのなら、手本をみせてほしい。
ヒストグラムに入れるという方法が私には、なるほど!と思わせてくれた。
546:デフォルトの名無しさん
08/10/06 00:57:52
>>545
何を言っているのか意味がわからん。
汎用的?
汎用的かどうかがコードの書法によって変わるとでも言うのか?w
547:デフォルトの名無しさん
08/10/06 01:02:27
振る舞いが重要であり、内部の構成には興味ありませんね
>>545は概念から学べ
548:デフォルトの名無しさん
08/10/06 01:04:26
証明の結果よりも、証明の仕方に興味があるタイプです。
549:デフォルトの名無しさん
08/10/06 01:06:42
なら数理論理学でも学べよ
C#とは関係ない
550:デフォルトの名無しさん
08/10/06 01:13:31
>>548
それ自体はいいと思うんだが、だからといって三平方の定理レベルの話題で
悩むのはヤバいだろう。
551:デフォルトの名無しさん
08/10/06 01:17:20
三平方の定理=立方体の体積の出し方だと思った俺の居場所は
552:デフォルトの名無しさん
08/10/06 01:22:04
乱数なんてらんだむっぽいのがでりゃいいんだよ。
メルセンヌツイスターなんていらんわ。
553:デフォルトの名無しさん
08/10/06 01:25:34
C#ってなんでメソッドの引数でデフォルト値を廃止してしまったんですか(´・ω・`)?
554:デフォルトの名無しさん
08/10/06 02:16:15
>>553
メソッドオーバーロードで解決できるから
この質問いつも出るからテンプレに入れないか?
555:デフォルトの名無しさん
08/10/06 02:18:06
>>554
C++もメソッドオーバーロードは実装してません?
556:デフォルトの名無しさん
08/10/06 02:21:44
関数オーバーロードでデフォルト引数が表せるのだから
デフォルト引数なんていう分かりにくいものは使わないようにしようという方針
557:デフォルトの名無しさん
08/10/06 03:12:09
C++作ったBjarneも多重定義があればデフォルト引数なんて構文糖、みたいなことを自著に書いていた気がする。
558:デフォルトの名無しさん
08/10/06 03:46:50
デフォルト引数の方が直感的じゃないですか?
多重定義もいいですけどコードが冗長になって保守・管理が面倒くさくなりそうですが・・・
559:デフォルトの名無しさん
08/10/06 08:35:26
デフォルト引数はオーバーロードで出来ても逆は無理だろ。その時点で
どっちがなんて議論じたい意味なし
それとシグニチャと呼び方もよろしくない、デフォルト引数は
560:デフォルトの名無しさん
08/10/06 08:49:34
ドキュメントの保守が面倒だったりはしないのかね
ある機能の説明がオーバーロードされたメソッドごとにあるから
必然的に重複が多くなるし
561:デフォルトの名無しさん
08/10/06 09:13:27
デフォルト引数って、使う人が結局その値を理解する必要があるからね。
単に、無い、という方が安全だよね。
562:デフォルトの名無しさん
08/10/06 10:05:26
デフォルト引数無いのがC#の最大の欠点
563:デフォルトの名無しさん
08/10/06 10:16:24
敢えて無くしたのに
それを欠点と思ってるようじゃC#は向いてないよ
564:デフォルトの名無しさん
08/10/06 10:18:40
public void foo(bool bar = true){
・・・
}
で済むところを
public void foo(){
foo(true);
}
public void foo(bool bar){
・・・
}
なんてダラダラ書くのは無駄すぎるな
565:デフォルトの名無しさん
08/10/06 10:29:43
オーバーライドすると途端にカオス
566:デフォルトの名無しさん
08/10/06 10:50:24
デフォルト引数は構造上、後ろから設定しなくてはならないし歯抜けができない。
567:デフォルトの名無しさん
08/10/06 12:42:12
文句があるならC++使えばいいじゃん
568:デフォルトの名無しさん
08/10/06 12:43:36
C++なんかもっと欠点だらけだろ
569:デフォルトの名無しさん
08/10/06 13:06:49
usingとかDisposeを多用しなきゃならん状況になると
C++ならもっと簡単に書けるのに、とか思ってしまう。
570:デフォルトの名無しさん
08/10/06 13:15:31
まそりゃ適材適所
C++の方が簡単に書けるならC++で書けばいい
DllImportだってC++/CLIによるラップだってできるんだから
571:デフォルトの名無しさん
08/10/06 13:20:35
VisualC#2008を使っています。
C#をコンソールからコンパイルする方法を知りたいです。
csc filename.cs
でよいらしいのですが、cscにパスが通っていないようです。
cドライブをcscで検索しても見つからないです。
どなたかご教示いただけないでしょうか。
572:デフォルトの名無しさん
08/10/06 13:25:26
スタートメニューに.NET 2.0 SDKみたいな項目あるだろ
それのSDKコマンドプロンプト使え
573:デフォルトの名無しさん
08/10/06 13:43:18
>572
ないです。
Microsoft Visual C# 2008 Express Edition
はあります。
普通の(WindowsXP標準の)コマンドプロンプトではだめなんですか?
574:デフォルトの名無しさん
08/10/06 13:50:10
C:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe filename.cs
コンパイラのパスは環境によって違うかも分からん
もしくは環境変数PATHにC:\WINDOWS\Microsoft.NET\Framework\v3.5をついかして
csc filename.cs
とかシステム環境変数に入れたくなければ
set PATH=C:\WINDOWS\Microsoft.NET\Framework\v3.5;%PATH%
みたいなバッチファイルを用意してそれを使うとか
575:デフォルトの名無しさん
08/10/06 13:51:35
%windir%\Microsoft.NET\Framework\v?.?
にあるからなあ、検索時Windowsのディレクトリは除外してたかな。
576:デフォルトの名無しさん
08/10/06 13:55:05
標準のコマンドプロンプトからなら、vcvars32.batを実行すりゃいけるよ。
探してパス通ったとこにコピーしておいてみては。
577:デフォルトの名無しさん
08/10/06 13:57:50
>574、575
あ、ありました。Prorgam Fliesばっかり探してました。
Windowsの下だったのですか。
検索はシステムファイルは除いていたかもしれません。
ありがとうございました。
578:デフォルトの名無しさん
08/10/06 16:31:50
なぁ、クラスを作ってそこのメソッドで何らかの「閉じた」処理をさせるとき、
このメソッドは引数を取るようにすべきだと思う?
それとも必要ならクラス内のフィールドやプロパティを読めばいいわけだから
そもそもメソッドに引数なんて指定する必要も無いと思う?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5377日前に更新/215 KB
担当:undef