トップページ⇒tech
1001コメント244KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/01/09(水) 00:51:11.11
このスレッドは
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、
もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますが、
ご了承下さい。

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

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

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

関連スレ
C#, C♯, C#相談室 Part78
http://toro.2ch.net/test/read.cgi/tech/1356268827/
0232デフォルトの名無しさん2013/01/20(日) 01:25:42.07
>>228
というか要求通りに動かないぞ、これ
相対パスが違ってても、ハッシュがコリジョンしていればサイズの判定に進むだろ
そんでサイズが一緒ならEqualはtrueを返すぞ
02332032013/01/20(日) 01:31:50.20
>>232
それは認知しています。
実際にはEqualsメソッド内部でも、相対パスとサイズの両方が一致すればTrueってな感じで比較を行うようにするつもりです。
0234デフォルトの名無しさん2013/01/20(日) 01:32:56.01
なーんだ
0235デフォルトの名無しさん2013/01/20(日) 01:45:38.41
>>231
IDisposableを実装してるメンバがあれば、全部Disposeを呼ばなきゃだめだろ。
0236デフォルトの名無しさん2013/01/20(日) 01:46:49.13
>>233
こうあるべき、とまでは言わないけど、俺だったらこう書くかな〜という例。
http://ideone.com/ZfAXcZ
0237デフォルトの名無しさん2013/01/20(日) 02:06:59.51
Path.GetFileNameを使おう(提案)
0238デフォルトの名無しさん2013/01/20(日) 02:28:39.41
>>236
やっぱり各々のオブジェクトでやったほうが良さそうですね。

>>237
どういうことですか?
ファイル名だけでの比較は、階層が違っていても判断できないのでNGです。
0239デフォルトの名無しさん2013/01/20(日) 02:31:23.41
残念だがPath.GetFileNameじゃ要件を満たさないんだよ(震え声)
0240デフォルトの名無しさん2013/01/20(日) 02:32:25.48
>>238
気にしなくていい。
>>237はちょっと人の話を理解する能力に欠けているだけだ。
0241デフォルトの名無しさん2013/01/20(日) 02:35:29.38
えー最終的に「相対パスとサイズの両方が一致すればTrueってな感じで比較を行うようにする」のであればGetFileNameだけでよくない?
0242デフォルトの名無しさん2013/01/20(日) 02:45:59.43
>>241
ファイル名だけで比較すると、c:\test\dira\doc3.txtとc:\test\dira\sub\doc3.txtが同一ファイルとみなされてしまうので駄目です。
(c:\test\dira)\doc3.txtと(c:\test\dirb)doc3.txtはサイズが同じなら同一ファイル、
(c:\test\dira)\doc3.txtと(c:\test\dirb)\sub\doc3.txtはサイズが同じでも別ファイルとしたいんです。
0243デフォルトの名無しさん2013/01/20(日) 02:49:41.47
じゃあPath.GetFullPathでいいんじゃないの?
0244デフォルトの名無しさん2013/01/20(日) 02:52:26.02
>>243
それじゃあ、そもそも比較されません><
0245デフォルトの名無しさん2013/01/20(日) 09:27:05.23
以下の3パターンの比較でもっとも良い比較方法を教えてください

