ふらっとC#,C♯,C#( ..
449:デフォルトの名無しさん
09/01/31 17:27:03
>>435 のコードを実行してみた
Pentium4@2G WinXP .NET 3.5SP1
結果 00:00:31.2455778
というわけで31秒かかる環境はここにもある。
450:434
09/01/31 17:34:00
>>435のコードは31.193秒だった。同じだね。
Vista Home Premium
Core2 Duo T7300@2.00GHz
451:デフォルトの名無しさん
09/01/31 17:38:53
>>448
こちらは、21-22秒で完了。起動時の1秒待機があるから20.5秒くらい。
>>440の説が正しいなこりゃ。
452:デフォルトの名無しさん
09/01/31 17:45:43
戻り値と例外モデルが混在してるのがイライラする。
453:デフォルトの名無しさん
09/01/31 17:50:32
リアルタイムOSじゃないんだから無理ってのが出ないのはそこまでの正確さは求めていないってこと?
454:434
09/01/31 18:08:02
しつこいが、System.Windows.Forms.Timerでも試してみた。
private void timer1_Tick(object sender, EventArgs e)
{
label3.Text = (Convert.ToInt32(label3.Text) + 1).ToString();
}
というカウントアップをリアルタイム描画。
1000回回して31.24秒だった。
もういいや。
>>453
それは、(ひょっとすると元質問者以外は)百も承知でしょ。
455:デフォルトの名無しさん
09/01/31 18:47:05
>>445-447
ごめん、例が悪かったね。返り値が必要/不必要という点でなくて、
そういう返り値を出したいとき、どう書くのがいいのかなと思って。
別の例を出したほうが理解してもらいやすいのかな。
public int GetType(string word) 例えばword=="nullpo"の時0で、それ以外1を返すとき、
わかりやすいのはどれだろう。
if (word == "nullpo") ■1
return 0;
else
return 1;
if (word == "nullpo") ■2
return 0;
return 1;
int type = 1;
if (word == "nullpo") ■3
type = 0;
return type;
456:デフォルトの名無しさん
09/01/31 18:48:24
それを踏まえて、canAcceptNullpoがTrueの時には、1を返したいとすると、
public int GetType(string word, bool canAcceptNullpo)
if (word == "nullpo") ■a
if (canAcceptNullpo)
return 1;
else
return 0;
else
return 1;
if (canAcceptNullpo) ■b
return 1;
else
if (word == "nullpo")
return 0;
else
return 1;
if (canAcceptNullpo) ■c
return 1;
if (word == "nullpo")
return 0;
else
return 1;
などあると思うけど、もしわかりやすいアイデアあったら頼みます。
457:デフォルトの名無しさん
09/01/31 19:02:09
うぽ
return (word == "nullpo") ? ((canAcceptNullpo) ? 1: 0) : 1;
というのは冗談として、
事前条件的なものは早めにチェックして単独でreturnしたほうがいいと思いますよ。
引数の検査、つまりnullチェックのや範囲チェック的なものはそれ。
458:デフォルトの名無しさん
09/01/31 19:05:44
正直、「それを踏まえて」の人が何を主張したいのかよーわからん。
どうでもいいだろそんなの。
そもそも最初の質問者の質問意図と全然違うこと言ってるのに「それを踏まえて」
ってどういう神経?
459:デフォルトの名無しさん
09/01/31 19:11:33
戻り値と例外モデル混ぜるなってアドバイスは
素直に受け止めておいたほうがいいとおも
例外の役割のうちに一貫したエラー処理メカニズムの提供があるんだから
>>455-456よりよほど重要だ
460:デフォルトの名無しさん
09/01/31 19:12:19
エラー処理じゃないか。通知だね
461:デフォルトの名無しさん
09/01/31 21:02:03
Visual Studioで質問
デバックなしで実行。
開いたウィンドウをクリックすると
そのウィンドウが最小化されてしまう。
つまり最大化やら最小化ができない。
複雑でも何でもないんだが教えてくれ…
462:デフォルトの名無しさん
09/01/31 21:03:23
で、どこに質問があるの?
463:デフォルトの名無しさん
09/01/31 21:09:12
>>461
フォームのプロパティを確認しろ
464:デフォルトの名無しさん
09/01/31 22:13:49
みんなありがとう。なんか釈然としなくてね。
>>457
単独で、returnできるうちにしてしまうってのが正解なのかな。やっぱり。
>>458
>どうでもいいだろそんなの。
それならいいんだけどね。なら動けばなんだっていいみたいな感じが自分ではするので、
何か可読性がよく、わかりやすい方法が内かなと思って。
「それを踏まえて」の前はif文によって異なるreturn値を返す方法についての方法論を示したということ。
「それを踏まえて」の後は、その異なるreturn値に、さらに例外がでてきた場合の例なんだけど、
書いていて旨い例が見つからず、何かもっと言い例がないかなと思ったの。
>>459
了解、心にとめておきます。
ただ、手近にあってソースで例を書いたので、戻り値と例外が一緒くたの例になってしまった。
例が悪かった。すまない。よければ、>>455と>>456の書き方で、
自分はこうしてるみたいな理由があったら教えてほしい。
465:デフォルトの名無しさん
09/01/31 22:25:50
だからそんなことどうでもいいって。
もう、そんな些細なことに固執して宗教論争してても飯が食えるような
牧歌的な時代じゃないんだから。
もっと他に理解したり習得したりすべきことが山ほどあるだろ。
466:デフォルトの名無しさん
09/01/31 23:21:19
>>464
そういう些細なことまで書いてあるCode Completeって本がある
複数リターンについても記述があったはずだからまずは立ち読みで
467:デフォルトの名無しさん
09/01/31 23:49:29
>>465
どうでも良くないだろ。こういうのは大事だぞ。
生産性や可視性の観点から重要。
最近はPCの性能が良くなったからか、
同じスコープでインスタンスを返すループを伴うメソッドやプロパティを、
何の資源も消費せずに、いくらでもインスタンスが出てくる
打ち出の小槌みたいに簡単に使う傾向があるしな。
468:デフォルトの名無しさん
09/02/01 00:12:10
命名規則で質問ですが
動詞に対する結果を示すbool型変数の名前はどうしてますか
IsCreated IsClosed 等、Is○○○だと英文法的におかしいので
469:デフォルトの名無しさん
09/02/01 00:14:59
おかしくないですよ。
470:デフォルトの名無しさん
09/02/01 00:15:53
IsCreated IsClosedなんて.NET Frameworkのクラスライブラリにいくらでもあるし
英文法的にも別におかしくない
471:468
09/02/01 00:25:58
そうですかありがとうございます
472:デフォルトの名無しさん
09/02/01 02:31:40
Wikipedia項目リンク
473:デフォルトの名無しさん
09/02/01 03:09:39
Process.Startで起動した外部プログラムからの
戻り値を受け取ることは出来ますか?
474:デフォルトの名無しさん
09/02/01 03:10:50
ExitCodeプロパティ
475:デフォルトの名無しさん
09/02/01 05:30:49
>>468
引数やインスタンス名まで含めて一つのセンテンスと捉えると、寧ろ自然なことが多い
476:デフォルトの名無しさん
09/02/01 10:03:38
HashSetがなぜか見つからない言われるなーと思ったら
Genericの中でこいつだけdllが違うのか
しかもSystem.Coreはデフォルトでは参照設定に追加されてないという罠。
477:デフォルトの名無しさん
09/02/01 10:24:45
3.5で追加されたもんだから仕方ない
一応csc.rspには入ってるけどな
478:デフォルトの名無しさん
09/02/01 11:21:44
HashSetってなんに使うんだ?
479:デフォルトの名無しさん
09/02/01 11:30:00
>>476
>しかもSystem.Coreはデフォルトでは参照設定に追加されてないという罠。
プロジェクトテンプレートの設定次第。
デフォルトで参照設定に追加されている人も結構多いはず。
LINQ用のクラスもSystem.Coreに含まれてるから。
LINQを使うのにいちいち参照設定が必要だったって人はあんまり見ないよね?
そういう人ははHashSetも最初からIntelliSenseに表示されるように見えているはず。
480:デフォルトの名無しさん
09/02/01 11:36:44
>>468
bool型のプロパティの名前をisやhasで始まるのは定番中の定番。
isなしで形容詞or過去分詞のみのパターンも、それはそれで定番。
481:デフォルトの名無しさん
09/02/01 11:55:08
過去分詞のみなのはイベントの名前にしていただきたいところだがな
482:デフォルトの名無しさん
09/02/01 12:37:39
Javascriptから来た子は、OnClickとかがイベント名じゃないことに文句言ってた
483:デフォルトの名無しさん
09/02/01 12:39:36
VBAもOnClickってあったな
484:デフォルトの名無しさん
09/02/01 13:18:35
ちなみに.NETでClickedとかClosedみたいな名前のイベントがあったら
過去分詞じゃなくて動詞の過去形(ガイドライン参照)
485:デフォルトの名無しさん
09/02/01 15:50:10
Putはどっちですか><
486:デフォルトの名無しさん
09/02/01 17:28:11
複数判定する場合はAreなんちゃらにすんの?
487:デフォルトの名無しさん
09/02/01 17:49:53
複数?コードで書いてみて。
488:デフォルトの名無しさん
09/02/01 18:15:04
C#でフォルダを開くProcessについて質問があります。
(1)
this.openProcess = new System.Diagnostics.Process();
this.openProcess.StartInfo.Arguments = @"C:\略\My Documents\";
this.openProcess.StartInfo.FileName = @"C:\Wnidows\explorer.exe";
openProcess.Start();
(2)
System.Diagnostics.Process openProcess = System.Diagnostics.Process.Start(@"C:\略\My Documents\");
(3)
System.Diagnostics.Process.Start(@"C:\略\My Documents\");
(2)と(3)では、My Documentsを開くことができます。
(1)の場合は、引数をうまくとれず、C:\が開いてしまいます。
この理由と、引数としてフォルダを指定する方法を教えてください。
489:デフォルトの名無しさん
09/02/01 18:15:51
○ is △? → ○.Is△で○が複数になることって無いんだよね
○がコレクションの場合は一つのコレクションとみなす
490:デフォルトの名無しさん
09/02/01 18:19:21
>>488
半角空白を含む引数は" "で括る
基本だよ
491:デフォルトの名無しさん
09/02/01 18:28:18
>>490
えっ?
this.openProcess.StartInfo.Arguments = @"C:\略\My Documents\";
と""でくくってあると思うんですけど…。
違ってたらごめんなさい。
というか、C:\Windowsとかの半角空白を含まないフォルダも開けないのです。
492:デフォルトの名無しさん
09/02/01 18:34:02
>>491
そのダブルクォーテーションはC#の文字列を作る意味しかない。
その中身の文字列にダブルクォーテーションを入れないといけない。
"\"C:\\略\\My Documents\\\""のように。
493:デフォルトの名無しさん
09/02/01 18:53:58
>>492
なるほど!
そうでしたか。できました。ありがとうございました。
494:デフォルトの名無しさん
09/02/01 20:46:31
>>484
BegunかBeganか迷った末にStartedでお茶を濁すのですね。わかります。
495:デフォルトの名無しさん
09/02/01 22:18:17
>>494
あるある
496:デフォルトの名無しさん
09/02/02 00:07:25
文字列の定義にstaticクラスを使ってるんですが
public static const Define{
public const string Type0 = "hoge0";
public const string Type1 = "hoge1";
....
}
これだと文字列と比較するときにで
string temp = "bar";
if( bar == Define.Type0){
...
}
else if( bar == Define.Type1){
...
}
といちいち書かなくちゃならんのです。
かといって
public static const Define{
public const int numofNames = 10;
public const string[numofNames] Names = { "hoge0", "hoge1", ...., "hoge9"};
}
みたいな定義はstaticクラスないでは出来ないみたいだし・・・
何か良い方法ないですかね
497:デフォルトの名無しさん
09/02/02 00:10:46
「かといって」以前と以後で話がまるでつながってないんだが?
498:デフォルトの名無しさん
09/02/02 00:11:37
constを諦めて、static readonlyにしたらだめなの?
499:デフォルトの名無しさん
09/02/02 00:11:58
配列にしたいけどなんかできないみたいだから
Type0, Type1, ... みたいにしてるけど、
何かいい方法ない? って聞いてる、
と、よく分かるけど
500:デフォルトの名無しさん
09/02/02 00:17:42
>>499
497 じゃないけどお前の説明でやっと意味がわかった。
それなら、
public static readonly ReadOnlyCollection<string> Type =
new ReadOnlyCollection<string>(new [] {
"hoge01",
"hoge02",
});
こういうことかな?ReadOnlyCollection<string> は本当は継承したクラスにしたほうがいいんだけども
501:デフォルトの名無しさん
09/02/02 00:23:04
public static const Define{
public static readonly string[] Names = { "hoge0", "hoge1", ...., "hoge9"};
}
じゃだめなのか?
これだと、文字列との比較は
if(bar == Define.Names[ "hoge0" ])
のように書くことになる。
502:デフォルトの名無しさん
09/02/02 00:29:23
>500-501
おー、どっちもできました。
constだとnewできなくて、readonlyだとnewできるんですね。
503:デフォルトの名無しさん
09/02/02 01:18:52
Visual C# 2008をインストールして使い始めたんですが、
テキストエディタでコーディング中に表示されるポップアップヘルプの中身が英語なんです。
前使ってたヴァージョンでは日本語だった気がしますが、どうやったら日本語化できますか。
ちなみにメニュー等は全て日本語です。
504:デフォルトの名無しさん
09/02/02 01:24:35
>>503
URLリンク(blogs.msdn.com)
これか?
505:デフォルトの名無しさん
09/02/02 01:56:30
Visual C# 2008環境のデバッグについて質問があります。
開発環境をインストールしていないターゲットマシン(XP)で、
エラーメッセージをファイルに落とすには、
どのようにコンパイルしたらよいのでしょう?
506:デフォルトの名無しさん
09/02/02 04:05:05
Visual Studio C# 2008で質問があります。
コンパイルをしてexeファイルが出来上がるのですが、
これの会社名や著作権の情報を変更するにはどうすれば良いのでしょうか?
507:デフォルトの名無しさん
09/02/02 04:12:29
propertiesのAssemblyInfo.csを修正
508:デフォルトの名無しさん
09/02/02 05:34:26
ありがとうございました。
509:デフォルトの名無しさん
09/02/02 05:39:50
どういたしまして。
510:デフォルトの名無しさん
09/02/02 06:53:14
DirectryクラスのGetFilesより早く一覧を取得する方法ないすか
再帰で一覧取得しようとしてるんだけど
たかだか3000ファイル程度でもAPIのFind***Fileに比べて遅くてたまらねえっす
511:デフォルトの名無しさん
09/02/02 07:06:31
ならAPI使えばー
512:デフォルトの名無しさん
09/02/02 07:27:01
身も蓋も無いこと言わないで下さい><
…最終的に解決しなきゃそうします多分
513:デフォルトの名無しさん
09/02/02 09:59:53
データベースからとってきたdatetime型の日付形式の時間部分だけを抜き取って、
XX:XXではなくXX時XX分と表示させたいのですが、簡単な方法ありますでしょうか?
514:デフォルトの名無しさん
09/02/02 10:15:19
MessageBox.Show(DateTime.Now.ToString("HH時mm分"));
ってやってみ
515:デフォルトの名無しさん
09/02/02 10:27:10
XmlsAa.AaRow B =(XmlsAa.AaRow)C.Rows[0];
って何をやっているんですかね?Rowってのはテーブル1行分使う意味らしいのですが
()とかRows、[0]がわかりません。配列?
516:デフォルトの名無しさん
09/02/02 10:33:41
(XmlsAa.AaRow)はキャスト
[0]はインデクサ
元が何型かは知らんけど
Rowsコレクションの最初の要素をXmlsAa.AaRow型にキャストしてるだけ
分からんならキャストとインデクサでググれ
517:513
09/02/02 10:34:17
普通に抜き出して置換することにしました。
無駄な書き込み申し訳なかったです。
518:デフォルトの名無しさん
09/02/02 10:35:49
ええ!? 514ガン無視!?
519:デフォルトの名無しさん
09/02/02 10:36:27
エエエエエエ(AA略)
520:514
09/02/02 10:37:15
____
/ \
/ _ノ ヽ、_ \
/ o゚⌒ ⌒゚o \
| (__人__) |
\ ` ⌒´ /
521:デフォルトの名無しさん
09/02/02 10:44:28
>>510
>DirectryクラスのGetFilesより早く一覧を取得する方法
>再帰で
DirectoryInfoクラスのGetFiles使ってるよね?
再帰で取得することよくあるけど、そんなに差はなかったような気がするが
522:513
09/02/02 10:45:00
MessageBoxに表示したいわけではありませんので。
523:デフォルトの名無しさん
09/02/02 10:48:40
エエエエエエエエエエエエエ(AA略)
524:デフォルトの名無しさん
09/02/02 10:50:20
何この流れ・・・
525:デフォルトの名無しさん
09/02/02 11:07:55
>>516 ぐぐったけどよくわかりませんでした。ぐぐり続けてみます。C#というかプログラムは単語が理解できなくてつまずくなぁ
526:デフォルトの名無しさん
09/02/02 11:43:29
環境
WinXP SP3
C# 2.0
今度デルファイで作られたソフトkらソケット通信(TCP)を利用してデータの受信を行うことになりました。
相手は1情報を512バイト固定で送信してくるそうです。
例えば相手が以下のようなデータを送信してきて受信完了した場合
どのように受信したデータを展開すればよいのでしょうか?
形式はなんでもかまわないので受信データをひとまず展開できれば構わないのですが・・・
一応受け取ったデータを同じような構造をもったクラスに展開して内部で処理用と考えています。
i1 integer;
i2
・
・
25回(100バイト分)
d1 double
d2
・
・
8回(72バイト分)
yobi : array[0..339] of shortint
(340バイト分)
計512バイト
こんな感じなのですが、なにかこういう展開のヒントや情報でも構わないのでお教え願えませんか?
527:デフォルトの名無しさん
09/02/02 12:07:35
構造体にしといてbyte[]からMemoryStream作ってBinaryFormatterでDeserializeとか?
528:デフォルトの名無しさん
09/02/02 12:22:27
C#でゲーム作って配布すると、
ソースコードを見られてしまうの?
529:デフォルトの名無しさん
09/02/02 12:27:34
それがなにか?
530:デフォルトの名無しさん
09/02/02 12:30:01
みんなで公開羞恥プレイですよ
さああなたも御開帳
531:デフォルトの名無しさん
09/02/02 12:55:11
>>527
そんな感じで出来るんならやってみようと思います。
ありがとうございました。
532:デフォルトの名無しさん
09/02/02 12:58:59
>>526
形式は何でも構わないってことはDelphiで作られたソフトってのも変更可能なわけ?
その割に512バイト固定とか言ってるけど
.NET的にはバイナリの塊を処理するのは
BinaryReaderで読み取っていったり一つずつBitConverterで変換していくのが基本
533:デフォルトの名無しさん
09/02/02 13:21:48
nslookup.exeで調べた相手のSMTPサーバーに直接メールを送る事って出来なくなったのね・・・
534:デフォルトの名無しさん
09/02/02 13:27:35
何年前の話だよ
535:デフォルトの名無しさん
09/02/02 14:34:06
>>534
今日の話ですけど?w
536:デフォルトの名無しさん
09/02/02 14:43:26
さすが初心者スレだ
537:デフォルトの名無しさん
09/02/02 14:45:40
まあ取り敢えず独り言はチラシの裏に書いてろ
質問したいなら質問の体裁を取れ
みたいな
538:デフォルトの名無しさん
09/02/02 14:47:43
>>532
変更は可能と言えば可能なんですが・・・
出来るだけデルファイ側は変更しないようにとのことなので…orz
例えばa1,a2辺りを処理するのは
おとなしく受け取ったバイト配列を BitConverter.ToInt32
で一個づつ自分用にばらしていくのが妥当という感じでしょうか?
539:デフォルトの名無しさん
09/02/02 15:14:40
そうだよ
直接構造体に当てはめるなんてメモリイメージに縛られすぎ
というのがC#の方針
.NET間ならBinaryFormatterのシリアライズとかで十分だからな
540:デフォルトの名無しさん
09/02/02 15:31:15
エンディアンやバウンダリの問題もあって
テキストベースのプロトコルにすることが多くなった。
固定レコードは流行らなくなったな。
541:デフォルトの名無しさん
09/02/02 15:33:40
Visual Studioやってたら、'private'は無効です。のエラーが
毛テスタ
542:デフォルトの名無しさん
09/02/02 15:35:44
'private'を削りなさい
543:デフォルトの名無しさん
09/02/02 15:37:30
前の行の最後にセミコロンが無い
544:デフォルトの名無しさん
09/02/02 15:39:40
メソッドの中で private 宣言した
545:デフォルトの名無しさん
09/02/02 15:43:21
24時間働いているなら労働基準監督署へ
546:デフォルトの名無しさん
09/02/02 15:49:38
private 削ると、使ってる変数が全部定義がありませんってエラーきますた。
セミコロンはありまふ
メソッドの中で宣言・・・これかもです。ありがとう。
Protected voidなんちゃらの処理の中の変数宣言で、privateはダメなのですかね
547:デフォルトの名無しさん
09/02/02 15:53:37
∧∧
ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
 ̄
548:デフォルトの名無しさん
09/02/02 16:10:49
∧∧
ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
 ̄
∧∧
ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
 ̄
549:デフォルトの名無しさん
09/02/02 16:59:36
ふらっとC#
503です。
ターゲットマシン(XP)でのFormアプリケーションのデバッグ方法、助言お願いします。
いまのところMessageBoxでいくつか変数を表示しようとしているます。
問題はMessageBoxさえ表示されないことで、ということはその前でエラーが起きていることはわかるのです。
かといって頭からぜんぶMessageBoxというのもなかなか途方にくれる話ですし。
デバッグのときに表示されるような情報を、一括してテキストファイルに落とせれば楽だと思うのです。
そういう方法ってあるんですか?
550:デフォルトの名無しさん
09/02/02 17:04:05
URLリンク(msdn.microsoft.com)(VS.80).aspx
551:デフォルトの名無しさん
09/02/02 18:07:36
>>539
なるほど
その方向で進めていくことにしました。
確かにマネージド同士なら楽なんですが・・・
そうでないものは初めてでちょっと色々 orz
552:デフォルトの名無しさん
09/02/02 18:26:36
1行目に#define DEBUGと追加して、Debugフォルダにexeファイルができました。
ありがとうございました。
がっ。
エラー情報やいずこ!?
553:デフォルトの名無しさん
09/02/02 18:51:48
>>552
構成ファイルのapp.configにこれをぶち込んどけ
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="Text" type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\log\TraceSample.txt" />
<!-- <add name="Text" type="System.Diagnostics.ConsoleTraceListener" /> -->
<!-- <remove name="Default" /> -->
</listeners>
</trace>
</system.diagnostics>
</configuration>
554:デフォルトの名無しさん
09/02/02 19:19:38
>>522
ワロタ
555:デフォルトの名無しさん
09/02/02 20:10:05
>>535
今日知ったんなら今日の話だよなw
>>534の負けww
556:デフォルトの名無しさん
09/02/02 20:12:09
>>552
それじゃDEBUGの意味がないだろ
TraceクラスとTRACE使え
557:デフォルトの名無しさん
09/02/02 21:59:35
C#ってクラス名に漢字使えたよね?
558:デフォルトの名無しさん
09/02/02 22:01:47
うん
559:デフォルトの名無しさん
09/02/02 23:11:00
>>557
やめろ!やめるんだ!
そ、そんなソースは認めないぞ
#define ノシ throw
calss 三旦 : System.Exception {..}
if ( this.Value < this.Min ) ノシ 三旦;
560:デフォルトの名無しさん
09/02/02 23:14:17
#define がないし。
561:デフォルトの名無しさん
09/02/02 23:14:37
>>559
C# で define は値を定義できないぞ
562:デフォルトの名無しさん
09/02/02 23:19:06
abstract class A
{
public abstract int Hoge { get; }
}
というクラスがあり、これを継承したBでgetの実装をします。
そしてクラスB内から値をセットするのにprivate setを追加したいのですが
CS0546になりできません。
こいうことはできないのでしょうか?
class B : A
{
public override int Hoge
{
get { 〜 }
private set { 〜 } // CS0546
}
}
563:デフォルトの名無しさん
09/02/02 23:19:48
カルス・・・
564:デフォルトの名無しさん
09/02/02 23:29:26
インターフェイスならできるけどクラスではできません
565:デフォルトの名無しさん
09/02/03 01:23:41
WindowsXP C# 2008で質問です。
ビューアーを作り、それをデフォルト起動アプリケーションにしました。
string[] args = Environment.GetCommandLineArgs();
if (args.Length != 1) {Title = System.IO.Path.GetFileName(args[1]);}
で、ファイル名をタイトルにしてウィンドウに表示しようとしています。
exeファイルにデータファイルのアイコンをドラッグするとファイル名を取得できますが、データファイルを単独でダブルクリック起動する場合には取得できません。
デフォルト起動の場合、データファイルのファイル名は、exeファイルにどのように渡されていて、exeからはどのように取得できるのですか?
ご教示願います。
566:デフォルトの名無しさん
09/02/03 01:44:01
>>553
ありがとうございます。
app.configがなかったので、新規項目の追加で構成ファイルを追加してApp.configを作り、そこに追加しました!
で、早速exeを作成し、相変わらずエラーが出ていますが、ログは記述されず…。
ログファイルも作成されていません。
>>556
ありがとうございます。
Traceクラスについて勉強してみます。
いま
URLリンク(www.atmarkit.co.jp)
を読んでます。
567:Charles Petzold
09/02/03 02:36:35
YO, YO, YO. Good midnight, Japanese C# programmer.
My name is Charles Petzold.I write one book. That name is Windows programming by C#.
This book cover most part of Programming Windows by C#.So if you read this book, you can write many system.
By the way, I have three words for Japanese Programmer.
[Don't use Linux.]
Do you understand?
Good bye.
568:デフォルトの名無しさん
09/02/03 02:51:16
Feel free to write in English.
569:デフォルトの名無しさん
09/02/03 02:57:20
petzoldにはお世話になったなあ
でも今見ると古いかもなあ
570:デフォルトの名無しさん
09/02/03 06:07:37
>>565
レジストリにどういう風に登録されてるかによる。
普通、「アプリのパス "%1"」 なんで、そのまま取れるけどね。
571:デフォルトの名無しさん
09/02/03 07:55:20
オンラインヘルプを自PCに持ってくるにはどうすればいいのでしょうか?
いちいちネットに繋ぎに行くんでウザいのですが…
572:デフォルトの名無しさん
09/02/03 08:03:55
ローカルで見られるヘルプがあるよ。日本語版と英語版
探せば見つかるだろうけど親切な人が教えてくれるかも
573:デフォルトの名無しさん
09/02/03 09:34:12
VisualStudioをインストールすればインストール可能
Expressだとサブセット版だけども。
あとはWindowsSDKインスコ。
574:デフォルトの名無しさん
09/02/03 10:09:43
>>571
ヘルプを既にインストールしているならヘルプ(Micorosoft Document Explorer)の
「ツール」->「オプション」->「ヘルプ」->「オンライン」で「オンラインではなくローカルのみで実行」にチェック。
インストールしてなくて、必要最小限で良いなら >>573。
全部入れたいならコレ。2GBちょっとあるけどね。
MSDN Library for Visual Studio 2008 SP1 (2008年12月更新版)
URLリンク(www.microsoft.com)
ISO イメージなのでインストールするには、仮想ドライブが使えるソフト(CloneDrive や DAEMON とか)も必要。
575:デフォルトの名無しさん
09/02/03 11:16:28
URLリンク(msdn.microsoft.com)(VS.80).aspx
PropertyInfo.GetAccessors()を呼び出すと、
getアクセサ、setアクセサ、およびその他のアクセサが返ってくるとありますが
その他のアクセサってなんですかね
576:デフォルトの名無しさん
09/02/03 11:20:19
初めてプログラム言語に触れたのですが
intとかparseとかその他もろもろ、何て読むのですか?
読み方サイトみたいのってありますか?
読めなくても構わないんですがなんとなく喉の骨が取れない感じです。
577:デフォルトの名無しさん
09/02/03 11:24:54
>>576
URLリンク(dictionary.goo.ne.jp)
URLリンク(dictionary.goo.ne.jp)
本質的には通じりゃいい
578:576
09/02/03 11:31:04
>>577
みんなそんなもんなんですね
適当に脳内処理しときます。
今仕事が開店休業状態で暇つぶしにC#ってものを勉強始めたけど
突き詰めたらどんな高度なwindowsアプリでも作れるようになれるのですか?
たとえばosとかofficeとかw
このままだと会社が倒産しそうだから、C#勉強してそっちに働き口みつかるかなぁ・・・
579:デフォルトの名無しさん
09/02/03 11:33:04
OSの上で動作するフレームワーク(.NETとかMonoとか)のさらに上で動作してるから
フレームワークより下にはいけない
580:576
09/02/03 11:37:12
>>579
たしかにos-.net上で動くって事ですもんね
具体的に言うと、リッピングソフトとかofficeアプリまでなら作れますか?
581:デフォルトの名無しさん
09/02/03 11:42:16
それはそれは途方も無く努力すれば
582:デフォルトの名無しさん
09/02/03 11:57:21
C#も極めれば空も飛べるよ!
ハ_ハ
('(゚∀゚∩ 飛べるよ!
ヽ 〈
ヽヽ_)
583:デフォルトの名無しさん
09/02/03 13:18:52
そうだね・・・ねてなくて浮いてる気分だ
584:デフォルトの名無しさん
09/02/03 13:23:03
寝ろよ
寝不足は生産性も減退させる
585:デフォルトの名無しさん
09/02/03 13:25:25
うまく動いてたイベント処理をもうちょっと効率良くしようと思って手を加えて
一週間くらいほったらかしといたら、うまく動いてたときのコード忘れてしまた orz
全く思い出せない
586:デフォルトの名無しさん
09/02/03 13:27:28
そうかそうか
587:デフォルトの名無しさん
09/02/03 13:38:59
svn
588:デフォルトの名無しさん
09/02/03 16:50:25
大規模な改良前にはコード保存しとけば??
おかげさまで「〜〜実装前.txt」が10個以上あるが。
589:デフォルトの名無しさん
09/02/03 17:01:44
>>575
おそらく、VB6/COMで、setアクセサ相当が値のLetと参照のSetに分かれていた名残。
Letが.NETのsetアクセサで、Setがその他に対応すると思う。
590:デフォルトの名無しさん
09/02/03 17:16:13
>>585>>588
バージョン管理システム使って履歴残せ。
591:デフォルトの名無しさん
09/02/03 17:16:35
>>575
言語によっては他の種類のアクセサを定義することもできるということじゃないの
プロパティって複数のアクセサメソッドの情報をまとめたメタデータにすぎないから
592:デフォルトの名無しさん
09/02/03 17:26:52
Form1上にSplitContainerを配置して
・Panel1にテキストボックスとボタン
・Panel2にデータグリッドビュー
を置いてあるんすけど、テキストボックスとボタンってどのコレクションになるんすかね?
this.Controls だとコレクションは SplitContainer しか入ってないし
this.SplitContainer.Panel1.Controls だとコレクションは Panel1 しか入ってない
this.SplitContainer.Panel2.Controls ってやるとちゃんと DataGridView1 が入ってるのに
わけわかめ
593:592
09/02/03 17:31:47
SplitterPanelにPanelを入れ子にしてた orz
594:デフォルトの名無しさん
09/02/03 17:32:54
>>592
Panel1.Contols に Panel1 が入ってるわけねーだろ。
595:デフォルトの名無しさん
09/02/03 17:38:18
>>593
あわてんぼさんめ
596:デフォルトの名無しさん
09/02/03 19:20:41
さぼてんあわめん
597:デフォルトの名無しさん
09/02/03 19:30:32
わあさんぼんめて
598:風来坊
09/02/03 20:48:10
質問です。
C#にて 音声録音の機能を実装したいと思っています。
.NET 1.1,2.0,3.5は問いません。
デフォに設定されている出力(再生)デバイスの音声信号を
wav(wavにこだわる必要は無い)ファイルとして保存したいのですが、
どうすれば実現できますか?
どなたかご教授ください。お願いします。
599:デフォルトの名無しさん
09/02/03 21:22:40
ぐぐる
600:デフォルトの名無しさん
09/02/03 21:35:08
遮断機をくぐる
601:デフォルトの名無しさん
09/02/03 21:36:45
首をくくる
602:デフォルトの名無しさん
09/02/03 21:42:39
せっかくC#でAPI直接もなんだし、MCIかMDXあたりでどうかな。
603:デフォルトの名無しさん
09/02/03 21:46:32
riffを自分で書くなんてどうかしら
604:デフォルトの名無しさん
09/02/03 21:50:21
DirectShow.NET
605:デフォルトの名無しさん
09/02/03 21:55:42
DirecxShowは推奨されないらしいですよ
606:デフォルトの名無しさん
09/02/03 22:03:05
このスレって質問者じゃなくて答える側が初心者っていうオチ?
607:デフォルトの名無しさん
09/02/03 22:06:26
○×したいんだけど、どうすれば実現できますか?
↓
(´・ω・`)しらんがな
こうやったんだけど上手くいきません。どうしたらいいですか?
↓
(´・ω・`)オジサンが教えたるがな
608:デフォルトの名無しさん
09/02/03 22:21:14
Vista + Visual Studio 2008 Express Edition + C# を使っています。
Debugモードでは問題なく動くのにReleaseモードではフリーズする場合、
どういった原因が考えられますでしょうか?
大量の計算を連続してさせているプログラムで、フリーズする箇所は毎回違うようです。
調べようにも取っ掛かりすらなくて困っています。
よろしくお願いします。
609:デフォルトの名無しさん
09/02/03 22:21:52
CPU休めてますか
610:デフォルトの名無しさん
09/02/03 22:26:04
>>609
100万行くらいのtxtファイルを読んできて、数分間延々と処理させてます。
CPUに負荷がかかりすぎるのが問題なんですかね?
611:デフォルトの名無しさん
09/02/03 22:28:31
ぱそこんもたまにはやすみたがっているんだよ。
612:608
09/02/03 22:36:59
タスクマネージャで眺めてたら、
処理開始から1〜2分はCPU使用率50%前後で、メモリ使用量が徐々に増加。
メモリが180MBくらいに達したところでCPU使用率が0%になってフリーズしました。
メモリ食いすぎってことでしょうか?
debugモードでは動くのに。。。
613:デフォルトの名無しさん
09/02/03 22:38:25
デッドロックしてない?
614:デフォルトの名無しさん
09/02/03 22:38:37
そのデバッグモードってデバッグビルド?
リリースビルドでデバッグでも同じ?
615:デフォルトの名無しさん
09/02/03 22:44:20
>>603
Thunder Forceの戦闘AI?
616:571
09/02/03 22:45:47
>>572-574
ありがとうございます。
VMwareでLive版のLinux立ち上げてISOイメージをマウントしてから、
ローカルディスクに全コピーしてみます。
617:608
09/02/03 23:00:46
>>613
マルチスレッド処理なので可能性はあるかもしれません。
ただ、デバッグで起こらないのでどうやって調べればいいのか。。。
>>614
>リリースビルドでデバッグ なんてことができるんですね。
試してみましたが、問題なく動きました。
\Releaseフォルダ内のexeを直接起動したときだけフリーズします。
618:デフォルトの名無しさん
09/02/03 23:03:37
一般的には排他処理のところっしょ
619:デフォルトの名無しさん
09/02/04 00:49:06
排他制御に不備があって、微妙なタイミングの差で動いたり動かなかったりするのかね。
いずれにせよ質の悪いバグだ。詳しく設計がわからないとアドバイスのしようがない。
620:デフォルトの名無しさん
09/02/04 01:32:14
>>570
レジストリですか。
すこし見てみたものの、まったく手がかりがありませんでした。
情報サンクスです。
621:デフォルトの名無しさん
09/02/04 02:01:40
別にレジストリ見なくてもわかる
エクスプローラのメニューからツール→フォルダ オプションを選択
ファイルの種類タブで、データファイルの拡張子がどう登録されているか確認
622:デフォルトの名無しさん
09/02/04 04:07:18
コンボボックスで質問があります。
コンボボックスに二つの項目があり、項目1を選ぶと変数+変数、
項目2を選ぶと変数-変数といったような処理をしたいのですが
if文でどのようにコンボボックスを設定すればそのような処理ができるのでしょうか?
623:デフォルトの名無しさん
09/02/04 07:57:00
はい
624:デフォルトの名無しさん
09/02/04 08:20:10
>>622
ComboBox.SelectedIndexChangedでSelectedIndex見て判断しろ
625:デフォルトの名無しさん
09/02/04 10:06:23
ComboBoxニdelegate突ッ込ンデ自前デ描画シナサイ
626:デフォルトの名無しさん
09/02/04 10:39:03
>>621
どうやって関連づけやったのよ?
関連づけやってるところのソース見せて
627:デフォルトの名無しさん
09/02/04 10:47:57
>>626
↓でも読んでろ
URLリンク(dobon.net)
どうせ実行ファイルのパスに空白が混じってるとかそういうオチだろうけど
628:デフォルトの名無しさん
09/02/04 11:37:58
C#2005で開発したアプリをVistaで動かしてみたところ、
パネルに配置したボタン色がパネルの色に同化してしまいました。
xpでは正常に表示されます
対処方法などあれば教えてください。
629:デフォルトの名無しさん
09/02/04 12:09:00
>>627
おマイには聞いてないってw
レジストリを触ったこと無い人がどうやって関連づけしたのかな〜っと
それに実行パスに空白があるからどうなるの?
630:デフォルトの名無しさん
09/02/04 12:14:36
普通にファイルを開くプログラムの選択で関連付けしたんで無いの。
631:デフォルトの名無しさん
09/02/04 14:02:29
>>629
なんで粘着してんの?親切に教えてるだけじゃない
そもそもの質問者も、プログラムで関連付けをしたいなんて書いてないし
回答者も、レジストリを触ったこと無いとも書いてない
実行パスの空白はCUIのOS触ったことあるなら解るだろ
632:デフォルトの名無しさん
09/02/04 16:05:30
felicaのシステムを作っているのですが、
felicap = felica_polling(pasorip, (ushort)systemcode, 0, 0);
この処理でfelicapに値が入るのですが、この処理の意味が根本的にわかりません。
ここではどういった処理が行われているのでしょうか?
633:デフォルトの名無しさん
09/02/04 16:09:18
FeliCa でソフトを作りまくるスレ 2ブロック目
スレリンク(tech板)
634:デフォルトの名無しさん
09/02/04 16:18:21
felicaのシステムを作っているのですが、
felicap = felica_polling(pasorip, (ushort)systemcode, 0, 0);
この処理でfelicapに値が入るのですが、この処理の意味が根本的にわかりません。
ここではどういった処理が行われているのでしょうか?
連続で同じカードの読み取りができなくて困っています。
635:デフォルトの名無しさん
09/02/04 16:19:31
>>633
すみません。
該当スレに書き込むつもりが同じところに書き込んでしまいました。
636:デフォルトの名無しさん
09/02/04 17:28:30
生まれて半年の者です。他のクラスの変数に関して質問です。
クラスAとBがあります。
クラスAにStack型stackがあります。
クラスBにString型stringがあります。
クラスBでクラスAをインスタンス化して、stackにstringをpushします。
そして変更されたstackをクラスAに戻して作業を進めたいのですが、
クラスAではstackは元のままになっています。
どのような問題があるのでしょうか?
637:デフォルトの名無しさん
09/02/04 17:30:18
クラスAに戻すとか言われてもよく分からんのでコード貼ってくれ
638:デフォルトの名無しさん
09/02/04 17:32:05
AがStackをそのまま外に晒すのはよくない(別のクラスにした意味がない)
pushするメソッドをAに定義するべき
639:デフォルトの名無しさん
09/02/04 17:34:00
Stackを晒してるなら、Pushしたのが反映されてるはずだがな。
たぶんnewして渡してるとかじゃないかw
640:デフォルトの名無しさん
09/02/04 17:40:32
>>637
戻すじゃなくて戻したいの意味でした。すみません。
ClassA
{
public void ClassA()
{ }
public Stack stack = new Stack();
}
ClassB
{
public String string = 〜;
ClassA a = new ClassA()
a.stack.push(string);
}
これだけだとクラスAでは変更できてないです。
pushしたあとにどのような作業が必要でしょうか?
641:デフォルトの名無しさん
09/02/04 17:41:50
意味不明すぎる
642:デフォルトの名無しさん
09/02/04 17:43:05
たぶんクラスとインスタンスの関係が分かってないんじゃない?
生まれて半年だし
643:デフォルトの名無しさん
09/02/04 17:43:28
staticだな〜説明は誰かに任す
644:デフォルトの名無しさん
09/02/04 17:44:38
そこでstaticにしろと言うのは教育的じゃないと思う
645:デフォルトの名無しさん
09/02/04 17:45:02
もうちょっと勉強進めればわかるよ
staticにすればいいのかもしれないけど実際は絶対やっちゃダメなパターン
646:デフォルトの名無しさん
09/02/04 17:47:02
つってもなあ
「○○したいんだ」
って言ってる奴に勉強しろっても回答になってない気がするぜー
647:デフォルトの名無しさん
09/02/04 17:47:08
ClassB
{
public String string = 〜;
ClassA a = new ClassA()
//↓これメソッド内だよね?
a.stack.push(string);
}
↑でインスタンス化された a の stack にはちゃんとPushされている。
ただそのせっかく作ったClassAのインスタンスaは参照されないまま消えてしまっただけ
648:デフォルトの名無しさん
09/02/04 18:10:59
C#で質問があります。
timeが11:00と入力されなかった場合(たとえば1100と入力された場合)、コロンを追加しようとしています。
string time;
if (!(time.Contains(":"))) {
time = time[0] + time[1] + ":" + time[2] + time[3];
}
で、この値を見ると、11:00ではなくて98:00になっちゃうのですが、なんでこんな数字になっちゃうんでしょう。
原因と改良方法をご示唆いただけないでしょうか。
649:636の者です。
09/02/04 18:15:02
windowsフォームのボタンを押したときの動作をプログラムで書きたいときは、
ボタンをダブルクリックすれば、プログラムを書く場所を自動で作ってくれますが、
クラスBにあるボタンを押したときの動作を、クラスAに書くことは可能でしょうか?
650:デフォルトの名無しさん
09/02/04 18:17:59
>>648
char同士の文字コードの加算になってるから
time = '1' + '1';
でやってみるとわかるよ
time = time[0].ToString() + time[1].ToString() + ":" + time[2].ToString() + time[3].ToString();
にすればいい
>>649
+=を使ったイベントハンドラの登録方法が理解できていればできる
651:デフォルトの名無しさん
09/02/04 18:23:58
> time[0].ToString() + time[1].ToString() + ":" + time[2].ToString() + time[3].ToString();
くどすぎる。
StringBuilder つかおうぜ。
652:デフォルトの名無しさん
09/02/04 18:27:28
じゃあString.Format("{0}{1}:{2}{3}", time[0], time[1], time[2], time[3])で
653:デフォルトの名無しさん
09/02/04 18:27:30
>>647
あ〜昔同じ失敗したな〜
654:デフォルトの名無しさん
09/02/04 18:27:37
>>650
早速ありがとうございました。
ToString()でできました。
655:デフォルトの名無しさん
09/02/04 18:28:11
>>651
そこで、StringBuilderは使わないだろ。
time = time.Substring(0, 2) + ":" + time.SubString(2, 2);
656:636の者です。
09/02/04 18:31:41
>>650
なんとなくいけそうです。
>>653
お〜友よ〜
657:デフォルトの名無しさん
09/02/04 18:44:37
>>621
ツール-フォルダオプションは、真っ先に見ました〜。
>>626、636
というか、ここで手動で関連づけを登録しました。
そうしたら、登録したとたん、「詳細設定」のボタンが消え、「元に戻す」というボタンに変化しちゃったのです。
詳細設定のボタンがあれば、アプリケーションの挙動を見れるかと思ったのですけど。
たとえば、txtの詳細設定のopenアクションを見ると、アクションを実行するアプリケーションの項目に、「C:\Windows\system32\NOTEPAD.EXE %1」とあり、これを修正すればよいことがわかります。
ところがなにしろボタンがないから、手も足もでない…。
空白かな〜。う〜〜む。
アプリケーションじたいはデータファイルのダブルクリックで起動しているのですが…。
ま、C#とはあまり関係なさそうなので、この件はこれで。
お騒がせしました。ありがとうございました。
658:デフォルトの名無しさん
09/02/04 18:57:25
お願いします(゚ω゚)
System.Text.RegularExpressions.Regexを使って
[ok] 100
[ok] 0.001
[ng] 00 → 0
[ok] 0.1000
前ゼロ入力をReplaceで""に置き換えたいのですが、正規表現が上手く書けませぬ
教えてエロい人
659:デフォルトの名無しさん
09/02/04 19:00:35
>>658
正規表現 Part5
スレリンク(tech板)
660:デフォルトの名無しさん
09/02/04 19:02:22
あーd>>659 ここで聞きたかったぜっ♪
661:デフォルトの名無しさん
09/02/04 21:49:44
>>645
他クラスからアクセスする変数には手当たり次第static使ってるんだが…
何を勉強すればいいんですか?
662:デフォルトの名無しさん
09/02/04 21:52:53
構造化プログラミング
663:デフォルトの名無しさん
09/02/04 21:55:56
オブジェクト指向プログラミング
664:デフォルトの名無しさん
09/02/04 21:57:38
staticフィールドはダメだがstaticメソッドはいいぞ
privateなstaticメソッドが最高だ
665:デフォルトの名無しさん
09/02/04 21:58:06
構造化プログラミングを理解してない奴が、オブジェクト指向を学んでも無駄。
構造化プログラミングを学んだら、中規模以上のプログラムをたくさん書く。
それからでもオブジェクト指向は遅くないよ。
666:デフォルトの名無しさん
09/02/04 21:59:25
static メンバ変数なんて
ただ1個しか存在しないもんな。
2つ作りてええええええええ!!!! と思っても
1つしか存在できない。
不便過ぎ。
667:デフォルトの名無しさん
09/02/04 22:02:02
C言語等の非OOA出身者はstaticをメモ帳や定数保管庫程度に考えてない
668:デフォルトの名無しさん
09/02/04 22:02:42
しか が抜けた
669:デフォルトの名無しさん
09/02/04 22:02:49
オブジェクト指向も関数型プログラミングも
深いとこに行くと実用的じゃない宗教じみたものがうじゃうじゃ出てくるから
そこに行ってしまわないように気をつけないと
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5010日前に更新/209 KB
担当:undef