時間を比較する場合は?
日付を比較する場合は?
日時を比較する場合は?
0246デフォルトの名無しさん2013/01/20(日) 09:38:26.68
DateTime.TimeOfDay
DateTime.Date
DateTime
0247デフォルトの名無しさん2013/01/20(日) 12:34:03.27
C#で書いたコードをCかC++に変換してくれるありがたいツールってないかな
0248デフォルトの名無しさん2013/01/20(日) 12:38:00.63
みんながそれをありがたがるならとっくにそんなもん世に出てみんなそれを使ってるはず。
実際過去にはそういうのもあったんだが全く話題にもなってない。
つまりそういうことだ。
0249デフォルトの名無しさん2013/01/20(日) 12:45:41.55
ねーちぶかどうかなんてもうどうでもよくなった
0250デフォルトの名無しさん2013/01/20(日) 12:54:32.69
FAQ
・.NETが必要→今は大抵入ってる
・それでも.NETに依存したくない→配布サイズがプログラムだけで数十MBになるのとどっちがいい?
・起動が遅い→IOバウンドなのでネイティブにしても無駄
0251デフォルトの名無しさん2013/01/20(日) 13:05:19.33
ランタイム含めてパッケージ化したら、GACにあるライブラリのアセンブリが
プリフェッチなどで既にメモリにキャッシュされてる場合でも同じコードを改めて自分のとこから読まないといけないよね?
IOで初回起動クソ遅くなりそう
0252デフォルトの名無しさん2013/01/20(日) 13:32:41.51
ブレークポイント右クリックって何よ
エクスプレスで出来ないこと言ってない?
0253デフォルトの名無しさん2013/01/20(日) 16:00:42.35
マイクロソフト提供のMVC3 MusicStoreのチュートリをこつこつ
やってるのだけれどもThe Entity Framework provider(略)could not be loaded
とくるのです。NuGetでEntityFrameworkもSQLCompactも投入してるのになぜ
なのだろうかと手が止まってしまいます。
0254デフォルトの名無しさん2013/01/20(日) 16:29:38.30
C#以前の問題かもしれませんが、ググっても見つからなかったので
C#でマルチプロセスを実装する場合ソケット通信するしか無いんですかね?
0255デフォルトの名無しさん2013/01/20(日) 16:33:35.02
IpcRemoteObjectでググれ
0256デフォルトの名無しさん2013/01/20(日) 16:35:38.05
ありがとう、なんとかやってみます
0257デフォルトの名無しさん2013/01/20(日) 16:53:16.18
c#でircを手軽に作れるライブラリってありませんか?
0258デフォルトの名無しさん2013/01/20(日) 19:17:36.54
初心者なんですけど、初心者向けのソフトを教えてください
何を作れば良いのかわかりません
0259デフォルトの名無しさん2013/01/20(日) 19:51:05.28
hello world
0260デフォルトの名無しさん2013/01/20(日) 20:58:07.73
メモ帳
0261デフォルトの名無しさん2013/01/20(日) 21:00:25.25
メモ帳は30分くらいでそれっぽいのできるよな
VSの操作の練習にはいい
0262デフォルトの名無しさん2013/01/20(日) 21:32:17.14
電卓。全くの初心者には結構ハードルが高いけど。
0263デフォルトの名無しさん2013/01/21(月) 08:41:00.66
前スレで失礼なことを書いて
すいませんでした。
0264デフォルトの名無しさん2013/01/21(月) 13:57:49.98
子フォーム間で、フォームが閉じれないのですがどうすればいいか
教えて下さい。

子フォーム1,子フォーム2で子フォーム1のボタンで子フォーム2を閉じるプログラム
を作ったのですが、

private void button1_Click(object sender, EventArgs e)
{
      Form2 fm2 = new FORM2();
      fm2.Close();
}

これだとフォームが閉じません。
0265デフォルトの名無しさん2013/01/21(月) 14:22:21.20
newって英単語を意識しようよ

子フォーム1と2は兄弟?親子?
0266デフォルトの名無しさん2013/01/21(月) 14:35:55.68
子フォーム1と2は兄弟です。
子フォーム2自体は子フォーム3からShowで表示させています。
0267デフォルトの名無しさん2013/01/21(月) 15:30:35.74
親と子の概念を考え直すときが来ているようだ
0268デフォルトの名無しさん2013/01/21(月) 15:38:06.96
なんでこんなにバカなの?
0269デフォルトの名無しさん2013/01/21(月) 15:43:29.23
メモ帳なんか自力で作ったら一ヶ月はかかるだろうが
0270デフォルトの名無しさん2013/01/21(月) 15:44:48.96
鶏が先か卵が先かみたいな話か?
0271デフォルトの名無しさん2013/01/21(月) 15:49:16.74
Form2 fm2 = new Form2();

private void showButton_Click(object sender, EventArgs e)
{
      fm2.Show();
}

private void closeButton_Click(object sender, EventArgs e)
{
      fm2.Close();
}

つまりこういうことでしょう
ShowもしていないnewしたてのFormをCloseしても何も起こらないのは当然
02722642013/01/21(月) 15:58:00.20
分かりづらくてすいません。
最初から説明すると親フォームから →Form1
→Form2
を生成。
Form2のボタンを押すと、Form3を生成し、Form2を削除。
Form1のボタンを押すと、Form3を削除し、Form2を生成。
というプログラムを作りたいのですが、Form1からForm3を削除するには
どうすればいいかという質問です。
0273デフォルトの名無しさん2013/01/21(月) 16:19:13.98
http://www.youtube.com/watch?v=RZ_dsWjKx4Y&;feature=youtu.be
プログラムコンテスト
0274デフォルトの名無しさん2013/01/21(月) 16:21:30.18
Form1にForm3の参照を与えればいいだけ
02752642013/01/21(月) 16:31:30.00
参照を与えるというのは具体的どういう風にすれば出来ますか?
無知ですいません.....
0276デフォルトの名無しさん2013/01/21(月) 16:40:54.92
 var form1 = new Form1();
 var form3 = new Form3();

 //Form1のForm3プロパティにForm3を入れる
 form1.Form3 = form3;
0277デフォルトの名無しさん2013/01/21(月) 17:55:05.23
コンテキストメニューを設定していないコントロールを右クリックするとnullの例外が発生するのですが原因がわからず困っています
教えてエロイ人
0278デフォルトの名無しさん2013/01/21(月) 18:05:20.41
親になっているタブコントロールに間違ってコンテキストメニューを設定していたのが原因でした
ごめんねエロイ人
0279デフォルトの名無しさん2013/01/21(月) 21:08:57.30
指定時間に特定の処理を実行させたいのですが
システムが休止状態の間は実行できないんですが、
C#で休止状態を解除する方法はございませんか
0280デフォルトの名無しさん2013/01/21(月) 22:06:29.12
まず休止状態が何か調べなおしてこい。
いきなりPCの電源が付いたら怖いだろw
確かにBIOSによっては、指定時間に自動起動するものもあるかもしれないが…。
0281デフォルトの名無しさん2013/01/21(月) 22:08:05.76
常時パソコンを起動しとくと電気代もったいないので何とかできませんか
別にC#じゃなくてもいいです
助けてください
0282デフォルトの名無しさん2013/01/21(月) 22:12:33.87
型落ちスマホでも使えば
0283デフォルトの名無しさん2013/01/21(月) 22:14:07.80
タスクスケジューラーにでも登録すれば?
0284デフォルトの名無しさん2013/01/21(月) 22:17:18.66
>>279
ACPIが普及したWin98の時代から可能になってる。
>>283の言うとおりタスクスケジューラーを使えばいい。
こういうネタはパソヲタの方が詳しいかも
0285デフォルトの名無しさん2013/01/21(月) 22:24:57.67
タスクスケジューラみてみたら出来るようですね
たすかりました
C#からタスクを登録して実行することにします
0286デフォルトの名無しさん2013/01/21(月) 22:36:06.44
出来るのはスリープの方
0287デフォルトの名無しさん2013/01/21(月) 22:39:24.64
このスレで聞くようなことじゃないかもしれないけど、色指定において
文字列"#FF00FF"とか"255000255"を、
int型のred,green,blueに変換する方法ってどうすればいいですか?
0288デフォルトの名無しさん2013/01/21(月) 22:44:38.90
キーの重複を許すディクショナリを教えてくれ
0289デフォルトの名無しさん2013/01/21(月) 22:47:30.44
Lookup<TKey, TElement>
0290デフォルトの名無しさん2013/01/21(月) 22:59:08.11
>>287
正規表現なりループ回して舐めるなりして自分でごりごり解析する
簡単な方法はない
0291デフォルトの名無しさん2013/01/21(月) 23:56:05.82
Color color = ColorTranslator.FromHtml("#FF00FF");
int red = color.R;
int green = color.G;
int blue = color.B;
0292デフォルトの名無しさん2013/01/22(火) 00:06:37.94
┐('〜`;)┌
0293デフォルトの名無しさん2013/01/22(火) 00:07:02.56
JavaScriptをしっかり学ぶならオライリーですが
C#をしっかり学ぶのに良い書籍ってありますか?
0294デフォルトの名無しさん2013/01/22(火) 00:08:26.12
dobon
0295デフォルトの名無しさん2013/01/22(火) 00:35:54.69
どぼん、本になってたのか…
0296デフォルトの名無しさん2013/01/22(火) 02:46:34.82
>>293
オライリー
0297デフォルトの名無しさん2013/01/22(火) 08:39:07.09
書籍の質問は全部オライリーでいいな
実際、そう外しもしない
0298デフォルトの名無しさん2013/01/22(火) 11:40:58.99
メモリ使用率を下げたいんですがどのような事を気をつければいいですか?
0299デフォルトの名無しさん2013/01/22(火) 11:41:51.96
メモリを増設する
0300デフォルトの名無しさん2013/01/22(火) 11:54:59.93
今時メモリを節約する必要は無い
0301デフォルトの名無しさん2013/01/22(火) 11:57:30.21
ある
0302デフォルトの名無しさん2013/01/22(火) 12:00:15.42
メモリをたくさんつかってサクサク動くほうがいい
0303デフォルトの名無しさん2013/01/22(火) 12:16:23.87
でもその理屈を理解できるのはマだけ
0304デフォルトの名無しさん2013/01/22(火) 12:24:40.67
そういえば素人はメモリ使わないことを軽いって言うよなw
0305デフォルトの名無しさん2013/01/22(火) 12:31:32.26
メモリクリーナー常駐させて空きメモリを常に確保してたやつもいたな
客を一人しか店に入れないラーメン屋か!
0306デフォルトの名無しさん2013/01/22(火) 15:41:08.01
XElementに改行コード\r\nで値を入れてセーブしてロードすると
改行コード\nに変えられてるんですけど
どうすれば\r\nのままに出来るんでしょうか
0307デフォルトの名無しさん2013/01/22(火) 18:11:53.89
それは本当に\nに変えられてるんですか
エディタの誤判定ではないのですか
ちゃんとバイナリで確認しましたか
0308デフォルトの名無しさん2013/01/22(火) 18:26:55.07
W3Cの仕様で\nになるみたいですわ
まあ頑張って\nを\r\nにするコード書きました
0309デフォルトの名無しさん2013/01/22(火) 19:33:36.75
>W3Cの仕様で\nになるみたいですわ

ソースよろしく
0310デフォルトの名無しさん2013/01/22(火) 19:56:35.23
ぐくったらそれっぽいことがすぐ出たぞ
頑張るほどの対処ではないと思うが
0311デフォルトの名無しさん2013/01/22(火) 20:08:06.78
今スマホなんでコピペはきついんすわ
0312デフォルトの名無しさん2013/01/22(火) 21:02:23.04
Cは出来るjavaは多少そんな俺はどっち読めばいい?
http://www.oreilly.co.jp/books/487311294X/
http://www.oreilly.co.jp/books/9784873115177/
0313デフォルトの名無しさん2013/01/22(火) 21:05:25.39
上
0314デフォルトの名無しさん2013/01/22(火) 21:08:44.63
上古くね?
0315デフォルトの名無しさん2013/01/22(火) 21:08:59.86
下でいいだろ
基礎的なところで躓いたらググって調べれば十分
0316デフォルトの名無しさん2013/01/22(火) 21:13:06.54
>>312
下とこれ
http://www.oreilly.co.jp/books/9784873113746/
0317デフォルトの名無しさん2013/01/22(火) 21:58:23.85
VC#2010Express
F9でブレークポイントを置きました
string str = "test"; // ここに置きました。
http://www.atmarkit.co.jp/fdotnet/dotnettips/688debugbreakcond/debugbreakcond.html
にあるようなブレークポイントの作成ダイアログがでません。
なのでそのままF5を押して実行しました。
よくわかりません。
どうやって変数の中身を確認できるのですか?
0318デフォルトの名無しさん2013/01/22(火) 22:04:26.47
Expressでは条件付きのブレークポイントは使えない
ブレークポイントの箇所でプログラムの実行が止まるから、
その状態で変数の上にマウスカーソルを置くと値が表示される
ただしstring str = "test";にブレークポイントを置いたらその行はまだ実行されてないからstrにはまだ何も入ってない
ブレークした状態で実行を進めるにはツールバーのステップインを押す
0319デフォルトの名無しさん2013/01/22(火) 22:10:18.99
ゲームを作ってるんだが、
1/60秒ごとにTextBlockをXamlにセット消去セット消去を繰り返すのって処理重い?
0320デフォルトの名無しさん2013/01/22(火) 22:12:39.52
重かったら直せ
動くものができてないうちからパフォーマンスを気にするのは馬鹿
0321デフォルトの名無しさん2013/01/22(火) 22:29:54.55
string str ="test";
string damii = ""; // 今度はここにブレークポイント

すいませんこうやってみてstrのところにマウスを乗せてみても
(ローカル変数) string str
っていうのがポップアップされるだけで値が確認できません
0322デフォルトの名無しさん2013/01/22(火) 22:30:50.86
>>321
ブレークポイント貼って実行してブレークポイントでちゃんと止まったのを確認したか?
0323デフォルトの名無しさん2013/01/22(火) 22:34:12.38
その状態では、まだ変数の内容までは見れない。
なぜなら、一度も使われていないからだ。
Console.WriteLine( str ); のように一度でも使われていれば見れる。
0324デフォルトの名無しさん2013/01/22(火) 22:34:44.48
VSのバグか仕様かはわからないけどな。
0325デフォルトの名無しさん2013/01/22(火) 23:10:24.18
まじっすか。。。。
わかりました
0326デフォルトの名無しさん2013/01/22(火) 23:11:45.23
C#にはソースコードをexeにしても、そのexeからソースコードに変換するツールがあるって一時期話題になったのを思い出したのですが
ソースコードは見られたくないのでどうにかして見られないようにする方法はありませんか?
0327デフォルトの名無しさん2013/01/22(火) 23:17:21.52
>>246
これある瞬間の日時を変数に記録して
そこから時間だけとか日付だけってやるにはどうかくんですか?
0328デフォルトの名無しさん2013/01/22(火) 23:20:50.17
そもそも見られるとまずいコードなのか?
難読化ツールは、あっても見らなくするツールは、ないと思う。
0329デフォルトの名無しさん2013/01/22(火) 23:22:58.52
つまり守りたいソースコードがある場合はC#は避けたほうがいいってことなんですか?
0330デフォルトの名無しさん2013/01/22(火) 23:23:53.53
友達がexeちょうだいって言ってるんですけど
あげたらソースコードに変換して自分が作りましたって言いそうなので
なんとか阻止したいので質問しました
0331デフォルトの名無しさん2013/01/22(火) 23:25:05.79
そんなもん技術的にどうこうする問題じゃない
そうなったら著作権侵害で訴えろ
■ このスレッドは過去ログ倉庫に格納されています