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

1デフォルトの名無しさん
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問。
質問者自身なんだか意味がよく分からない質問。
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて、他スレ・他板へ行くことを勧められることがあります、ご了承下さい。

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

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

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

■関連スレ
C#, C♯, C#相談室 Part82
http://toro.2ch.net/test/read.cgi/tech/1386763696/

■コード貼るなら↓使ってください
http://ideone.com/
2デフォルトの名無しさん:2013/12/30(月) 15:40:37.48
立てんなって言ったろうが
3デフォルトの名無しさん:2013/12/31(火) 00:53:16.35
>>2
ふぁびょーん
4デフォルトの名無しさん:2013/12/31(火) 02:27:16.07
4の5の言うな
 ↓
5デフォルトの名無しさん:2013/12/31(火) 02:50:16.11
5です
6デフォルトの名無しさん:2013/12/31(火) 05:15:02.23
↑禄で無し
7デフォルトの名無しさん:2013/12/31(火) 14:37:37.19
いや、よく立てた
8前945:2014/01/01(水) 03:17:58.84
別スレッドで長い時間がかかる処理をやっているのですが、別スレッドが走ってるときに正常終了しません
while文でフラグみて終了要求が出されたらwhile文のフラグを変更するという感じでやっているんですがうまくいきません
FormClosingイベントでJoinメソッドを呼ぶと固まり、よばないとObjectDisposedExceptionで怒られます
考えてみたんですが、Joinメソッド呼んだあと別スレッドから描画スレッドにInvokeしてるのが原因ですか?
もしそうなら対処法が全然わかりません。どのように解決したらいいのか教えてください
9デフォルトの名無しさん:2014/01/01(水) 07:57:55.64
>>8
>考えてみたんですが、Joinメソッド呼んだあと別スレッドから描画スレッドにInvokeしてるのが原因ですか?
そりゃそうだ

フラグが多くてあれだが、こんな感じで
http://ideone.com/UQNof7
10デフォルトの名無しさん:2014/01/01(水) 15:48:06.67
イエス、バーニンラブ(´・ω・`)
11デフォルトの名無しさん:2014/01/01(水) 19:40:44.61
もしもし?
ソリューションエクスプローラーからhogeフォルダを作って
そこにtest.txtをぶち込んだのね?
それで開こうと思ったらファイルがないって言われちゃうのね?
これアドレスはどうなってるの?
hoge\\test.txtじゃ駄目だったの
12デフォルトの名無しさん:2014/01/01(水) 20:00:26.36
うん
13デフォルトの名無しさん:2014/01/01(水) 20:04:21.87
>>11
実行時のディレクトリはデフォルトではbin\Debugです。
自分でコピーして置くか、test.txt選択 -> プロパティウインドウの[出力ディレクトリにコピー]でコピーする設定にする。
14デフォルトの名無しさん:2014/01/01(水) 20:12:52.96
>>13
バカな・・・いつもdebugフォルダに直接置いてたけどマジでそんな不毛な仕様だったのか

回答有難う
15デフォルトの名無しさん:2014/01/01(水) 21:36:20.69
すいません、暗号化したファイルを復号化して文字列を使う場合、
復号化した時点でメモリに生の文字列が残りますよね
こういうのも暗号化して使うべきですか?
16デフォルトの名無しさん:2014/01/01(水) 21:37:56.27
>>15
もうその話題飽きたんで他のにして
17デフォルトの名無しさん:2014/01/01(水) 21:43:16.25
メモリに入れた時点でアドレスが分からない限りは外部にもれないよ
18デフォルトの名無しさん:2014/01/01(水) 21:44:43.86
メモリ上に展開するだけなら電源切ったら消えるので気にしない
それに、プログラム内で平文を扱うならどのみちどっかで復号するんだからどうしようもない
ただ、ページファイルに平文が残ってしまうのはまずいのでそこは対策を講じる必要があるね
19デフォルトの名無しさん:2014/01/01(水) 22:28:46.19
>>17-18
あまりきにしないほうがいいんですね
ページファイルだけ気をつけます
20デフォルトの名無しさん:2014/01/01(水) 22:55:36.13
SecureString
21デフォルトの名無しさん:2014/01/01(水) 23:16:06.18
>>20
これいいですね使わせて頂きます
22デフォルトの名無しさん:2014/01/01(水) 23:26:48.46
お節介焼き糞野郎の意味ないよ連呼が始まる
23デフォルトの名無しさん:2014/01/01(水) 23:44:18.49
同じ内容を二度やるとか気持ち悪いスレだな
24デフォルトの名無しさん:2014/01/02(木) 00:00:56.20
自分が気に食わないとすぐそういうレスするのはやめたほうがよい
25デフォルトの名無しさん:2014/01/02(木) 00:06:37.27
System.VoidがC#で使えない理由って何ですか?
26デフォルトの名無しさん:2014/01/02(木) 01:02:35.64
>>25
勘違いして戻り値の型をSystem.Voidにしようとする馬鹿が出るからじゃね
System.Voidはリフレクションの時だけ出てくるダミーの型だからな
Typeオブジェクトを通さずに使うことはない
27デフォルトの名無しさん:2014/01/02(木) 01:08:31.99
C#用のビルドツールって何がメジャーですか?
28デフォルトの名無しさん:2014/01/02(木) 01:09:47.18
csc.exe
29デフォルトの名無しさん:2014/01/02(木) 01:16:48.41
MSBuild
3027:2014/01/02(木) 03:48:45.50
>>28
>>29
解答ありがとうございます
NAntとMSBuildを調べてみます
31デフォルトの名無しさん:2014/01/02(木) 08:29:38.93
var a = new[] { 0, 1, 2, 3, 4 };
a.SkipWhile(x => x != 2);
はSkipWhileの述語関数がfalseを返したら
その時点の要素以降を返すという理解で良いですか?
32デフォルトの名無しさん:2014/01/02(木) 16:07:51.62
よくないです
33デフォルトの名無しさん:2014/01/02(木) 20:42:17.98
いいです
34デフォルトの名無しさん:2014/01/02(木) 20:56:16.48
え、どっちですか?
35デフォルトの名無しさん:2014/01/02(木) 20:57:27.62
このメソッドは、predicate を使用して source の各要素をテストし、結果が true の場合はその要素をスキップします。 述語関数が要素に対して false を返したら、その要素と source の残りの要素が返され、predicate は呼び出されなくなります。
36デフォルトの名無しさん:2014/01/02(木) 21:57:18.44
>>33 >>35
ありがとうございました。

>>32
朝鮮人死ね
37前945:2014/01/02(木) 22:26:03.69
一日考えたんですけど14行目からの下りがわかりません
なんでイベントをBeginInvokeに渡すのかあとInvokeがどのタイミングで呼ばれているのかがわかりません
あとなぜBeginInvokeがよばれているのかがわかりません。所謂コールバックってやつですか?
38デフォルトの名無しさん:2014/01/02(木) 22:54:50.49
Invokeを使った場合テストとかデバッグとかどうやっていいんだか良くわからない
ee版じゃどうあがいても駄目で、pro版買わないといけないんだっけ?
39デフォルトの名無しさん:2014/01/02(木) 23:23:59.12
BeginInvokeもInvokeも、
「次のイベントでこのメソッドを実行してね」とGUIスレッドに依頼するもの。
BeginInvokeは依頼するだけ、Invokeはその実行が終わるまで待つ。

Invokeを使った場合、
GUIスレッドはFormClosingイベント内で別スレッドの終了を待ち、
別スレッドはInvokeで依頼した処理がFormClosingの後に実行されるのを待つ為デッドロックとなる。

Q.なんでイベントをBeginInvokeに渡すのか
A.デッドロック回避の為、どちらかが待ち状態に入るのを回避する必要があるから
Q.Invokeで渡したメソッドが呼ばれるタイミング
A.GUIスレッドの次以降のイベントとして呼び出される
Q.デバッグ方法
A.デバッグーウィンドウースレッドメニューとか?
40デフォルトの名無しさん:2014/01/03(金) 00:46:47.38
>>37
もうその話題飽きたんで他のにして
4118:2014/01/03(金) 07:24:07.77
>>40
初心者スレでなに言ってるんだ?
42デフォルトの名無しさん:2014/01/03(金) 10:01:40.46
Control.Invoke/BeginInvokeはSystem.Delegateを引数にとるが、
明確に型付けされたdelegateは指定されていない。
この場合ラムダ式の推論が効かないから明示的にEventHandlerや
MethodInvokerを指定することになる。
EventHandlerを使ってるのはおそらく、
Button1_Clickなどをスレッドからコールするようなケースが多いから、
それとの親和性からだろう。

... , new object [] { this, EventArgs.Empty });
の部分はparamsだから、
.... , this, EventArgs.Empty);
でいいはず。
43デフォルトの名無しさん:2014/01/03(金) 10:06:42.33
>>9のやり方は、FormClosingでいったんフォームを閉じるのをキャンセルして、
イベントやControl.Invoke/BeginInvokeを受け付けられる状態に戻してるわけだ。
それで改めてスレッドからInvoke経由でFormを閉じなおしている。
44デフォルトの名無しさん:2014/01/03(金) 12:30:52.09
以下Invoke禁止はい次の質問どうぞ
45デフォルトの名無しさん:2014/01/03(金) 13:46:21.42
この調子で禁止されてったら質問すること無くなるな
暗号化関連はウザイからマジで要らないけど
46デフォルトの名無しさん:2014/01/03(金) 13:59:49.34
質問することなんてなかったんだ・・・
47デフォルトの名無しさん:2014/01/03(金) 14:17:51.38
Invokeもウザイから禁止な
48デフォルトの名無しさん:2014/01/03(金) 14:19:01.80
とにかく暗号化とInvokeは禁止な
何で暗号化とInvokeがダメかって?
俺が気に食わないからそれだけさ
49デフォルトの名無しさん:2014/01/03(金) 14:28:25.92
チョンうざ
50デフォルトの名無しさん:2014/01/03(金) 14:35:43.57
結論をまとめておけばこんなことにはならない
51デフォルトの名無しさん:2014/01/03(金) 15:16:04.87
以後 pinvokeな話題が続きますよっと
52デフォルトの名無しさん:2014/01/03(金) 16:37:49.61
復号化について質問が…
53デフォルトの名無しさん:2014/01/03(金) 16:56:08.94
Invokeとか何度目だよくだらない質問するんじゃねーぞコラ
54デフォルトの名無しさん:2014/01/03(金) 17:13:38.36
スレッドを作ってそこから
button1.Text = "test";
とすると落ちてしまうのですがどうしたらいいのでしょうか
55名無し募集中。。。:2014/01/03(金) 17:28:36.25
>>54
//button1.Text = "test";
56デフォルトの名無しさん:2014/01/03(金) 17:31:24.48
こんかれんときゅーにいべんとでーたをつっこんであいどるいべんとでじゅんじしょりするろじっくをかけばいいよ
57デフォルトの名無しさん:2014/01/03(金) 17:33:58.14
はい終了
はい次の質問どうぞ
58デフォルトの名無しさん:2014/01/03(金) 21:23:19.19
Control.CheckForIllegalCrossThreadCalls = false;って最初に書いとけばいいよ
59デフォルトの名無しさん:2014/01/04(土) 00:59:01.11
正月.Dispose();
60デフォルトの名無しさん:2014/01/04(土) 06:30:30.90
ぬるぽ
61デフォルトの名無しさん:2014/01/04(土) 09:55:07.11
ガッ
62前945:2014/01/04(土) 22:03:30.64
レス遅れてごめんなさい。正常に終了処理ができるようになりました、ありがとうございます

>>39
BeginInvokeとInvokeってそういう違いがあったんですね。知りませんでした
あとデバッグ方法なんですがスレッドメニューという項目がないんですが、もしかしてExpressにはついてないんですか?

>>42
button1_clickなどを他スレッドからコールするってどういうときにするんですか?
想像ができなくてわからないです。教えてください
63デフォルトの名無しさん:2014/01/05(日) 06:57:04.09
今時2バイト文字なんていい方する奴いるんだなw
64デフォルトの名無しさん:2014/01/05(日) 07:11:29.77
【キーワード抽出】
対象スレ: ふらっとVisual C#,C♯,C#(初心者用) Part110
キーワード: 2バイト文字

63 名前:デフォルトの名無しさん[sage] 投稿日:2014/01/05(日) 06:57:04.09
今時2バイト文字なんていい方する奴いるんだなw

抽出レス数:1
65デフォルトの名無しさん:2014/01/05(日) 14:42:55.40
四倍角
66デフォルトの名無しさん:2014/01/05(日) 23:22:48.33
↓のコードがあったとして
---------------------------------------------------
public class MoviePlayerA
{
  public void Play(bool isInterlace) { }
}
---------------------------------------------------
public enum MovieScanType
{
  Interlace
  Progressive
}

public class MoviePlayerB
{
  public void Play(MovieScanType movieScanType) { }
}
---------------------------------------------------
↓のどっちが望ましいですか?
MoviePlayerA.Play(true);
MoviePlayerB.Play(MovieScanType.Interlace);
---------------------------------------------------
Aの方はコーダーはインテリセンスからメソッドの引数名が見えるのでtrueと解答出来ますが、レビューアーはコードからではtrueの意味が分かりません

Bの方はコーダーもレビューアーも引数の意味を理解できますが、別のメソッドを作る度に同じように列挙型を作り続ける必要があるため冗長にも感じられます
67デフォルトの名無しさん:2014/01/05(日) 23:28:46.71
今時紙でレビューしてるの?
68デフォルトの名無しさん:2014/01/05(日) 23:30:18.24
名前付き引数がない言語は欠陥って主張する奴がこういう例を出してくる
69デフォルトの名無しさん:2014/01/05(日) 23:38:19.41
標準ライブラリで主流かみれば?
70デフォルトの名無しさん:2014/01/05(日) 23:41:21.71
>>66
まずお前が思う 望ましい状態 ってのを説明して
71デフォルトの名無しさん:2014/01/05(日) 23:43:15.57
>>66
引数の意味を調べるには該当クラスの仕様を確認する必要があるのは当たり前じゃね?

> MoviePlayerB.Play(MovieScanType.Interlace);

これだと実は第二引数以降のオプション引数がデフォルト値で呼び出されてます、な場合かもしれないし
結局MoviePlayerクラスを確認しなきゃいけないのはAもBも変わらん
72デフォルトの名無しさん:2014/01/06(月) 18:02:10.70
ToolStripDropDownButton はメニューが表示されている場合、もう一度クリックするとメニューが消えますが、
同様の動作をToolStripSplitButtonのDropDownButtonにさせることはできないでしょうか。
ToolStripSplitButtonの方は、メニューが表示されているときにもう一度クリックすると、
一瞬消えてまたメニューが出てきてしまいます。

ていうか、この挙動の違いはどこからきてるのでしょうかね~
73デフォルトの名無しさん:2014/01/06(月) 22:14:38.64
>>67 紙を使わないと紙を売っている会社が潰れちゃうでしょ?国内の消費縮小しても日本という国は幸福にはなりません
>>68 別に欠陥とかじゃないです、C#は名前付き引数も使えるし
>>69 標準ライブラリでは主流なのはAの方ですね、C++がバカみたいにdefineで別名使いまくった反省からでしょうか?
>>70 こういう芸術家、論文作成ゴッコは本当に害悪ですね、自分のビジネスパートナーにあなたのような人物が今後登場しないことを願いたいです。
    A:5人でシステム1つを1ヶ月で作るプロジェクト B:50人でシステム1つを半年で作るプロジェクト C:500人でシステム1つを3年で作るプロジェクト
    があったとして、Bのプロジェクトの立ち上げ時にコーディング規約を決定するとして前述の話題が上がった場合、どう決着を付ければもっとも開発資金と開発期間が最小になるか?という定義にしてください
>>71 なるほど、確かに結局、仕様を確認する必要があるということに帰結しますね、ってことはあまりBに優位性は無さそうです
74デフォルトの名無しさん:2014/01/07(火) 00:34:15.05
石炭使わないと石炭売ってる会社が潰れるから石炭使ってんのかよ?このバカはw
75デフォルトの名無しさん:2014/01/07(火) 01:58:15.34
アブラ使わないと油売ってる会社が潰れるからアラブ使ってんのよ?
このガスはw
76デフォルトの名無しさん:2014/01/07(火) 02:04:59.56
「インターネット 炎上」の恐さがよくわかる画像
http://omosoku.com/7092.html
77デフォルトの名無しさん:2014/01/07(火) 02:05:15.68
>>73  ←学生臭しかしない
78デフォルトの名無しさん:2014/01/07(火) 13:47:39.96
System.Threading.Tasks.Parallel.Forでお気楽マルチスレッド化しようとしてるんですが、
普通のfor文だと問題なく動くコードがParallel.Forだと変数の代入時にNullReferenceExceptionを発生して止まってしまいます。
Parallel.Forの時はvolatileとか使って変数を宣言しとかないといけないのですか?
79デフォルトの名無しさん:2014/01/07(火) 13:55:52.38
コードによるとしか言いようがない
80デフォルトの名無しさん:2014/01/07(火) 15:12:16.24
まぁそれを言っちゃえば何でもそうなんだけど、
単純にはfor文の置き換えにはできないんですね。

素直に自分でスレッド立てるコードに直します。
81デフォルトの名無しさん:2014/01/07(火) 21:00:31.78
volatileの存在を初めて知ったw
Parallel.Forも順番に動くと思ってるとか?
82デフォルトの名無しさん:2014/01/07(火) 21:48:54.44
止めろ
状況確認もせずにめくらめっぽう当てずっぽうじゃ泥沼になるだけだ
少しは学習しろ
83デフォルトの名無しさん:2014/01/07(火) 22:52:00.28
動的に読み込んだクラスライブラリ 
Assembly asm
の中の
public static void Method()
を呼び出すにはどうしたらいいですか?
84デフォルトの名無しさん:2014/01/07(火) 23:01:13.81
>>81
いや、実行の順序は全然関係なくてforeachでやってもかまわない処理でエラーが出るんですよ。
しょうがないからコードをそのままでカウンタの範囲を3つに分けて3つスレッド立てて分散処理したら
エラーも出ず30%くらい速くなった。
Parallel.Forだと不安定だし何スレッド立ててるのかも分からないから使うのやめた。
85デフォルトの名無しさん:2014/01/07(火) 23:04:05.64
パラレルフォー使った方がいいと思う
86デフォルトの名無しさん:2014/01/07(火) 23:05:43.24
パラレル、フォー!!
バッチこーい!!
87デフォルトの名無しさん:2014/01/08(水) 08:53:14.47
>>83
asm.GetTypesとかでMethodが属する型のTypeを取ってきて
Type::GetMethodでMethodのMethodInfo取ってきて
MethodInfo::Invokeする
88デフォルトの名無しさん:2014/01/08(水) 09:49:03.83
>>84
とりあえずParallel.forの簡単なコード書いてうpれ
不安定になるなら、お前の書き方が悪い
話はそれからだ
89デフォルトの名無しさん:2014/01/08(水) 09:53:47.32
>>83
もしくは

Type type = asm.GetType( 完全名 );
Foo foo = asm.CreateInstance( type.FullName ) as Foo;
if( foo != null )
{
 foo.Method();
}

みたいな感じ
90デフォルトの名無しさん:2014/01/08(水) 11:39:12.12
staticらしいからインスタンスは使えないな
91デフォルトの名無しさん:2014/01/08(水) 16:20:01.46
ずっと気になりながらも、一週間ほど学習し、
先ほど、ひらめいたので、確認のためにお聞きしたいのですが、

()の中身が{}っていうことでいいのでしょうか?

()をまず先に書いて、後から中身書きますよって意味で書いてるのですか?
で、{}の外側では、つまり、()後には、改行の;はいらないってことで
よろしいですか?

そういくと、;がつかない理由がわかった気がするのですが、いかがでしょう?

でも、そうなると""の外側の()の説明ができないし、
たまに(1)とかの数字が入ってるのも説明ができません

どなたか、良ければ説明お願いします
92デフォルトの名無しさん:2014/01/08(水) 16:30:56.11
どっかの誤爆?
93デフォルトの名無しさん:2014/01/08(水) 16:46:15.91
>>91
>()の中身が{}っていうことでいいのでしょうか?
よくない

>()をまず先に書いて、後から中身書きますよって意味で書いてるのですか?
違う

>{}の外側では、つまり、()後には、改行の;はいらないってことでよろしいですか?
よろしくない
94デフォルトの名無しさん:2014/01/08(水) 17:11:11.90
>>92
C#の初心者スレだと思ったのですが、VisualC#ではないので、
微妙にスレチかもしれません

>>93
レスありがとうございます
大ハズレなんですか?
神が降りてきたと思って、結構、自信があったんですが、凹みました

その説明どこさがしてもみつからないのですが、
入門書買わないと、それらの情報はないですかね?

上の疑問と、("")これの、台詞の時と、そうでないときの違いの説明が本気で知りたいです
それを理解しないと、自分でコードは書けないです
95デフォルトの名無しさん:2014/01/08(水) 17:17:08.13
根本的に何か勘違いしている、C#じゃなくてCの文法から勉強したほうがいいだろ
つーかそれ以前の問題の気もするがw
96デフォルトの名無しさん:2014/01/08(水) 17:17:15.83
デリゲートって実行する度に宣言する物ですか?
97デフォルトの名無しさん:2014/01/08(水) 17:20:55.09
そんな事聞く様じゃデリゲート自体理解しているとは思えない
98デフォルトの名無しさん:2014/01/08(水) 17:33:14.04
>>94
とりあえず、具体的なプログラムを書いてみろ
()も{}もいろんな箇所で使うから、何についてなのかわからないか
99デフォルトの名無しさん:2014/01/08(水) 17:48:41.65
>>94
大ハズレです、というか何が言いたいのか、なにが分からないのかその文だと
さっぱり分からん

C#で()というと真っ先に思いつくのは関数の引数リストの括り、まず「引数とは」でググって見れば
あとC#で{}というと真っ先に思いつくのはブロック、まず「プログラミング ブロック」でググって見よう
;(セミコロン)については、http://kmaebashi.com/programmer/c_yota/semicolon.htmlを読んでみればいい

>("")これの、台詞の時と、そうでないときの違い
何が言いたいのかさっぱり分からん
100デフォルトの名無しさん:2014/01/08(水) 17:55:25.30
>>96
違う

まずプログラミングをちゃんと勉強しよう
101デフォルトの名無しさん:2014/01/08(水) 18:22:06.88
>>98

int main()
{
int x = 1;

if (x == 1)
{
x++;
}
return 0;
}

ブロックのリンク先で見つけたのですが、
整数xに1を代入して、もし、xが1と等しいならば、xに1足すって意味だと思うのですが
そのmainの後ろの()の意味です

float v = Input.GetAxis ("Vertical")
これとか、の("")は"Hellow world"とは違うと思うのですが、意味がわかりません

>>99
アドレスとググり方感謝です
ブロックの意味はまとまりだと考えて間違いなさそうです
引数では、現段階で理解は難しかったです
アドレス先で「;」の説明があったのですが、それも今は、理解できなかったですが、
ifの後が特に気になってたので、
お気に入りにはいれましたので、後々理解できるはずだと思います
102デフォルトの名無しさん:2014/01/08(水) 18:30:59.74
取り合えず日本語マトモに使える様にそっちを勉強したら?
その()は関数の引数を括ってるって言っても理解できなさそうだし
103デフォルトの名無しさん:2014/01/08(水) 18:36:38.80
>>101
mainの後ろの()はmainメソッドの引数リストの()、このmainメソッドには
受け取る引数がないので()と空になっている

Input.GetAxis("Vertical")はInput.GetAxisに文字列"Vertical"を引数として渡している
""で括ってあるのは文字列リテラル

>引数では、現段階で理解は難しかったです
引数が分からないとどうしようもないぞ、何度もサイトの説明などを読んで理解すべき

とにかく基本的なことがまったく分かってないようだから基本を勉強しないと
どうしようもない
104デフォルトの名無しさん:2014/01/08(水) 18:40:27.56
今どうやって勉強してる?
図書館とかでもいいから入門書さがして見た方がいいかも
105デフォルトの名無しさん:2014/01/08(水) 18:48:36.16
>float v = Input.GetAxis ("Vertical")
Unity3Dでゲーム作ろうと思ってる小学生だなw
106デフォルトの名無しさん:2014/01/08(水) 19:09:04.44
みなさんにお手数かけて申し訳ないです
おっしゃられる通り、

「()は関数の引数を括ってる」
「mainの後ろの()はmainメソッドの引数リストの()、このmainメソッドには受け取る引数がないので()と空になっている」
「Input.GetAxis("Vertical")はInput.GetAxisに文字列"Vertical"を引数として渡している""で括ってあるのは文字列リテラル」

以上が自分には、日本語に見えません
引数に関しても、海水とかいろんな喩えで書いてる人がいるのですが、全く理解できませんでした。

勉強は、マンガで分かるプログラミング用語辞典を読んでましたが、配列ぐらいで意味がわからなくなり、
また、JavaScriptで説明されても、それが読めないので、断念しました
未確認飛行Cも、お気に入りには入れてますが、今の時点では理解できません。

>>105
小学生じゃないですが、ソフトはそうです
コーディングがC#なので、絶対に習得しなくてはいけないのですが、
チュートリアルを2冊終えましたが、
コメントで一行一行説明されてるものの、意味がわからないって状態です
いや、ルールがわからないので、頭に入ってこないって状態かもです

手を動かして、タイピングしただけで、何も身につきませんでした
やりたいことは、山ほどあるのに、自分では、コードを書けません

でも、質問して、少しは光が見えてきた感じなので、C#じゃなくて、もうちょっと入門編を探します
文字列リテラルもググったら、これはC#の知識じゃないってのだけは、わかったので、
今まで、だれも説明してくれなかったんだなと納得しました
まずは、それと、引数を理解します

>>104
C#のものは一冊も持ってないので、独習C#と何かを買おうと思いますが、
まだ、もうちょっと、ネットで勉強します
107デフォルトの名無しさん:2014/01/08(水) 19:24:24.06
     __.. -―─ 、__
    /`       三ミー ヘ、_
  ゝ' ;; ,, , ,,     ミミ  , il ゙Z,
  _〉,..    ////, ,彡ffッィ彡从j彡
  〉,ィiiif , ,, 'ノ川jノ川; :.`フ公)了
 \.:.:.:i=珍/二''=く、 !ノ一ヾ゙;.;.;)
  く:.:.:.:lムjイ  rfモテ〉゙} ijィtケ 1イ'´
   〕:.:.|,Y!:!、   ニ '、 ; |`ニ イj'  逆に考えるんだ
   {:.:.:j {: :} `   、_{__}  /ノ
    〉イ 、゙!   ,ィ__三ー、 j′  「コンパイラの立場になってみる」
  ,{ \ ミ \  ゝ' ェェ' `' /
-‐' \ \ ヽ\  彡 イ-、    と考えるんだ
     \ \.ヽゝ‐‐‐升 ト、 ヽ、__
      \  ヽ- 、.// j!:.}    ` ー 、
       ヽ\ 厶_r__ハ/!:.{
          ´ / ! ヽ
108デフォルトの名無しさん:2014/01/08(水) 19:32:18.09
>>106
まあ、引数が分からないとまったく意味不明なのも無理はない

とにかく引数を理解できないことにはコードを書きようがない
引数関係のサイトや本を何度も読むこと、50回でも100回でもいろいろ想像しなが
ら理解できるまで読むしかない

引数について:
関数(メソッド)には、どんな処理をするか決めるための材料が必要なものがある、
その材料が引数。キャラクタを上下左右に移動する関数の場合は、移動する方向が
必要で、移動する方向を引数として渡す、例えば、MoveCharacter("up")のように
(MoveCharacterが関数名でカッコ内の"up"が引数(この場合は上に移動))

簡単に言えばこんな感じかな
109デフォルトの名無しさん:2014/01/08(水) 19:38:50.56
って言うか、引数が理解できないってのが理解できない
代入が理解できないとか言う奴と同じくらい意味不明
それ以前に引数の意味が分からんのなら関数の概念も全く理解できてないんじゃないの
110デフォルトの名無しさん:2014/01/08(水) 19:50:31.98
>>109
あ、そっか、どう見ても関数の概念も理解できてなさそうだな

引数の理解の前に、まず関数とは何かを理解しないと駄目だな
11191:2014/01/08(水) 20:26:15.59
関数のところの漫画をもう一度読みなおしました
>>108の引数の例、わかりやすかったです

関数ってのは、よく使う計算とかルールみたいなもので
キャラを動かすっていう関数はどこでも使えるけど、一方向とは限らなくて、
そいつにいれる素材みたいなのが、引数、上とか下とか
その引数を表示するのは、()内で表示、ない場合は()こうなる

だから、()の中身が{}ってのは大間違い
ああ、ちょっとは、つながりました

そうか、値だから、()の中が、trueがあったり、6があったりってことですか
int とかfloatとかの中身のことですね

いや、もしかしたら、今までの、読めるようになるかも
明日、もう一回同じチュートリアルやり直します

>>106の三行もなんとなく、わかりました
まだ、モヤモヤっとしてるけど、まじでわかりかけてきたかもしれません
本気で感謝です

まだ寝るまで時間あるので、もうちょっとググります
11296:2014/01/08(水) 20:46:58.64
やだ解説ブログが関数の中で宣言してるのばっかりだからそうかもと思ったら
MSDNでパブリック宣言してた
113デフォルトの名無しさん:2014/01/08(水) 20:55:05.76
>>111
そうそう、分かってきたじゃないか

上下左右も"up"とか"down"とかの英語じゃなくて日本語で"上"とか"下"でも、
文字列でなく数字で1が上に移動で2が下に移動でもいい。関数を作る人の自由だ
また、方向だけでなく、キャラクタの画像を指定する引数を追加して、キャラの
画像を自由に変えられるようにしてもいい

コードが書けるようになればいろいろ出来るようになる
114デフォルトの名無しさん:2014/01/08(水) 20:56:57.87
宣言と実行(利用)の区別ついてないんじゃね
115デフォルトの名無しさん:2014/01/08(水) 21:03:36.13
真面目な話、君は向いてないよ
プログラミングより山登りでもしたほうがいい
あしたあたりなんかどうだ
116デフォルトの名無しさん:2014/01/08(水) 21:06:53.28
>>112
まだ分かってないような気がする
デリゲートはクラスとか構造体とかと同じ型のひとつだよ
117デフォルトの名無しさん:2014/01/08(水) 21:12:09.58
>>112
デリゲートとは何かをちゃんと勉強したほうがいい

>>114
関数と引数がようやく見えてきた状態だから、その区別はこれからってとこだろう
118デフォルトの名無しさん:2014/01/08(水) 21:32:22.22
functionかsubかで括弧の有無が変わってくるVB使ったら発狂するんじゃないかしらん、この人w
119デフォルトの名無しさん:2014/01/08(水) 21:49:14.13
C#入門ならここっ!てサイトないよなぁ
ufcppさんとことかもわかりやすいけど入門者向けではないし
120デフォルトの名無しさん:2014/01/08(水) 22:04:46.09
>>119
川俣大先生の記事だけでも十分だと思うが
121デフォルトの名無しさん:2014/01/08(水) 22:10:32.37
確かに初歩の初歩を分かり易く説明してるサイトって見当たらないなあ

一から始める人が括弧や引数で躓くってのもわからないでもない
122デフォルトの名無しさん:2014/01/08(水) 22:34:49.65
高校の数学とか習ってない人なのかな。
y=f(x)
f(x)=2x+3
これと同じで、xを引数と呼ぶというだけなんだが。
123デフォルトの名無しさん:2014/01/08(水) 22:42:05.15
高校数学でそれ引数って呼んだ記憶ないな
124デフォルトの名無しさん:2014/01/08(水) 22:57:21.55
>>118
どういうこと?
125デフォルトの名無しさん:2014/01/08(水) 23:41:34.35
ごめん説明がまずかった。
別にf(x)のxも引数と呼ぶというわけじゃなくて、
このxと役割が同じで、それをプログラミング言語では引数と呼ぶと言いたかった。
126デフォルトの名無しさん:2014/01/09(木) 00:53:56.57
HttpWebRequestのCookieContainerの個々のCookieにアクセスするにはどうしたらいいんですか?

実際のコードはこんな感じです
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.CookieContainer.GetCookies(req.RequestUri);
127デフォルトの名無しさん:2014/01/09(木) 02:05:05.05
>>126
それだとreq.CookieContainer == nullだろう

req.CookieContainer = new CookieContainer();
これが必要
128デフォルトの名無しさん:2014/01/09(木) 02:56:23.14
>>127
コピペし忘れました すみません
CookieをCookieContainerに格納するのはできてます
129デフォルトの名無しさん:2014/01/09(木) 03:33:26.58
こんばんは。WPFでアプリケーションをつくろうとしています。
Button1を押したらタイマー開始、経過時間をリアルタイムでtextblock1に反映、特定の文字列が入力されたらタイマー停止、という流れのプログラムはどう書けばいいのでしょうか。
130デフォルトの名無しさん:2014/01/09(木) 05:56:35.25
>>126
GetCookiesで返ってきたCookieCollectionがCookieのコレクション
というかRequestのCookie?
131デフォルトの名無しさん:2014/01/09(木) 10:24:35.95
>>117
タイマーとかで定期的に処理する時、
文字列をテキストボックスとかに表示させようとするとオブジェクト参照エラーになるから、
代わりにやってくれる物って認識じゃダメ?
132デフォルトの名無しさん:2014/01/09(木) 11:05:35.89
ペットボトルの用途を聞かれてトイレと答えているレベル

デリゲート:あるオブジェクトの処理を別のオブジェクトに丸投げする設計手法
デリゲート型:デリゲート用の.NETの機能。シグネチャ別に定義する必要がある(無い場合)
デリゲートインスタンス:デリゲート型のインスタンス。実際に変数に入ってる値。メソッドグループやラムダ式で作成する

要は1メソッドインターフェイスの簡略版みたいなもん
133デフォルトの名無しさん:2014/01/09(木) 12:35:47.36
class Foo {
public static Foo A = new Foo("foo"); //①
public string Str { get; set; }
public Foo(string str) {
Str = str;
}
}
//実行結果
var inMain = new Foo("main");
Console.WriteLine(Foo.A.Str); // "foo"
Console.WriteLine(inMain.Str); // "main"

①の部分のように自分自身のクラスのインスタンスを
静的メンバとして持つ使い方は固有の名前などあるのでしょうか?
面白いなと思ったので。
134デフォルトの名無しさん:2014/01/09(木) 12:58:04.15
シングルトンとかフライウェイトとか
135デフォルトの名無しさん:2014/01/09(木) 13:40:54.47
>>134
ありがとうございます。ちなみにFooクラスの中で、
public Foo B = new Foo("foo2");//エラー(無限再帰みたいになる?
は出来なかったのですが①ではnew出来るので、
クラスメンバとインスタンスメンバは全く別物だと
いうことがわかった気がしました。
136デフォルトの名無しさん:2014/01/09(木) 14:30:30.48
>>128
何がやりたいのか分からない。クッキーを拾ってきて見たいのか?

ならレスポンスを取ってこないと駄目だろ
Request=要求
Response=応答

HttpWebResponse res = (HttpWebResponse)req.GetResponse();
これが必要
そして、res.Cookiesで見る
137デフォルトの名無しさん:2014/01/09(木) 18:08:31.66
>>131
ダメ

>>132を参考にちゃんと勉強すべし
138デフォルトの名無しさん:2014/01/09(木) 18:26:38.95
>>129
まず、Button1を押したらタイマー開始するプログラムを書く

ググりながらでもまずは自分でコード書け、そして、分からないところを質問しろ
139デフォルトの名無しさん:2014/01/09(木) 18:43:52.60
>>130,136
http://dobon.net/vb/dotnet/internet/usecookie.html

このページのコードを丸写ししただけなんで全然分かってなかったみたいです
アドバイスを参考にしてもう少し勉強します
140デフォルトの名無しさん:2014/01/09(木) 22:37:20.45
26時とかが入力できるdatetimepickerは無いですか?
141デフォルトの名無しさん:2014/01/09(木) 23:18:05.08
やべ、デレゲートだと思ってたわ。
142デフォルトの名無しさん:2014/01/10(金) 02:13:02.48
ListBoxをFormにAnchorしてると縦方向の大きさが
一行ずつで大きくなってしまいカクカクしますが
これを他のコントロールと同じようにスムーズに出来ませんか?
143デフォルトの名無しさん:2014/01/10(金) 06:00:47.99
IntegralHeight
144デフォルトの名無しさん:2014/01/10(金) 08:37:42.64
>>143
これが欲しかったんです。
ありがとうございました!!
145デフォルトの名無しさん:2014/01/10(金) 12:07:18.87
コントロール渡しをしたいのですが、Form1に貼り付けたpictureBox1を入れると
「'System.Windows.Forms.Picturebox'から'Control'に変換できません」
と、出てしまいます。

pictureboxをコントロールに変換する方法ってあるのでしょうか?
146デフォルトの名無しさん:2014/01/10(金) 12:22:58.13
Controlって名前のクラスをどっかで独自定義してない?
147デフォルトの名無しさん:2014/01/10(金) 16:46:01.80
ハンガリアンな上に普通に使われてそうな定義語は使わないのですが、ソリューション全体で検索してみましたがありませんでした。
何のControlに変換しようとしているのかとか、確認方法とかってありますでしょうか?
148デフォルトの名無しさん:2014/01/10(金) 17:50:57.27
変数なりメソッドの引数なりでControlって記述されているところにキャレット持って行ってF12
149デフォルトの名無しさん:2014/01/11(土) 11:28:10.99
System.Windows.Controls.Controlだろどうせ
150デフォルトの名無しさん:2014/01/13(月) 14:54:46.88
using System.IO;
using System.Net;

この2つをよく使うので最初から書いておきたいんですけどどうすればいいですか?
151デフォルトの名無しさん:2014/01/13(月) 15:02:48.41
それを含めた項目テンプレートを作る
152デフォルトの名無しさん:2014/01/13(月) 15:08:36.65
>>151
ありがとうございました
153デフォルトの名無しさん:2014/01/14(火) 19:13:07.23
可変長二次元配列の初期化ってどうやれば良いのでしょうか?
List<double>[] lstHoge = new List<double>[10];
で、lstHoge[0].Add(10.0);としてもlstHogeがnullでエラーになってしまいます。

ググるとArrayListばっかり出てきますし・・・。
154デフォルトの名無しさん:2014/01/14(火) 19:20:11.05
lstHoge は要素数 10 の配列として初期化されているけど、
その要素の型である List<double> は null で初期化されているから。
自分でインスタンスを作って割り当てる必要がある。

var lstHoge = new List<double>[10]; の後に
for (var i = 0; i < lstHoge.Length; i++)
lstHoge[i] = new List<double>();
が必要。
155デフォルトの名無しさん:2014/01/14(火) 19:32:29.67
>>154
出来ました、ありがとうございます。
156デフォルトの名無しさん:2014/01/14(火) 20:35:06.83
可変長2次元配列???
157デフォルトの名無しさん:2014/01/14(火) 23:33:19.24
Listは配列じゃないぞ
158デフォルトの名無しさん:2014/01/14(火) 23:45:15.87
はい。列ですよね?
159デフォルトの名無しさん:2014/01/15(水) 09:09:01.85
C#の可変長2次元配列とは?
160デフォルトの名無しさん:2014/01/15(水) 09:27:05.16
しつけーよ粘着野郎
161デフォルトの名無しさん:2014/01/15(水) 10:26:43.63
protected internal って protected && internalじゃなくて
protected || internald なのかー
162デフォルトの名無しさん:2014/01/15(水) 13:32:16.11
「あくまで執事ですから」みたいなものか
163デフォルトの名無しさん:2014/01/15(水) 13:53:16.08
基底クラスとサブクラスが同じアセンブリにある場合にだけ、
サブクラスからアクセスできるのかな。
使い道がわかんね~
164デフォルトの名無しさん:2014/01/15(水) 13:54:57.90
internal protectedは
同じアセンブリ→触りたい放題
違うアセンブリ→派生クラスからのみ
165デフォルトの名無しさん:2014/01/15(水) 13:57:41.32
javaのprotectedと同じだな
166デフォルトの名無しさん:2014/01/15(水) 18:54:34.09
>>164
>触りたい放題
やらしいな
167デフォルトの名無しさん:2014/01/15(水) 22:56:56.44
自分で機能拡張する分には中身をさわっても良いけど
使うだけなら中身はさわらんでも良い、って事かと
168デフォルトの名無しさん:2014/01/16(木) 10:35:53.20
VS2012からVS2013にする意味ってC#的にあります?
169デフォルトの名無しさん:2014/01/16(木) 16:12:52.73
TableLayoutPanelにて、Labelを貼り付けて文字を表示しています。
Label1.Text = [320.0,240.0]255.0
Labelに直接書いて全部表示されるのを確認して幅を取っているのですが、実行すると
[320.0,240.0]
で、止まってしまいます。
Label1プロパティはAutoSizeをFalseにしているくらいです。
何か対策はありますでしょうか?
170デフォルトの名無しさん:2014/01/16(木) 20:22:21.28
>>167
使うだけなら、中身さわんじゃねーよ
拡張するならちょっとさわらせてやんよ
でも private はダメだぞ
171デフォルトの名無しさん:2014/01/16(木) 20:35:31.77
SL5でGridDataColumnのHeaderの表示をコンボボックスで
選んだものにしたいのですが、どうすればいいでしょうか?

<ComboBox Name="CB">
<Item Content="表示1">
<Item Content="表示2">
</ComboBox>
<Button Click="Clk"/>
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Name="Col"/>
</DataGrid.Columns>
</DataGrid>

Clk() {
var sel = CB.SelectedItem as Item;
Col.Header = sel.Content;
}
172デフォルトの名無しさん:2014/01/18(土) 08:48:39.86
めっちゃ素人質問で申し訳ないんですが

T Add<T>(T t1, T t2)
{
return t1 + t2;
}

みたいなことってなんで出来ないんですかね?
173デフォルトの名無しさん:2014/01/18(土) 10:14:30.45
Tが演算子+をサポートしてるか分からないから
174デフォルトの名無しさん:2014/01/18(土) 10:44:58.92
平面上に点AとBがあります。A(x1,y1) B(x2,y2)のとき、ABを通る直線をC#で表現するにはどのようにすればよいでしょうか?
ax+by+c=0 の形で表現すればいいらしいのですが、aとbの値が一つに決まらないので、プログラム上でどう表現すればいいのか分かりません。
175デフォルトの名無しさん:2014/01/18(土) 10:57:39.07
宿題はokwaveでどうぞ
176デフォルトの名無しさん:2014/01/18(土) 11:25:38.57
中学生レベルの問題じゃね?
177デフォルトの名無しさん:2014/01/18(土) 12:11:31.66
え、計算しないといけないの?Draw○ine一発じゃないの?
表現ってなに?描画じゃないの?
178デフォルトの名無しさん:2014/01/18(土) 12:19:01.95
を通る直線
二点間の線分じゃないよ?
179デフォルトの名無しさん:2014/01/18(土) 12:27:30.25
AB2点が決まっていて、それが同じ点を示すんじゃなきゃ直線は求まる
詳しく知りたかったら知恵遅れいけ
180デフォルトの名無しさん:2014/01/18(土) 12:33:51.04
どうせ、2 直線が同一直線上に存在するかを考える場合は単純な == じゃなくて、誤差を考慮しないといけないし、2 直線が一意な値であることに意義はそんなにない。
なので、持ち方は自分の扱いやすいと思うデータの持ち方をすればいい。どういう操作をしたいかを考えればいい。持ち方の例として、
直線上の 2 点の座標、
a, b, c、
(a, b) に制約を加えた a, b, c、
角度 θ と c (θ = atan2(x, y))、
など。

ちなみに
(a, b) %26#8226; (x, y) %2b c = 0
で、(a, b) は直線の方向に直交するベクトルなので、長さを 1 にすれば、距離とか求める時に少し速い。扱いにくいけど。
181デフォルトの名無しさん:2014/01/18(土) 12:34:53.01
内積とプラスが文字化けした
182デフォルトの名無しさん:2014/01/18(土) 12:43:38.28
>>180
どっから2直線が出てきた?
183デフォルトの名無しさん:2014/01/18(土) 12:46:33.83
一意に値がどうとかいうから。
184デフォルトの名無しさん:2014/01/18(土) 13:05:08.72
>>180
どうもありがとうございました

>>175-179
役立たず乙
185デフォルトの名無しさん:2014/01/18(土) 14:37:35.00
いやいやいやいやいや
186デフォルトの名無しさん:2014/01/18(土) 14:46:53.90
なんだこの流れw
187デフォルトの名無しさん:2014/01/18(土) 17:21:02.24
>>180が何が言いたいのかさっぱり分からないが、これで分かる人なら最初から質問なんかするわけがない。

>>174
何でもそうだけど、何かをプログラム上でどうモデル化するかは目的に応じて決まる。
数学的には同じなはずの実数だって目的に応じて最適な型(double、decimal、分数...)を選択するでしょ。
188デフォルトの名無しさん:2014/01/18(土) 18:24:40.14
MenuStripの上にボタンコントロールを配置したいのですが、
ボタンコントロールを右クリックして「最前面に移動」としても、MenuStripの下に隠れてしまいます。

上に来るように配置するには、どのようにしたら良いのでしょうか?
189デフォルトの名無しさん:2014/01/18(土) 19:32:11.71
>>189
MenuStripをコンテナの中に入れてButtonはコンテナの中に入れずコンテナの前面に
来るように配置すれば可能だと思うけど、普通はデザインを見直すべき。

例えばMenuStripは別に必ずしもFormにDockする必要ないんだよ。
190デフォルトの名無しさん:2014/01/18(土) 19:35:43.40
>>189
ありがとうございます。
確かにPanelの中とかでMenuを入れた方が使い勝手は良いですね。

FormにDockした場合、ボタンを最前面に移動しても隠れたままでしたが、Menuを最背面に移動することで出来ました。
191デフォルトの名無しさん:2014/01/18(土) 21:54:16.94
>>172
型に制限つければ同じようなことはできる
192デフォルトの名無しさん:2014/01/18(土) 23:59:14.06
>>172
ジェネリクスにオペレータ制約がないから無理っぽいけど、dynamicでキャストすれば可能

型安全とか気にするな
193デフォルトの名無しさん:2014/01/19(日) 09:52:05.81
>>188
つーかMenuStripにToolStripButtonを入れればいいだけじゃね?
194デフォルトの名無しさん:2014/01/19(日) 13:53:39.81
けっきょくリフレクションになっちゃうんだな
C++のtemplate型推論とは全く意味が違うもんな
195デフォルトの名無しさん:2014/01/19(日) 15:06:21.49
同じ名前空間での話ですが、
static void print(string s) { Console.WriteLine(s); }
を書いて、すべてのクラスで
print("foo");
と修飾なしで利用する方法はありますか?
196デフォルトの名無しさん:2014/01/19(日) 15:22:06.01
全てのクラスにそれを実装
全てのクラスをそれを実装したクラスからの派生にする
197デフォルトの名無しさん:2014/01/19(日) 15:26:46.56
>>195
C#じゃなくてVBを使う
198デフォルトの名無しさん:2014/01/19(日) 17:32:22.32
こんにちわ!
UnityでC#を使ったスクリプトが必要で、
オススメの開発環境を教えていただきたいのですが!
visual stdioとか有料以外のものでお願いします

windows XPです
199デフォルトの名無しさん:2014/01/19(日) 17:52:12.63
unityでいいだろ
200デフォルトの名無しさん:2014/01/19(日) 17:57:04.57
monodevelopは挙動がおかしいので。。。
補完ウィンドウが表示されなかったり、
コメントで日本語打とうとすると画面上に表示されなかったり(エンターを押すとソースに打ち込まれる)
201デフォルトの名無しさん:2014/01/19(日) 18:04:18.31
MonoDevelop と VisualStudio Expressでいいのでは
202デフォルトの名無しさん:2014/01/19(日) 18:05:41.05
開発環境からデバッグも何もできなくていいならVS一択
203デフォルトの名無しさん:2014/01/19(日) 18:06:32.24
VisualStudio Expressって無料で使えるんだ!
ありがとうございます!
204デフォルトの名無しさん:2014/01/19(日) 18:08:31.10
ちなみに、javaは多少使えるんですが、
新しい言語(C#)やるときはやはり入門書でも買って1から覚えた方が効率いいですかね?
205デフォルトの名無しさん:2014/01/19(日) 18:10:52.68
俺は1度も入門書買ったことないね
EffectiveXXXとかMoreEffectiveしか持ってない
206デフォルトの名無しさん:2014/01/19(日) 18:17:13.97
プログラミングしたいなら入門書はいらない
勉強したいなら入門書はお手軽
207デフォルトの名無しさん:2014/01/19(日) 18:33:46.84
とりあえず、どこまでできるかやってみたいと思います。
ありがとうございました
208デフォルトの名無しさん:2014/01/19(日) 20:29:24.52
3ヶ月以内なら、ウルティメートも無料なっしー
209デフォルトの名無しさん:2014/01/20(月) 10:55:51.14
質問です。
WebBrowserコントロール以外で
ウェブサイトで記述されたJavaScriptを実行できる手段がありますか?
要はAjaxを使用されてるページの情報を読み取りたいとかなんですが。
210デフォルトの名無しさん:2014/01/20(月) 11:23:14.03
>>209
WebClient?
211デフォルトの名無しさん:2014/01/20(月) 11:27:02.20
activescripthostでぐぐれ
212デフォルトの名無しさん:2014/01/20(月) 12:13:37.20
System.IO.File.Exists
がファイルの存在を確認するって大嘘ですね
存在だけなら
Directory.GetFiles
などをがいいと思います
213デフォルトの名無しさん:2014/01/20(月) 12:29:05.34
日記は日記帳に書け
214デフォルトの名無しさん:2014/01/20(月) 12:33:21.24
>>210
WebClientで実行可能なんですか?
今はWebRequest使ってますがこれでは出来ないですよね?

>>211
少し調べましたがもう少し詳しく教えて頂けないでしょうか?
215デフォルトの名無しさん:2014/01/20(月) 12:54:29.02
216デフォルトの名無しさん:2014/01/20(月) 13:13:26.49
>>215
もうちょっと調べてみます。
217デフォルトの名無しさん:2014/01/20(月) 21:33:42.20
>>212
GetFilesは数が多いと時間かかるじゃん
なにを求めてんの?
218デフォルトの名無しさん:2014/01/20(月) 22:14:52.38
byte 配列の GetHashCode はどう実装するのがベスト?

16進数文字列に変換してから string の GetHashCode でできるけどオーバーヘッドがあり過ぎなような
219デフォルトの名無しさん:2014/01/20(月) 22:20:35.99
どう実装するのがベストかはデータ次第に決まってると思いますが。
220デフォルトの名無しさん:2014/01/20(月) 22:20:59.05
4バイトずつInt32にしてxorしていくとか
221デフォルトの名無しさん:2014/01/20(月) 23:56:25.04
>>195
ソースに
#define print Console.WriteLine
の一行足して、cpp通してからコンパイル
222デフォルトの名無しさん:2014/01/21(火) 02:43:36.20
クラスAがメインクラス
クラスBがサブクラス
クラスCが設定データを保持しているstaticクラス
という感じで
クラスAでクラスCとクラスBのインスタンスを生成している状態です

クラスAからクラスBのメソッドに移ってる中でクラスCの変数やメソッドなどにアクセスしたいのですが
staticの扱いがいまいちわからずうまくできないで居ます

この場合クラスBからクラスCへのアクセスではなく
クラスAからクラスBに移るときにクラスCのデータをオブジェクトとして渡すべきなのでしょうか?
223デフォルトの名無しさん:2014/01/21(火) 03:32:56.90
staticクラスのインスタンス生成?
クラスAからクラスBのメソッドに移ってる?
クラスAからクラスBに移るとき?
クラスCのデータ?

ちょっと何言ってるかわかりません
224デフォルトの名無しさん:2014/01/21(火) 03:40:19.38
>>222
staticクラスなら、クラスC.Hoge() って感じでクラスCのメソッドを呼び出せます。
225デフォルトの名無しさん:2014/01/21(火) 03:58:44.17
>>224
ありがとうございます。
static classについてなんですが

static class ConfigData
{
public static void test(){
}
}
でも
static class ConfigData
{
public static int x = 100;
}
でもエラーが出てしまうのですが
static classだとメソッドや変数の定義の仕方から変わるのでしょうか?
自分が参考にしていたところだと普通にやっているようなのですが・・・
226デフォルトの名無しさん:2014/01/21(火) 08:57:28.15
自分はプログラムの規模がある程度大きくなると
分かりやすくするために関数名とか変数名を
日本語(2バイト文字)で名付けてるんですがそれって変ですか?
227デフォルトの名無しさん:2014/01/21(火) 09:05:28.70
228デフォルトの名無しさん:2014/01/21(火) 09:14:09.51
>>225
エラーが出るならそれ書こうぜw
229デフォルトの名無しさん:2014/01/21(火) 09:55:40.01
classにstaticなんかつけれたっけ?
230デフォルトの名無しさん:2014/01/21(火) 12:10:53.14
staticメンバしか持てないクラス
231デフォルトの名無しさん:2014/01/21(火) 18:38:30.26
232デフォルトの名無しさん:2014/01/21(火) 18:42:21.85
Countが同じのList<int>とList<string>をDictionary<int,string>に簡単に変換する方法知りませんか?
233デフォルトの名無しさん:2014/01/21(火) 19:14:11.89
>>232
Enumerable.ZipとEnumerable.ToDictionaryを使う。
234デフォルトの名無しさん:2014/01/21(火) 20:56:59.49
>>226
変じゃないよ。

特に、日本語の固有名詞を使う場合なんかは
無理に翻訳したりローマ字にしたりせず積極的に使うべき。

日本人以外と共同開発する場合は避けた方がいいけどね。
235デフォルトの名無しさん:2014/01/21(火) 21:00:44.06
変数名の先頭はアルファベットにしないとな
236デフォルトの名無しさん:2014/01/21(火) 21:43:24.32
>>233
ありがとうございました。
こんなかんじでやってみます。
static List<int> integer1 = new List<int>();
static List<string> str1 = new List<string>();
・・・・
Dictionary<int, string> dic = integer1.Zip(str1, (i, s) => new { i, s })
.ToDictionary(a => a.i, a => a.s);
237デフォルトの名無しさん:2014/01/22(水) 00:43:44.26
ソースコードの解析ツールが2バイトの識別子に対応してない場合も多いし2バイト文字を変数名に使うべきじゃないよ
238デフォルトの名無しさん:2014/01/22(水) 00:46:30.42
なるほど
じゃ2バイト文字使った方がいいな
239デフォルトの名無しさん:2014/01/22(水) 01:09:05.10
Control[] controls;
と書きたいとき、日本語だと

Control[] コントロールs;
Control[] コントロール達;
Control[] コントロールら;
Control[] コントロールども;

いろいろあって迷いますね。
240デフォルトの名無しさん:2014/01/22(水) 01:24:49.94
コントロール48
241デフォルトの名無しさん:2014/01/22(水) 02:52:45.14
コントロール群
242デフォルトの名無しさん:2014/01/22(水) 03:27:45.89
コントロールず
243デフォルトの名無しさん:2014/01/22(水) 06:39:07.93
コント55号
244デフォルトの名無しさん:2014/01/22(水) 07:27:19.82
ハンガリアン+日本語みたいにしててaryコントロールとかobjコントロール
変数宣言後はaryまで打ってCtrlキー+スペースで入力支援つかってる
245デフォルトの名無しさん:2014/01/22(水) 07:39:00.55
int うんこ
246デフォルトの名無しさん:2014/01/22(水) 07:46:55.92
VisualStudioだとutf-8だから、日本語は3バイトだね。どうでもいいけど。
247デフォルトの名無しさん:2014/01/22(水) 07:55:51.42
>>237
いいな!
248デフォルトの名無しさん:2014/01/22(水) 11:06:40.43
メソッドや変数の名前を定めるとき、暗黙のルールってどうなっていますか。

ThisMethod
YourVar

のように、ユーザ定義メンバでも、.NETで定義済みのキャラメル式でよいんでしょうか。
249デフォルトの名無しさん:2014/01/22(水) 11:11:27.53
命名規則なんてググればいくらでもあるだろう
そのググった情報よりも2chのレスの方が当てになるのか…w
250デフォルトの名無しさん:2014/01/22(水) 11:13:46.94
> キャラメル式
何その甘そうな形式

キャメル式ね ラクダのコブ

MSDNで「名前に関するガイドライン」を引けばガイドラインは用意されてる
ただこのガイドラインはクラスライブラリ、不特定多数から利用されるものについての記述
internalやprivateだったり、あるいはそもそもアプリケーションだったりの場合については
好きにしろってスタンスをMSはとってる
のでその辺は会社とか単位で適当に決めたり決めなかったり
251デフォルトの名無しさん:2014/01/22(水) 18:54:30.77
>>239
学術的には複数形をあらわす日本語は諸ね。
つまり諸コントロール。
252デフォルトの名無しさん:2014/01/22(水) 19:12:21.02
また基地外が来たな
253デフォルトの名無しさん:2014/01/22(水) 19:39:59.44
>>249-250
戻り型を持つメソッドは、大文字ではじめて、らくだ式を取りいれて、
変数やプロパティは、小文字ではじめるのがいいかなと思うんですが。
インテリセンスで、区別が付きやすいし、ソースをざっと見たときにわかりやすいかなと思って。
どうでしょうか。
254デフォルトの名無しさん:2014/01/22(水) 19:43:17.87
キャラメル式ワロタw
255デフォルトの名無しさん:2014/01/22(水) 19:57:31.58
らくだは瘤より爪先の方が好き
256デフォルトの名無しさん:2014/01/23(木) 00:01:29.21
.NETをまねるならクラスから生えてるものはすべて大文字開始でいいと思う

他に、privateを小文字開始、publicを大文字開始にする規則もある
257デフォルトの名無しさん:2014/01/23(木) 00:01:58.84
コメントの代わりに属性って使う?
258デフォルトの名無しさん:2014/01/23(木) 01:03:31.68
>>256
クラスのメンバはフィールドを除いて、大文字開始のキャメル式でおk?ってこと
259デフォルトの名無しさん:2014/01/23(木) 01:09:10.18
>>257
使う
260デフォルトの名無しさん:2014/01/23(木) 05:43:42.23
コメントの代わりっていうのはどうかな
261デフォルトの名無しさん:2014/01/23(木) 06:15:57.97
>>258
大文字開始はPascal形式言いまんがな
フィールドもprivateはCamel形式にしたり
publicとは何らかの区別つく様にした方が良いがな
262デフォルトの名無しさん:2014/01/23(木) 07:29:17.43
>>261
PascalとUpper Camelは違うような
263デフォルトの名無しさん:2014/01/23(木) 10:32:55.73
ペッナロバーコ「ンーwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww」
264デフォルトの名無しさん:2014/01/23(木) 10:36:18.05
>>262
.NETのガイドライン用語として、PascalとCamelで先頭文字が大文字か小文字かを分けてる
265デフォルトの名無しさん:2014/01/23(木) 11:49:57.54
わーい、でけたー^^;

//録音終了タイマー開始
var stopTimer = new DispatcherTimer(DispatcherPriority.Normal);
stopTimer.Interval = new TimeSpan(0, 0, 1);
stopTimer.Tick += new System.EventHandler(stopTimer_Tick);
stopTimer.Start();

private void stopTimer_Tick(object sender, EventArgs e)
{
//現時刻が終了時刻を超えたら>0
if (DateTime.Now.CompareTo(etime.AddSeconds(50)) >= 0)
{Exit();}
else{
var tm = DateTime.Now.ToLongTimeString();
tm += " / " + etime.ToShortTimeString();
notifyIcon1.ShowBalloonTip(1000, "Info", tm, ToolTipIcon.Info);
}
}
266デフォルトの名無しさん:2014/01/23(木) 13:08:34.31
camel と Upper Camel は違うよな
267デフォルトの名無しさん:2014/01/23(木) 16:08:12.02
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwww
268デフォルトの名無しさん:2014/01/23(木) 20:17:33.71
>PascalとCamel
>大文字と小文字
>最初が大文字

よくわからないので、事例を挙げてくれると、助かります。
269デフォルトの名無しさん:2014/01/23(木) 20:37:07.08
大文字と小文字のスタイル
次の用語は、識別子の大文字と小文字を区別するさまざまな方法を表します。

Pascal 形式
識別子の最初の文字と、後に続いて連結されている各単語の最初の文字を大文字にします。
Pascal 形式は、3 文字以上から構成される識別子に対して使用できます。
次に例を示します

BackColor


Camel 形式
識別子の最初の文字は小文字にし、後に続いて連結されている各単語の最初の文字を大文字にします。
次に例を示します

backColor


[大文字]
識別子のすべての文字を大文字にします。
次に例を示します

IO
-------------------------------
http://msdn.microsoft.com/ja-jp/library/ms229043%28v=vs.100%29.aspx
270デフォルトの名無しさん:2014/01/23(木) 20:37:40.42
static string fmt(string format, params object[] args)
{ return String.Format(format, args); }

var sex = 69;
fmt("{0} {1}", sex );

とすると自然死するな。
デバッグでわかったけど
271デフォルトの名無しさん:2014/01/23(木) 20:43:33.28
自然死と事故死の違いについて詳しく

String.Format( "{0} {1}", sex );と何が違うのかについても。
272デフォルトの名無しさん:2014/01/23(木) 20:50:36.89
アプリが落ちるんでデバッグしたら
("{0} {1}", sex );じゃ引数が合わないってさ
コンパイル時に教えてくれよVS2010くん
273デフォルトの名無しさん:2014/01/23(木) 21:45:01.98
publicは大文字、それ以外は小文字
インテリセンスならプロパティとメソッドでアイコンが違うから名前で区別する必要はない
274デフォルトの名無しさん:2014/01/23(木) 21:52:45.27
僕はそもそも区別つけてないです(仕事の時は強要されるから別として)
どうせ間違ってりゃエディタがぷんすか言うしコンパイルエラーになりますしおすし
275デフォルトの名無しさん:2014/01/23(木) 22:55:02.95
文字列のエラーは実行時しか検知できないだろ…
276デフォルトの名無しさん:2014/01/23(木) 22:58:24.66
>>269
すっきりしました。ありがとう。

>>272

namespase test
{
private string testfield_a ・・・あるいはキャメル式を使う?
public string TESTFIELD_b ・・・あるいはパスカル式を使う?

public void METHOD_a()
{return;}

private void method_b()
{return;}
}

こんな感じでしょうか。
277デフォルトの名無しさん:2014/01/23(木) 23:01:04.01
Console.WriteLineで第一引数がコンパイル時に確定するときならチェックできないこともない
AndroidLintでもToastをshowしてないけどいい?とかいうし
278デフォルトの名無しさん:2014/01/23(木) 23:06:41.63
Microsoftの命名規則に従うなら2文字の略称を除いて大文字だけにはしない
定数もPascal
そして、_は基本つかわない

namespace Test //名前空間は大文字で始める
{
private string testFieldA;
public string TestFieldB; //本来はフィールドは公開しない

public void MethodA
{return;}

private void methodB
{return;}
}
279デフォルトの名無しさん:2014/01/23(木) 23:21:45.13
WPF の Point 型とかは、private なフィールドメンバーは _ 付きだったから、俺はそれの真似してる。

struct Point{
double _x;
double _y;
}
280デフォルトの名無しさん:2014/01/23(木) 23:24:52.62
VBだとプロパティの中身は、_ 開始にせざるをえない
281デフォルトの名無しさん:2014/01/23(木) 23:28:10.84
私はm_XxxYyyだは
282デフォルトの名無しさん:2014/01/23(木) 23:41:30.23
private/internalなメンバーの識別子なんて好きに決めろってことだよ
283デフォルトの名無しさん:2014/01/24(金) 00:02:26.87
だいたい命名規則ごときで九死に一生を得たわ~なんて思ったことは23年間一度もないのです
信者にお前どういう奇跡エピソードがあんの?って聞いても大した答えが返ってこないのです
曰く、神がそうせよと仰られた、らしいです
284デフォルトの名無しさん:2014/01/24(金) 00:06:17.62
変数の型や宣言形式、スコープ、関数のあ使い方なんかが分かるように命名してるから、当然のこととして恩恵受けてる
命名規則破ってたらバグだらけになるわ
285デフォルトの名無しさん:2014/01/24(金) 00:11:20.17
バグだらけで困ったから経験的にそうしたんならご立派様の一言
そうしたらバグがなくなったような気がしてるだけならプラシーボ無能万歳
統計的な有意差でも測定してるなら君は偉い
286デフォルトの名無しさん:2014/01/24(金) 00:15:12.07
IDEが貧弱だった頃はともかく、今はこだわるほどじゃないと思ってる。
思ってるだけで言わないけどね。ケンカになるからw
287デフォルトの名無しさん:2014/01/24(金) 00:17:43.13
.net のソース見てるとprivateメソッドも大文字開始なんだよな
288デフォルトの名無しさん:2014/01/24(金) 00:18:55.55
>>283
いかにもダメグラマの言いそうなことだなw
289デフォルトの名無しさん:2014/01/24(金) 00:54:25.18
>>284
アホすぎる
そういうのは属性とリフレクションで処理するんだよ
290デフォルトの名無しさん:2014/01/24(金) 01:58:06.37
PascalでもCamelでもHungarianでも規則性がそれなりにあれば別に構わないけど、
ローマ字命名の表記揺れだけは殺意がわく
291デフォルトの名無しさん:2014/01/24(金) 02:25:23.98
規則は統一されていれば何でもいいが、スペルミスをやらかすと恥ずかしいから気をつけろ。
以前、「Information」を「Infomation」で間違って覚えてて
グーグル翻訳の「もしかして: information」見て( ゚д゚)ポカーン・・・ってなった
過去のソースを調べると…もうね、問題が無いのを確認しつつ、こっそり直したよ゚(つ∀`゚)゚。
一緒に作業してた人は密かに俺に殺意がわいてたかもしれんwww
今じゃグーグル翻訳にお世話になっています。
292デフォルトの名無しさん:2014/01/24(金) 16:00:10.05
>>278
わかりやすいです。
なるほど、参考にしたいです。

フィールドではなく、プロパティーを実装して、カプセル化を守りたいと思います。

>>287
これが気になります。
本家は何を考えているんだ。

>>290-291
たしかに、大変ですね
なおすの大変そう
なおすと皮肉にもかえってバグを作ってしまいそう
293デフォルトの名無しさん:2014/01/24(金) 18:06:01.16
int[, ] aaa = {{0,0},[1,1]};
int[, ] bbb = {{0,0},[1,1]};

int[, ][] zzz = {aaa, bbb};  ←aaaやbbbを代入できる配列を作りたいけどエラー

こういう場合ってどう宣言したらいいのでしょう?
294デフォルトの名無しさん:2014/01/24(金) 19:53:47.37
逆じゃね?
int [] [,] zzz = { aaa, bbb };
295デフォルトの名無しさん:2014/01/24(金) 21:32:55.92
C#初心者です。
ポリモーフィズムを使うと条件分岐が無くせるという概念が何となく分かったのですが
C#でプログラミングする場合は、常にポリモーフィズムを意識してコードを書くべきでしょうか?
if文やswitchを使うコーディングはダメなのでしょうか?
296デフォルトの名無しさん:2014/01/24(金) 21:37:14.66
同じ条件の分岐が何カ所かに出来るようなら分割を検討すればいい
297デフォルトの名無しさん:2014/01/25(土) 02:16:18.38
byte[] → int[] 変換処理に共用体使うのってあり?

[StructLayout(LayoutKind.Explicit)]
struct BytesToInts
{
 [FieldOffset(0)] public byte[] Bytes;
 [FieldOffset(0)] public int[] Ints;
}

試してみると、変換処理は期待通りに行われるけど、気になる点が
Ints.Length が Bytes.Length と同じになって、伸びた分のインデックスに変な値が入ってる…どこの領域見てるんだか

不要なインデックスを見ないように制限すれば問題なく使えそう…?
298デフォルトの名無しさん:2014/01/25(土) 08:25:56.18
よくわかんねーけど
それって参照がオフセット0に入ってるだけじゃね?
C#でいみあるのそれ?
あんせーふってやつで触るのけ?

素直にBitConverter使うんじゃだめなの
299デフォルトの名無しさん:2014/01/25(土) 08:33:09.59
今時Cでもそんなダサいやり方はしない
300デフォルトの名無しさん:2014/01/25(土) 09:14:08.76
速い以外のメリットは特にない
301デフォルトの名無しさん:2014/01/25(土) 12:12:21.90
CPUが変わると互換性が確保されてない気がする
302デフォルトの名無しさん:2014/01/25(土) 14:11:25.31
ビッグエンディアンのデータを扱った時は、ビッグエンディアン版のBitConverter作ったな。
303デフォルトの名無しさん:2014/01/25(土) 14:23:39.15
C#でWebbrowserを使ったアプリを作っています。
サイトによっては以下の様なエラーメッセージが出る事があるのですが
何か良い方法はありませんか?

Webページからのメッセージ
次の行でスタックオーバーフローが発生しました。
304デフォルトの名無しさん:2014/01/25(土) 14:26:02.85
サイトの管理者にJavaScript直せって文句を言う
305デフォルトの名無しさん:2014/01/25(土) 15:05:34.54
>>297
こんなことできるんだ。
でもそれ変換じゃなくてポインタをキャストしてるのと同じだよね。
だったらunsafeで明示的にそう書いた方が分かりやすいのでは?
306デフォルトの名無しさん:2014/01/25(土) 15:08:49.81
>>304
何かそーいう糞サイトのJSエラーを回避する方法はありませんか?
307デフォルトの名無しさん:2014/01/25(土) 15:13:05.78
そんな方法があるなら誰もエラーなんて直さないですね
308デフォルトの名無しさん:2014/01/25(土) 15:13:12.45
スクリプトを動かさない
309デフォルトの名無しさん:2014/01/25(土) 15:14:52.17
プログラマの端くれとも思えないびっくり発言だなw
310デフォルトの名無しさん:2014/01/25(土) 15:20:41.18
出来るプログラマーは第三者が書いたプログラムの品質には悲観的になる
311デフォルトの名無しさん:2014/01/25(土) 15:22:32.84
わろたwww
スクリプト動作止めるのが一番だろw
IEコンポーネントならエラー表示を抑える設定ができたはず(実装は糞面倒)
312デフォルトの名無しさん:2014/01/25(土) 15:41:37.81
なんで初心者スレにフロフラマーがいんねん
313デフォルトの名無しさん:2014/01/25(土) 15:58:56.32
さ、サプレスなんとか
314デフォルトの名無しさん:2014/01/26(日) 17:42:13.86
質問です
enumを継承して定義することはできますか?

enum State1{A, B}
enum Stand2{C, D}

enum ExtendState : State1,State2

例えば、こんな感じです
315デフォルトの名無しさん:2014/01/26(日) 17:56:52.67
無理です
316デフォルトの名無しさん:2014/01/27(月) 03:12:34.86
C#の列挙体は仕様作った奴がアホ過ぎる
317デフォルトの名無しさん:2014/01/27(月) 09:28:34.76
Cのをそのまま持ってきただけだな、.NETの関係?
318デフォルトの名無しさん:2014/01/27(月) 14:52:29.55
基本型って概念があるのに値を基本型として使おうとするだけでキャストを強要する辺りとか
フラグとしても使いにくい、HasFlagも.NET4からのサポートだし
319デフォルトの名無しさん:2014/01/27(月) 15:15:40.16
俺はCのenumよりもはるかに使いやすいと思ってる・・・
320デフォルトの名無しさん:2014/01/27(月) 16:03:39.81
typedef つけたらそんな変わらん気もするが、IDEで候補に出るのは大きいか
321デフォルトの名無しさん:2014/01/27(月) 16:19:01.03
C/C++のenumの何がクソかって、型名スコープに定義されないこと マジ意味不明
C++11でようやくできるようになったんだっけ
322デフォルトの名無しさん:2014/01/27(月) 19:18:50.29
Cのenumは、組み込みのksコンパイラで
コンパイル時計算をするために存在している
323デフォルトの名無しさん:2014/01/27(月) 19:34:27.91
思えば理想的な列挙型を持った言語ってまだ出会ってない
JavaはJavaでクラス寄り過ぎるんだよな~
324デフォルトの名無しさん:2014/01/27(月) 19:38:57.36
言語仕様に過度な期待をする意味が分からん
自由にあれこれ拡張したいならメタプログラミングが得意な言語使えばいいだけだろ
325デフォルトの名無しさん:2014/01/27(月) 19:43:08.81
分からんことに口挟むなよ
326デフォルトの名無しさん:2014/01/27(月) 19:48:39.79
C#の列挙型はリーチを重視してるんだよ
単なる数値として実装されてるおかげで、速度やとメモリが犠牲にならない
ネイティブコードとの相互運用にも便利だし
メモリが厳しいMicro Frameworkでも問題なく使える
Javaのは確かに強力だけどヘビーな仕組みだから使えるところが限られてしまう
おかげでAndroidじゃほとんど使われてないしな
いくら凄いものでも利用されなければゴミ
327デフォルトの名無しさん:2014/01/27(月) 19:59:30.61
糞とは全く思わないけど、enumだけはJavaの方が柔軟性があるかもね。
まあ拡張メソッド使えるようになってからはそうでもないか。
328デフォルトの名無しさん:2014/01/27(月) 20:12:00.85
型制約でEnumができないのは何故なんだ・・
「where T : struct, IComparable, IFormattable, IConvertible」でもいけるけどさ
329デフォルトの名無しさん:2014/01/28(火) 00:02:30.77
Action<T>の引数がrefになってる版ってBCLにないよね?

値型の配列を列挙して変更する場合にあると便利だと思うんだけどArrayの拡張メソッドにも
そんなのないし、そういう使い方は想定されてないのか。
330デフォルトの名無しさん:2014/01/28(火) 00:34:41.85
想定されてないというより、分かりにくいコードになるから
そういうのは意図的に排除してるんだろう
331デフォルトの名無しさん:2014/01/28(火) 00:40:05.89
分かりにくいかなあ...
332デフォルトの名無しさん:2014/01/28(火) 00:45:36.65
Actionの宣言だけ考えても、Tにrefとか書けないから、
ActionRef<T>(ref T)とかActionRef1<T1, T2>(ref T1 , T2)とか
ActionRef1Out2<T1, T2>(ref T1, ref T2)とか
であっという間に大爆発するぞ
333デフォルトの名無しさん:2014/01/28(火) 00:47:43.02
元の配列を変更する必要がある場合を除いて、Select で十分じゃね?
334デフォルトの名無しさん:2014/01/28(火) 18:33:36.11
拾ってきたソースをvs2010でコンパイルしようとしたら
intからbyteへの暗黙の変換がどうのとエラーが出て明示的なキャストが必要ですとか言われるんだが
サイズのでかいintにキャストしておけば問題ないよね?
335デフォルトの名無しさん:2014/01/28(火) 18:39:36.45
二行目と三行目で真逆のキャストについて言及しているが
大丈夫か?
336デフォルトの名無しさん:2014/01/28(火) 18:52:01.57
ちょっとソースちゃんと読んでみることにする
337デフォルトの名無しさん:2014/01/28(火) 18:55:39.62
エラーで出てる通りにキャストすればいいだけじゃないの?
338デフォルトの名無しさん:2014/01/28(火) 20:49:15.07
()形式のキャストが嫌いなのでConvert.To~形式のキャストをわざわざ使ってる
static_cast<>()みたいな感覚で
339デフォルトの名無しさん:2014/01/28(火) 21:13:21.34
asは?
340デフォルトの名無しさん:2014/01/28(火) 21:41:11.04
asは仕方ねーだろ
341デフォルトの名無しさん:2014/01/28(火) 23:19:47.65
asにゃん
342デフォルトの名無しさん:2014/01/29(水) 10:39:10.07
ass
343デフォルトの名無しさん:2014/01/29(水) 13:54:16.71
C#を作った開発チームのチーフがヘジたんなのでDelphiの文法をかなり借りてきてるからだろ
344デフォルトの名無しさん:2014/01/29(水) 14:10:07.70
byteやshort同士の計算も結果はintに拡張されるんで、
shortのまま計算を続けたいときは面倒だよね

short x = 1, y = 2;
short z = (short)( x + y );
345デフォルトの名無しさん:2014/01/29(水) 14:56:24.03
まあbyteはともかく
P/InvokeやCOM相互運用とかじゃなきゃshortあんまり使わないし
346デフォルトの名無しさん:2014/01/29(水) 16:32:10.46
DelphiとJavaのいい所どり+Streamの先取りLINQがC#
ついでにasyncも入れた
347デフォルトの名無しさん:2014/01/29(水) 17:05:02.86
VS2008でC#勉強中です。
クラスの配列の初期化で、以下のような感じで初期値の代入を行う
ことは出来ないでしょうか?いろいろ試したのですがどうしても出来ません。

class TestClass
{
int i;
double d;
string s;

...
}

class Program
{
TestClass[] tc = new TestClass[]
{
{1 , 1.11 , "文字1" },
{2 , 2.22 , "文字2" },
{3 , 3.33 , "文字3" },
}
}
348デフォルトの名無しさん:2014/01/29(水) 17:10:17.83
iとかprivateだから外から触れないんだけど
class TestClass {
&nbsp; &nbsp; public TestClass(int i, double d, string s) { ... }
}
を定義すれば後は普通にそれぞれのTestClassをnewしていくだけだよ
349デフォルトの名無しさん:2014/01/29(水) 17:31:04.54
横から(歴3ヶ月)だけど、配列かリストで値をもちたいなら
>>348さんのを参考にすると、

List<TestClass> tc_list = new List<TestClass>();
tc_list.Add(new TestClass(1 , 1.11 , "文字1" ));
tc_list.Add(new TestClass(2 , 2.22 , "文字2" ));
tc_list.Add(new TestClass(3 , 3.33 , "文字3" ));

かなぁ
アクセスがめんどくさそう
350デフォルトの名無しさん:2014/01/29(水) 17:34:33.97
メンバーがpublicなら初期化子でもできるな
TestClass1 [] tc = {
 new TestClass() { i = 1 , d = 1.11 , s = "文字1" },
 new TestClass() { i = 2 , d = 2.22 , s = "文字2" },
 new TestClass() { i = 3 , d = 3.33 , s = "文字3" },
};
351デフォルトの名無しさん:2014/01/29(水) 17:37:28.72
TestClassというのがこの際どうでもよいなら
var tc = new [] {
 new { i = 1 , d = 1.11 , s = "文字1" },
 new { i = 2 , d = 2.22 , s = "文字2" },
 new { i = 3 , d = 3.33 , s = "文字3" },
};
352347:2014/01/29(水) 18:29:39.64
みなさん大変ありがとうございました。
教えていただいた方法を全部試してみましたが、どれもうまく行きました。
配列の初期化だから{}を使うのだと思っていましたが、
>>348さんの方法で出来ました。
ああそれと、メンバーはPublicです。書き忘れていました。
{ i = 1 , d = 1.11 , s = "文字1" }
というような記述が出来るのは知りませんでした。勉強になりました。
この部分を
{ 1 , 1.11 , "文字1" }
と書くとエラーしますね。そのあたりの意味がよくわかっていませんので
勉強します。
とにかくありがとうございました。
353デフォルトの名無しさん:2014/01/30(木) 01:09:42.66
メンバはプライベートにしてプロパティ使った方が良いよ!
354デフォルトの名無しさん:2014/01/30(木) 03:23:40.85
プログラミングに興味を持ちましてC#を始めてみようかと思っているのですが
初心者にオススメの書籍を教えていただけないでしょうか・・・?
手続き型の言語は過去に多少触れたことがあるのですが、オブジェクト指向型は完全に未経験です
ちなみにプログラミングC#第7版を昨日買ったのですが、買った直後にこの書籍が超応用書籍だということを知りました・・・・orz
よろしくお願いします。
355デフォルトの名無しさん:2014/01/30(木) 05:27:46.64
C#も手続き型ですし
356デフォルトの名無しさん:2014/01/30(木) 05:40:14.23
型なんてどうでも良いな
357デフォルトの名無しさん:2014/01/30(木) 08:29:19.67
オブジェクト指向をちゃんとやりたいならJavaから入るのがおすすめ
初心者向けの丁寧な本がたくさんあるし全く違和感なくC#に移行できるよ
C#はJavaやC++の経験者のために作られた言語だから、
背景がわかってないまま機能だけ追ってると、何でこんなものが必要なのかが理解しがたい部分が多い
358デフォルトの名無しさん:2014/01/30(木) 08:37:43.55
javawww
359デフォルトの名無しさん:2014/01/30(木) 08:59:56.67
俺は全部ネットで調べて勉強したけどな
360デフォルトの名無しさん:2014/01/30(木) 09:43:53.08
JAVAの方が教条主義的で分かりやすいかも
361デフォルトの名無しさん:2014/01/30(木) 10:36:52.95
C#の設計って基本的に「Javaのこの頻出定型区は冗長である。だから言語に組み込むことで簡略化した。」だからな
元を知ってる方が当然分かりやすい
362デフォルトの名無しさん:2014/01/30(木) 10:50:33.25
C#やりたい!

C#はJavaが元になってるからそっちからやったほうが当然分かりやすい

JavaはC/C++の構文引き継いでるからそっちからやったほうが当然分かりやすい

C/C++はアセンブラを高級にしたものだからそっちからやったほうが当然分かりやすい

アセンブラはハードウエアに密接に関連するからPICのようなチップからやったほうが当然分かりやすい

PICは単体じゃ動かないからハードウエア知識得るためにもTTLからやったほうが当然分かりやすい

TTLはトランジスタから発展したものだからそこからやったほうが当然分かりやすい
363デフォルトの名無しさん:2014/01/30(木) 10:59:41.92
プログラム経験完全ゼロの人なら
javascriptで雰囲気つかんでからでも遅くないよな
364デフォルトの名無しさん:2014/01/30(木) 11:04:29.71
JavaScriptはクラスベースじゃないからC#の前段としては難しくないか
365デフォルトの名無しさん:2014/01/30(木) 11:08:09.57
>>362
マイクロコードは?
366デフォルトの名無しさん:2014/01/30(木) 11:09:43.21
>>362
JavaのためにCをやらせるのはアホ
367デフォルトの名無しさん:2014/01/30(木) 12:39:52.52
>>354 おすすめ
つ F#
368デフォルトの名無しさん:2014/01/30(木) 13:21:15.52
プログラミング初心者はオブジェクト指向とか考えなくていいです
369デフォルトの名無しさん:2014/01/30(木) 13:23:17.40
そうだな
最初は習うより慣れろの方がいいと思う
自分はいまもそうだけどw
370デフォルトの名無しさん:2014/01/30(木) 16:22:25.12
定義でunsafeとしているのにエラーがでます。なにがいけないのでしょうか?

エラー CS0214: ポインターおよび固定サイズ バッファーは、unsafe コンテキストでのみ使用することができます。

public sealed class myClass
{
[DllImport("Loader.dll")]
private unsafe static extern uint Load(string exe, string dll, string func, void* dllData, int dataLen, out uint pid);

public static myClass.Loader_Error LaunchClient(string client)
{
uint test = myClass.Load(client, dll, "OnAttach", null, 0, out processId);
}
}
371デフォルトの名無しさん:2014/01/30(木) 16:29:00.79
> &nbsp; uint test = myClass.Load(client, dll, "OnAttach", null, 0, out processId);
こっちでも(nullだけど)使ってるっしょ
372370:2014/01/30(木) 17:22:32.00
宣言だけでなく、呼び出しでもunsafeを指定する必要があるという事なのでしょうか?
解決方法がわかりません
373370:2014/01/30(木) 17:24:20.85
public unsafe static myClass.Loader_Error LaunchClient(string client)

これでいいのでしょうか?
374デフォルトの名無しさん:2014/01/30(木) 18:04:58.33
NULLさえ渡せればよいなら、IntPtrにすればunsafeはいらない

private static extern uint Load(string exe, string dll, string func, IntPtr dllData, int dataLen, out uint pid);

uint test = myClass.Load(client, dll, "OnAttach", IntPtr.Zero, 0, out processId);
375370:2014/01/30(木) 18:08:53.36
>>374
有難うございます!
IntPrrを忘れぬよう覚えておきます
376デフォルトの名無しさん:2014/01/30(木) 19:03:18.16
>>362
TTLって何十年前の話をしてるんだよ。
っていうかTTLが何の略か知らないのかよ馬鹿だねw
377デフォルトの名無しさん:2014/01/30(木) 19:07:33.37
>>375
早速間違ってるw
378デフォルトの名無しさん:2014/01/30(木) 19:10:31.13
Through The Lens測光のことだろ?
379370:2014/01/30(木) 19:19:57.38
>>377
すんません、スマホからだってのです^^;
380デフォルトの名無しさん:2014/01/30(木) 20:19:48.04
>>378
普通 Time to live だよね
381370:2014/01/30(木) 22:11:14.39
nullから、IntPtr.Zeroに変更した所、
> Load(string, string, string, void*, int, out uint)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
> System.IntPtr' から 'void*' に変換できません
このようなエラーがでたため、
public unsafe static myClass.Loader_Error LaunchClient(string client)
このようにした所、エラーが消えました。

しっくり来ないんですが、こんなもんなんでしょうか?
382デフォルトの名無しさん:2014/01/30(木) 22:16:25.22
予言しよう。今度はLaunchClientを使う場所で unsafeが・・とエラーになるぞよ。

Loadの宣言もIntPtrに換えないとだめだろ。
383デフォルトの名無しさん:2014/01/30(木) 22:28:09.56
人生行き当たりばったり
384デフォルトの名無しさん:2014/01/30(木) 22:34:34.15
>>382
ご指摘の通り、
[DllImport("Loader.dll")]
private unsafe static extern uint Load(string exe, string dll, string func, IntPtr dllData, int dataLen, out uint pid);

uint test = myClass.Load(client, dll, "OnAttach", IntPtr.Zero, 0, out processId);

これで行けました。ありがとうございました><
385デフォルトの名無しさん:2014/01/31(金) 01:15:19.03
>>365
いまどきマイクロコード書けるマシンなんか、あるんか?
386デフォルトの名無しさん:2014/01/31(金) 19:27:45.70
Version version = Assembly.GetCallingAssembly().GetName().Version;
これで取れるバージョンって、何処で設定/保存されてるんですか?
今のところメジャー0,マイナー0,ビルド0しか取れないんですが…
387デフォルトの名無しさん:2014/01/31(金) 19:31:14.24
設定されてるのはVSではAssemblyInfo.csで定義されてるAssemblyVersion属性
388デフォルトの名無しさん:2014/01/31(金) 20:17:32.96
ありがとうございます
AssemblyInfo.csでぐぐってみます
とりあえずここを読んでみるつもりです
ttp://dobon.net/vb/dotnet/file/myversioninfo.html
389デフォルトの名無しさん:2014/01/31(金) 20:39:43.00
どなたか教えてください。

Visual studioでプログラムを作成し、自分のpcではデバックを開始することができるのですが
それを圧縮して他人に送ると、プログラムの中身がないといわれます。

どうすればいいでしょうか?どなたかお願いします。
390デフォルトの名無しさん:2014/01/31(金) 20:41:22.58
意味不明
頭あるならもう少し整理しろ
391デフォルトの名無しさん:2014/01/31(金) 20:46:27.80
>>390
すみません。

Visual studioで色々とコードを書いて、プログラムを作りました。
内容はボタンを押すと文字の色が変わる、とかそんなやつです。
ですが、ソリューションの入ったフォルダごと、それを他人に送ると
ソリューションには入口のデータしかない、と言われます。

実際、今自分もソリューションを立ち上げてみたんですが
コードソースを表示することができませんでした。。。
それでも、デバック開始をクリックすると、ちゃんとプログラムが起動します。

これを他人に送れるようにしたいのですが・・・
392370:2014/01/31(金) 20:59:23.25
バッチビルドでリリース版作ってる?
393デフォルトの名無しさん:2014/01/31(金) 21:06:42.37
ソリューションには入口のデータしかない、と言ったのは誰なんだ
送った相手か
PCw
394デフォルトの名無しさん:2014/01/31(金) 21:08:08.42
×PCw
○PCか
395デフォルトの名無しさん:2014/01/31(金) 21:10:22.76
送った相手です
396デフォルトの名無しさん:2014/01/31(金) 21:14:31.76
sln、csproj、bin内のexeはあってcsが無い状態???
397デフォルトの名無しさん:2014/01/31(金) 23:57:35.82
FormにLabelかTextBoxなどを使って、複数行の文字列を描きたいのですが、
自分で改行コードを文字列の途中に適当に入れて改行を行うとして、
表示された文字列が隠れることなく表示されるようにFormの縦横の大きさを
自動で調整したいのですが、何かそういう手法はありますか?
398デフォルトの名無しさん:2014/02/01(土) 00:48:44.72
LabelならAutoSizeプロパティをtrueにしておけば、文字に合わせてSizeがかわるから
それに合わせてフォームのサイズを変えればいい。
399デフォルトの名無しさん:2014/02/04(火) 12:42:26.93
C#(+ .net4?)で、ウェブアプリを作って、LAN内向けとして、httpサーバで動作させようと思っています。
この場合、windows serverを利用するメリットって何かあるのでしょうか。
重なったとしても、同時に3アクセスくらいだと思います。

現在、windows 8 proで、v.s.2010が動作していて、デバッグ環境になっています。
このまま、付属のWEBサーバにアプリを設置して動作させると、何かまずいことなどあるでしょうか。
400デフォルトの名無しさん:2014/02/04(火) 12:51:57.51
Web Server用途でWindows Serverが必要になるのは
基本的にライセンスの問題。
家庭内や開発目的ならpeerアクセスの範疇だから問題ないが、
オフィス内となると微妙かな。
401デフォルトの名無しさん:2014/02/04(火) 12:58:48.19
Visual Studio 2013で
デバッグ時に自動保存されないようにする設定はどこにあるのでしょうか?
2008使ってた時にあった オプション - ビルド/実行 - ビルド開始前に行う保存の操作 - 変更を保存しない
が見当たりません・・・
402デフォルトの名無しさん:2014/02/04(火) 13:43:32.58
>>354
「オブジェクト指向でなぜつくるのか」はいかがでしょうか?
だた、本当にプログラミングを始めたばかりなのであれば、今書籍は必要ないというか
ただただ、Webでいろいろ調べて試行錯誤する事のほうが得られるものが多そうですけども。
ちなみに、最初に買う書籍ということならば、オライリーのやつよりも、独習C#をおすすめします。
403デフォルトの名無しさん:2014/02/04(火) 15:45:52.11
>>400
レスありがとうございます。
ライセンス差によって、製品を使い分ける必要があるのですね。

一方で、PROと、SERVERの安定性の差はどこまであるのかも気になります。
404デフォルトの名無しさん:2014/02/05(水) 20:17:43.67
指定したフォルダ内にあるサブフォルダ名とファイル名を取得して返す関数を作る場合、
戻り値を保持する入れ物はどいういデータ構造が一般的でしょうか?
文字列の配列に入れると、フォルダかファイルかの区別が付かないので。
一般的にどういう手法を使うのでしょうか?
405デフォルトの名無しさん:2014/02/05(水) 20:31:13.07
DirectoryInfo.GetFileSystemInfosでいいだろ
406デフォルトの名無しさん:2014/02/05(水) 20:54:49.19
>>405
ありがとうございます。こんな便利なものがあったとは知らなかったです。
407デフォルトの名無しさん:2014/02/05(水) 23:16:20.30
メソッドの引数でクラスを持つときそのクラスを変更しないような制約をつけることって出来ますか?
/*c++のconst引数みたいな*/
408デフォルトの名無しさん:2014/02/05(水) 23:21:39.61
できません
409デフォルトの名無しさん:2014/02/05(水) 23:27:30.76
>>408
あるメソッドにクラス渡したら勝手に内容書き換えられた!!
みたいなことって起きたりしないんですか
410デフォルトの名無しさん:2014/02/05(水) 23:36:31.82
弄られると困るんならコピーして渡せよ
411デフォルトの名無しさん:2014/02/05(水) 23:39:14.35
なるほど
412デフォルトの名無しさん:2014/02/05(水) 23:41:09.46
C#のstringにconstいらないしなぁ
413デフォルトの名無しさん:2014/02/05(水) 23:54:27.86
ArrayList.ReadOnly()みたいに読み取り専用のラッパーを作るとか、
Stringみたいに、そもそも書き換え不可にしてStringBuilderのようなクラスを別途作るかかな。
まあ、今時のマルチスレッド対応を考えるとStringのようにイミュータブルにしておくのが賢いかも。
414デフォルトの名無しさん:2014/02/05(水) 23:57:58.57
>>413
イミュータブルってなんですか?
415デフォルトの名無しさん:2014/02/06(木) 00:16:32.38
作成後は状態を変えないオブジェクトのこと。要するに書き換え不可ってこと。
416デフォルトの名無しさん:2014/02/06(木) 00:24:12.52
なるほど
417370:2014/02/06(木) 00:36:10.24
つーか単語くらいはググれよw
同じキーワードで余計なもんが引っかかるなら別だが
418デフォルトの名無しさん:2014/02/06(木) 00:46:34.29
そもそもメソッドを書く側が、引数のオブジェクトのデータを書き換えないことを
そのメソッドの使用者に対して保証したいって考えることがあるのかと言うと...少なくとも俺はない。

使う側も、それが言語レベルで保証されてないと安心して使えない...とかまず思わんのじゃないのかと。
419デフォルトの名無しさん:2014/02/06(木) 00:52:31.03
const必要って人は、メソッド書くときに引数のオブジェクトのデータを
間違って変更しちゃうミスをコンパイル時に検出したいと考えてるのかな。

だとしたらその問題意識ってどうなのと思うんだけど
420デフォルトの名無しさん:2014/02/06(木) 01:17:05.47
>>410
メソッドの定義からは弄られるかどうかが分らないから不便なんだよ。
コピーも重い処理だし。
421デフォルトの名無しさん:2014/02/06(木) 03:00:26.81
C++型のconstがC#どころか他の言語でも採用されてないのは、
コストのわりにメリットが少ないからだろう。
それに、基本値型のC++のオブジェクトと違って参照型のC#の場合、
constにしたオブジェクトがかかえてる参照の先も連鎖的に
constにしないとほとんど用をなさない。
それを実現するとなると言語仕様やコーディング量が増大してしまう。
422デフォルトの名無しさん:2014/02/06(木) 03:09:09.95
フリーのライブラリに配列渡したら、ウイルス埋め込まれたみたいな
423デフォルトの名無しさん:2014/02/06(木) 03:17:43.18
つ Array.AsReadOnly<T>

参照の配列の場合は知らん
424デフォルトの名無しさん:2014/02/06(木) 03:19:03.15
メソッド名にReadOnlyと入れればいいんだね!!
425デフォルトの名無しさん:2014/02/06(木) 03:23:35.09
C++でもconstはconst_castの前に敗れ去るから、
プログラムミスは防げても、
悪意のあるライブラリからの防御は無理だな
426デフォルトの名無しさん:2014/02/06(木) 06:59:15.25
オブジェクトの状態を書き換えるかどうかを使う側がコントロールするのはカプセル化に反しているから、
C++で自分だけでコードを書く場合はconstは使わない。
427デフォルトの名無しさん:2014/02/06(木) 07:12:37.14
>>426
いやコントロールするのはクラスを提供する側だろ
使う側で呼べるメンバに制限がかかるだけであって中身には影響しないんだからカプセル化は破られてない
どうせconstなくても読み取り専用かどうかくらいはドキュメントに書くだろ
428デフォルトの名無しさん:2014/02/06(木) 13:57:02.23
そもそも引数を変更するのは行儀の悪い作法だと思うんだがな
まあ、有用な場面が多いのも事実なんだが
429デフォルトの名無しさん:2014/02/06(木) 14:42:53.40
回りくどいけどやるとしたらこんなところか

interface IFooRO { int X { get; }}
class Foo : IFooRO { public int X { get; set; }}

class Program {
 static void SomeFunc(IFooRO f) {
  Console.WriteLine(f.X);
 }
 static void Main() {
  var f = new Foo() { X = 99 };
  SomeFunc(f);
 }
}
430デフォルトの名無しさん:2014/02/06(木) 17:34:05.43
publicなものは何したっていいからpublicなわけで
431デフォルトの名無しさん:2014/02/06(木) 17:59:43.43
DbCは流行りませんでしたね(苦笑)
432デフォルトの名無しさん:2014/02/06(木) 19:23:44.56
書き変えるメソッドに属性つけるみたいな原則はどうだろう
433デフォルトの名無しさん:2014/02/06(木) 19:25:40.59
.NET4.5からIReadOnlyCollection系が追加されたね
念願の共変リストと共変ディクショナリだぞ
434デフォルトの名無しさん:2014/02/06(木) 20:56:20.18
>>432
属性って読むのはリフレクション経由じゃないの?
435デフォルトの名無しさん:2014/02/06(木) 21:53:11.55
readonlyの変数を公開したい場合、プロパティかまして公開した方がいいですか?
436デフォルトの名無しさん:2014/02/06(木) 21:57:08.57
プロパティかまさないとreadonlyにできない状況ならそうせざるを得ないでしょ
そうでなくてオーバーライドしたりする気がないならどうでもいい
437デフォルトの名無しさん:2014/02/06(木) 22:00:54.98
public readonly A
とかで公開してもいいってこと?
438デフォルトの名無しさん:2014/02/06(木) 22:07:27.80
Aがミュータブルなオブジェクトでなければ
439デフォルトの名無しさん:2014/02/06(木) 22:09:41.90
クラスライブラリ向けガイドライン的にはstatic readonlyならpublicにしてもよい
440デフォルトの名無しさん:2014/02/07(金) 00:45:59.09
構造体のNEWてスタックに積むだけだからコストは無視できる?
441デフォルトの名無しさん:2014/02/07(金) 00:51:09.83
>>440
大幅にできる
442デフォルトの名無しさん:2014/02/09(日) 15:34:42.89
ホットキー処理ってWIN32API使わないと無理なん?
443デフォルトの名無しさん:2014/02/09(日) 15:40:35.77
ショートカットキーとホットキーがある中でホットキー(RegisterHotKeyの奴)をさして言ってる?
であればその通り
444デフォルトの名無しさん:2014/02/09(日) 22:49:17.55
後から動的に読み込んだクラスclass myclassに 
int num;
というpublic変数が存在しているかどうかを確認して、
存在している場合はその変数にアクセスするにはどうしたらいいですか?
445デフォルトの名無しさん:2014/02/09(日) 22:54:35.85
typeof(myclass).GetField("num").GetValue(null);とかそんな感じ
446デフォルトの名無しさん:2014/02/09(日) 22:57:36.40
staticじゃないならまずmyclassのインスタンス作るところから必要だけどな
447デフォルトの名無しさん:2014/02/09(日) 23:29:14.80
>>444
ComponentModel.Compositionあたりを探るといいよ
448デフォルトの名無しさん:2014/02/12(水) 14:52:26.74
VC# 2010 Express SP1の環境で、ファイルIOの例外が発生しないので困っています。

string[] files = Directory.GetFiles(dir);
foreach (string s in files)
{
  if (System.IO.File.GetLastWriteTime(s) < older)
  {
    try
    {
      System.IO.File.Copy(s, fileName, true);
    }
  catch (Exception e)
    {
      // 例外発生時の処理
    }
  }
}

こんな流れなのですが、わざとコピー対象のファイルを開いていても、
例外に飛ばず、しかし開いているファイルはコピーされていない状態です
コピーされなかったファイル名をまとめてログに吐きたいのですが、
どうすれば良いのでしょうか?(コピーされない事自体は想定どおりなのですが、、、)
449デフォルトの名無しさん:2014/02/12(水) 15:40:18.80
448 自己解決しそうなので取り下げます
エクセル→開いてる間、更新してなくても開いたタイミングの日付に書き換わる
ワード→開いていてもコピーされる

GetLastTimeする前に、GetAttributeして他のプロセスで使用されていなければ
コピーを試みる、って処理に変更する事にします
450デフォルトの名無しさん:2014/02/12(水) 15:41:44.24
たんにGetLastWriteTime(s) < olderあたりの処理がバグってるだけの気がするが
451デフォルトの名無しさん:2014/02/12(水) 17:02:42.40
>わざとコピー対象のファイルを開いていても
どうやってるの?
notepadで開いてるだけだと読み取りできるからエラーにはならないよ。

こんな感じで排他アクセスしてしまえば例外が起きるはずだけど。

var f = File.OpenWrite("xxxxxx.txt");
452デフォルトの名無しさん:2014/02/12(水) 18:04:12.14
>>451
説明不足ですいません
普通にエクセルやワードのファイルを開いておいて、
そのファイルのあるディレクトリごとコピーしようと試みてます

実際にはコピーした後に削除をしたいのですが、
上記の状態だとコピーは成功して、削除に失敗するので、
同じファイルがコピー元とコピー先に2つ出来てしまうのが問題なのです

Moveだと上書き出来ないようなので、Copy と Delete で代用してるのですが、
削除に失敗する「前」に、コピーもしたくないので困っていました
449で書いたGetAttributeでもFileIOの例外を吐かず、
更にSetAttributeでも例外が発生しないので、
とりあえず、削除に失敗したらそのファイルはコピー先の方で削除するようにしてみました

何か別な方法があれば教えて頂きたいと思います
453デフォルトの名無しさん:2014/02/12(水) 18:05:56.68
分かりにくい説明になったので補足

> 普通にエクセルやワードのファイルを開いておいて、

それぞれ該当のアプリで開く、という意味です
454デフォルトの名無しさん:2014/02/12(水) 18:08:58.93
File.Open( path, FileMode.Open, FileAccess.ReadWrite, FileShare.None )で開いてみればいいじゃん
455デフォルトの名無しさん:2014/02/12(水) 18:26:27.61
>>454
おお、うまく行きました!
ありがとうございます

速度的にも問題なさそうな感じです
456デフォルトの名無しさん:2014/02/15(土) 12:36:00.90
C#で、COM(Microsoft.Office.Interop.Excel)をまったく使わずに
Excelファイルを新規作成して開くことってできないでしょうか?

excelを開くのは、System.Diagnostics.Process.Start("excel", "hoge.xls");
で、できたのですが、
hoge.xlsが存在しないとexcelでエラーが出てしまいます。
COMを使ってややこしいことをすれば出来るみたいですが、
C#側でexcelの操作はなるべく避けたいので、別の方法を探しています。
457デフォルトの名無しさん:2014/02/15(土) 12:41:49.03
直感でいうと、
C#からExcel起動時にマクロを実行させるとか、
ショートカット作っといてそれを開くとか
458デフォルトの名無しさん:2014/02/15(土) 12:52:09.15
npoiを使えばいい
459デフォルトの名無しさん:2014/02/15(土) 13:46:09.26
>>457
>>458
ありがとうございます
とりあえず、こんな方法にしました

1.default.xlsを新規作成のデフォルトとして保存しておく
2.起動時hoge.xlsがなければSystem.IO.File.Copy()でdefault.xlsからコピー
3.System.Diagnostics.Process.Start("excel", "hoge.xls")
460デフォルトの名無しさん:2014/02/15(土) 13:53:53.25
妥当だろうね
461デフォルトの名無しさん:2014/02/15(土) 20:29:58.21
どこからでもアクセス出来るグローバル変数というのがあります。
調べてみると、Program.csに書いておくという方法があり、それはそれでいいのですが、
アプリケーション変数をグローバル変数代わりにしたら何か問題はありますか?

if (Properties.Settings.Default.Hoge == "abc")
・・・

変数のように使えるし、ついでに永続化も出来るので、参照はともかく書換を頻繁に行わないのであれば
このまま使ってもいいのかなと思いました。
起動時にグローバル変数に
string Hoge = Properties.Settings.Default.Hoge;
と呼び出してHogeを使ってもいいのですが、アプリケーション変数で管理した方が一括管理が出来るかなと考えたのですが、どうでしょう?
462デフォルトの名無しさん:2014/02/15(土) 20:36:50.30
どうでもいいでしょう
463デフォルトの名無しさん:2014/02/15(土) 20:57:39.46
ただの設定データだったらそれでいいんじゃない?
ただ、グローバル変数だから永続化するというわけではないからそこらへんは適当にやればいい
464461:2014/02/16(日) 14:14:23.87
特に問題はなさそうですね。
たしかに永続化するかどうかわからないわけですから、全部アプリケーション変数というのもおかしいですね。
使い分けることにします。
465デフォルトの名無しさん:2014/02/18(火) 03:52:33.51
ものすごい基本的な話ですが、
Console.WriteLineはクラスとメソッドが組み合わさったもので、
クラスの後ろに.を付けると以下URLのリストにあるメソッドを呼び出せる
それぞれのクラスにはメソッドが用意されていて、それ以外の組み合わせ、
たとえばConvert.WriteLineではエラーがでるという理解でいいのでしょうか?
http://msdn.microsoft.com/ja-jp/library/system.console%28v=vs.110%29.aspx
466デフォルトの名無しさん:2014/02/18(火) 07:37:35.73
合ってる。

クラスというのは「分類」の名前と考えたら分かるかな。
学校で例えたらそのままA組、B組みの「クラス」になる。
だから、Console組のWriteLine君、Convert組のToInt16君、って呼び方をする。
あと、たまに色んなクラスで同姓同名の人も居るし。

だから、クラスとメソッドの組合せを間違えたら、
「先生!そんな人うちのクラスには居ません!」(コンパイルエラー)
「先生?確かに私その名前だけど、別の組の人と間違ってません?」(バグ)
ということになる。
467デフォルトの名無しさん:2014/02/18(火) 08:35:39.00
静的メソッド(クラス名.メソッド名 の形で呼び出すメソッド)の場合は、はっきり言ってクラスにはほとんど意味がない
クラスがどうのと難しく考えるより、単にクラス名も含めて長い名前の関数があると考えるのが実態に近い
クラスが意味を持ってくるのはインスタンスメンバを使うとき
468デフォルトの名無しさん:2014/02/18(火) 22:38:46.22
まずはx.ToString()かな
469デフォルトの名無しさん:2014/02/18(火) 23:20:40.58
プログラミングの効率をいかに上げるかで、コンピュータ言語というものは進化してきてる。

Win32APIのずらっと大量に並んだものから、探し出してプログラミングするなんて
今時やってられない。
でも、C#とかでは、クラスとか名前空間でAPIを分類することで簡単に探し出して、プログラミングに
集中出来るようにしている。VisualStudioではインテリセンスのサポートも有るしな。
470デフォルトの名無しさん:2014/02/19(水) 00:31:50.92
言語はC#.NETで、新規のWebシステムを作ることになったのですが
これまではJavaはゴリゴリやってきたんですがC#は全くの初心者で。。
開発ツールはVisualStudio 2013で大丈夫ですよね。。Javaでいうframeworkとか
定番の便利ライブリとかあるものなのでしょうか。
新規プロジェクトなので何でも使えるのだけが救いです。。
471デフォルトの名無しさん:2014/02/19(水) 00:56:13.62
近くにアドバイザーもいない状態で一体何ができあがるのやら楽しみ
472デフォルトの名無しさん:2014/02/19(水) 00:56:36.55
>>470
ASP.NET MVCとEntity Framework
.NETは基本的にVSだけ入れたら揃う
473デフォルトの名無しさん:2014/02/19(水) 00:56:46.71
>>469
今思うと一覧のほうが検索が楽だね。
474デフォルトの名無しさん:2014/02/19(水) 01:18:27.96
>>470
公式の英語チュートリアルやっておけば、
基本は大丈夫だよ
asp.net mvcは日本語書籍で、
まともなのが無いから、ググりましょう
エンティティフレームワークは癖ある
475デフォルトの名無しさん:2014/02/19(水) 02:11:14.66
>>469
Win32API もカテゴライズされてるし、.NET の深い階層から探しきれずに MSDN で検索したりするし...
476デフォルトの名無しさん:2014/02/19(水) 02:24:33.26
>>466>>467
ありがとうございます
最初の内はあんまりじっくり調べず、
おまじないレベルとして先に読み進めたほうがいいかもしれませんね
477デフォルトの名無しさん:2014/02/19(水) 11:46:58.79
インスタンス変数にthis付ける?
478デフォルトの名無しさん:2014/02/19(水) 11:55:38.87
付ける
479デフォルトの名無しさん:2014/02/19(水) 12:10:02.94
thisを意味なく多用してるソースは信用しないことにしてる
480デフォルトの名無しさん:2014/02/19(水) 12:18:29.60
信用されない>>478さん かわいそう
481デフォルトの名無しさん:2014/02/19(水) 13:03:59.15
基本付けておいたほうがいいだろ
重要なもんなんだし目立つに越したことはない
482デフォルトの名無しさん:2014/02/19(水) 14:42:21.01
付ける必要がないものをつけると
何か特別な意味があるのかと勘繰るから俺は通常は付けない
483デフォルトの名無しさん:2014/02/19(水) 14:45:47.37
じゃあ>>482が敢えてthis付ける特別な場合ってどんなの?
484デフォルトの名無しさん:2014/02/19(水) 15:06:11.19
引数と同じ名前の時は付けるw
485デフォルトの名無しさん:2014/02/19(水) 15:07:49.69
おれルールだけど
既定クラスの変数やプロパティにはつける。
自クラスの変数やプロパティにはつけない。
関数はつけない。
486デフォルトの名無しさん:2014/02/19(水) 16:04:22.64
IDEでいい感じに色つけてくれないのん
487デフォルトの名無しさん:2014/02/19(水) 16:24:45.67
補完も効くし後で読んでも一目で分かるし
俄然付ける派だわ
488デフォルトの名無しさん:2014/02/19(水) 17:34:23.48
定期的に出る話題だけど結論は
好きにしろ、仕事ならプロジェクトのルールに従えってだけ。
もうひとつ定番を追加すると
補完はCtrl-Spaceを使えっていうのがあるな。
489370:2014/02/19(水) 17:56:53.17
>>485
既定クラスって基底クラスの事だよね?
そうなら同意権
490デフォルトの名無しさん:2014/02/19(水) 18:09:05.62
base使えよ
491370:2014/02/19(水) 18:25:50.89
baseの存在を忘れていた
492デフォルトの名無しさん:2014/02/19(水) 18:28:12.03
thisは基本付けないけど
コンストラクタ内のメンバ初期化の時には付けたくなる
493デフォルトの名無しさん:2014/02/19(水) 18:37:56.32
baseはやたら使ったらダメだよ
overrideしたはずなのに基底のをのを呼び出してしまってバグの元だ
494デフォルトの名無しさん:2014/02/19(水) 18:45:22.51
こういうのがいるからthis多用は信用できない
495デフォルトの名無しさん:2014/02/19(水) 18:47:10.45
そのクラスの更に派生クラスでオーバーライドされることを考慮すれば、
派生クラスの実装が呼び出される方がバグの元だろ
baseなら何が呼ばれるか決まってるんだから確実
496デフォルトの名無しさん:2014/02/19(水) 18:49:10.03
baseはVBではMyBaseだけど、VBにはさらに
たとえoverrideされても自身のを呼び出すMyClassというのがある

VBでMyClass/MyBaseを多用されてると不安になるよ
497デフォルトの名無しさん:2014/02/19(水) 18:57:33.24
>>495
そのときはoverrideさせないようにするのがセオリーだと思うぞ
498デフォルトの名無しさん:2014/02/19(水) 18:58:18.48
自身っていうか、そのコードが書かれているクラスで定義されたメンバだけどね。
オーバーライドされたメンバはむしろ「自身」だから。

俺はVBerでもあるけどMyClassは使ったことないな。
499デフォルトの名無しさん:2014/02/19(水) 20:38:14.72
むしろVBで書いてあると不安になる
500デフォルトの名無しさん:2014/02/19(水) 22:31:13.77
don't think feel
501デフォルトの名無しさん:2014/02/19(水) 23:03:15.40
例えば

string text = "[[文字列1][[文字列2]文字列3]][[文字列4][[文字列5]文字列6]]"

の時に

[[
文字列1
][[
文字列2
]文字列3]][[
文字列4
][[
文字列5
]文字列6]]

のように分解したいのです。
要するに、多数の[]が入れ子になっていて、
[文字列]
のように[]に挟まれている要素の前後で分解したいのです。
戻り値はstring[]で。
誰か暇な人書いてくれませんか?
502370:2014/02/19(水) 23:10:50.34
求めるのはヒントだけにしないと学習しないぞ
503デフォルトの名無しさん:2014/02/19(水) 23:17:34.67
(?<=\[)[^\[\]]+(?=\])
504デフォルトの名無しさん:2014/02/19(水) 23:24:39.41
>>503
正規表現ありがとうございます。
自分でも、文字列を先頭から順番に調べていき[]のペアを
見つけて分解する関数を作っている最中なのですが、
処理速度的には、一般にどちらのほうが速いでしょうか?
大量の文字列を処理したいので速度優先したいと思っています。
505デフォルトの名無しさん:2014/02/19(水) 23:27:54.97
やってレポートしろよw
どこまでおんぶに抱っこだよw
506デフォルトの名無しさん:2014/02/19(水) 23:56:52.27
最初から速度を気にしてコーディングに時間かける奴は無能
簡単に実装できる方法があるならそれで作って遅かったら直せ
507デフォルトの名無しさん:2014/02/19(水) 23:58:15.85
誰に命令してるつもりなんだろうねえw
っていうかそんなの程度問題だから。
馬鹿じゃないの。
508デフォルトの名無しさん:2014/02/20(木) 04:29:21.68
最初から速度を気にしてコーディングできる奴はコード書くのも早いし、バグも少ない。
無能とか言ってる奴が無能。
509370:2014/02/20(木) 07:47:56.59
ソートを自作するとして

>>506が言いたいのはハッシュソートを実装しようとして時間がかかるより
最初はロジックも簡単なバブルソートで書いて
実用に耐えなかったらハッシュ何書き直せ

>>508が言いたいのは最初からハッシュかける奴は書くのも早い
ハッシュ書くのに時間がかかる奴はバグも多いし無能

経験値の差だからどっちも正論だと思うが。
新人ならバブルソートで書かせるし
スケジュルールに余裕があれば
ハッシュソート書かせるし。
実務経験長い奴はいきなりハッシュソート書くだろうな。
510デフォルトの名無しさん:2014/02/20(木) 07:57:02.30
それより誰かしたらばあたりの避難所用意しといてよ
お願いね
511デフォルトの名無しさん:2014/02/20(木) 09:44:13.60
つーかソートの自作なんてしないのが現代のプログラマ
512デフォルトの名無しさん:2014/02/20(木) 10:17:05.43
学生だろ
513デフォルトの名無しさん:2014/02/20(木) 15:25:03.51
自作するとしてって前提書いたじゃんかよ
514デフォルトの名無しさん:2014/02/20(木) 15:44:26.63
ハッシュソートとバブルソートを比べてる時点でイミフ
学生でビンゴだな
515デフォルトの名無しさん:2014/02/20(木) 15:58:10.15
学生なら実務経験とか書かないだろ
ハッシュは早いけどそれなりのコーディング量がいるし
バブルは遅いけど馬鹿でも書けるだろ
そういうつもりで例に上げたんだが
そんな事まで説明しないと
>>506>>508の論点のズレを指摘している事が伝わらないのか?
516デフォルトの名無しさん:2014/02/20(木) 16:08:47.29
二次元配列のPictureBoxをControls.AddRangeでフォームに表示したいんだけど、
エラーになる。
どしたらいいの?

ここでエラー。
Controls.AddRange(this.objPicBox)

System.Windows.Forms.PictureBox[*,*]' から
'System.Windows.Forms.Control[]' に変換できません
517デフォルトの名無しさん:2014/02/20(木) 16:09:43.23
一次元にしろ としか
518デフォルトの名無しさん:2014/02/20(木) 16:19:27.26
>>517
やっぱそうか。
じゃあ一個ずつ定義しなおすことにする。
ありがと。
519デフォルトの名無しさん:2014/02/20(木) 16:20:39.35
>>509は確実に無能
520デフォルトの名無しさん:2014/02/20(木) 16:28:01.84
>>519
正解
521デフォルトの名無しさん:2014/02/20(木) 16:35:11.26
無能でいいよこのコミュ障共め
マシン語で会話でもしてろ
522デフォルトの名無しさん:2014/02/20(木) 16:37:34.65
>>506
おおよそ正しい

>>508
論外
同じ処理書かせても細かいこと気にしすぎて遅くなる可能性がある。そしてバグが少ないとは限らない
523デフォルトの名無しさん:2014/02/20(木) 16:47:03.04
>>503
先ほど無事完成しました。
分解結果が正規表現版と同じになったので安心しました。教えて頂いた表現の
意味は、自力で理解しようとしたのですが、難しくて30%くらいしか理解できていません。
それにしても、こんな正規表現をすぐに書けるとは、凄いですね。
速度的には10倍くらいの違いがありましたが、正規表現だとそういうもんですか。
とにかくありがとうございました。
524デフォルトの名無しさん:2014/02/20(木) 16:47:40.86
>同じ処理書かせても細かいこと気にしすぎて遅くなる可能性がある。

典型的なダメSEの発想だな。少しはPG信じろよ。
525デフォルトの名無しさん:2014/02/20(木) 17:09:45.42
簡単に実装できる方法を取れるPGと
最初から速度を気にしてコーディングできるPG
果たしてどちらがコーディング速度上でバグ率が低いだろうか
526デフォルトの名無しさん:2014/02/20(木) 17:17:42.58
実装の仕方もわからないうちから速度ばっかり気にしてる初心者だろ問題なのは
527デフォルトの名無しさん:2014/02/20(木) 17:20:37.46
俺はすごい
528デフォルトの名無しさん:2014/02/20(木) 17:28:24.22
>>525
普通に後者だな。前者は典型的なプログラムできない素人の発想。
529デフォルトの名無しさん:2014/02/20(木) 17:51:25.33
有能な奴は基本的に簡潔で分かりやすいコードを優先するが、明らかに処理効率上問題になりそうなものだけは確実に避ける
ボトルネックになりそうな箇所も大体予想しているので、コードの9割を占めるパフォーマンスに全く影響しない場所に手間はかけない
530デフォルトの名無しさん:2014/02/20(木) 17:54:38.53
高速アルゴリズムなんてとっくに枯れて出尽くしてるのに、
実装の仕方が分らないとか簡単に実装できないとか発想がよく分らん。

というか今はネット検索してコピペでいける。
531デフォルトの名無しさん:2014/02/20(木) 18:02:54.55
>>529
正解

>>530
無能
532デフォルトの名無しさん:2014/02/20(木) 18:12:13.96
あーそんなのよりCBLASか何か使いましょう時間の無駄だからって言ったら怒られた記憶が蘇るー
533デフォルトの名無しさん:2014/02/20(木) 18:20:36.99
そりゃそうだろ
客が金出してくれる限りはいくらでもコストかけないとね
クソコードが増えれば増えるほど他人が保守できなくなって客を囲い込めるし
534デフォルトの名無しさん:2014/02/20(木) 19:27:17.77
>>529
ないない。有能な奴は雑魚の尻拭いばかりだよ。
535デフォルトの名無しさん:2014/02/20(木) 19:33:57.21
>>529
仕事したことないだろw ねーよW
536デフォルトの名無しさん:2014/02/20(木) 20:32:36.18
object[] objs = new object[] { "unko", "tinko", "mambo" };
string[] strs = objs as string[]; // null

なんで?
537デフォルトの名無しさん:2014/02/20(木) 20:36:09.86
string[] strs2 = new string[] { "unko", "tinko", "mambo" };
object[] objs2 = strs2 as object[]; // success

なんで?
538536:2014/02/20(木) 20:37:48.18
とても大事なことなので2回言いました
回答のほうよろしくお願い致します
539デフォルトの名無しさん:2014/02/20(木) 20:43:11.85
>>538
成りすまさないで下さい
つか同じことを2回じゃないし
540デフォルトの名無しさん:2014/02/20(木) 20:47:02.44
as object[]を外せばわかるよ
541デフォルトの名無しさん:2014/02/20(木) 20:48:59.88
>>540
ありがとうございます

なんとなくは分かるのですが、
仕様の観点から説明をお願いできませんでしょうか
542デフォルトの名無しさん:2014/02/20(木) 20:51:54.26
こちらに出来上がった資料がございます
http://www.microsoft.com/en-us/download/details.aspx?id=7029
543デフォルトの名無しさん:2014/02/20(木) 20:53:42.67
>>541
C#の仕様なんて考えたことないな。知ってるのはstringのスーパーセットってことくらい。
っていうか便利に使えればいいじゃんっていう思想の言語だから
コンパイラに怒られなきゃそれでいいんだよ

Webの世界のスクリプト言語だともっと適当で曖昧なオブジェクト指向だから、
あまり深く考えないほうがこれからは幸せになれる。型なんて人為的なもの
544デフォルトの名無しさん:2014/02/20(木) 20:59:51.00
>>541
object[]にできたらint突っ込む事も出来てしまう
おかしいでしょ
545デフォルトの名無しさん:2014/02/20(木) 21:02:13.08
あ、今のなし!
546デフォルトの名無しさん:2014/02/20(木) 21:11:53.02
継承元にはぶちこめる
派生先にはぶちこめない
547デフォルトの名無しさん:2014/02/20(木) 21:17:19.80
役に立たない回答ばっかですね
548デフォルトの名無しさん:2014/02/20(木) 21:23:21.98
object[] objs = new object[] { "unko", "tinko", "mambo" };
object[] objs2 = new object[] { "unko", "tinko", "manbo", 42 };
string[] strs = objs as string[]; // null
string[] strs2 = objs2 as string[]; // null
string[] strs3 = objs.Cast<string>().ToArray(); // success
string[] strs4 = objs2.Cast<string>().ToArray(); // throws InvalidCastException
549デフォルトの名無しさん:2014/02/20(木) 21:28:03.47
550デフォルトの名無しさん:2014/02/20(木) 22:27:13.84
object[] objs = new string[] { "unko", "tinko", "mambo" };
551デフォルトの名無しさん:2014/02/20(木) 22:50:07.73
Streamに書き込む時のバッファって4KBがよく使われてるけど、特別な理由とかある?(Stream.CopyToの実装とか)
単に省メモリ志向なだけ?
552デフォルトの名無しさん:2014/02/20(木) 23:07:40.31
補助記憶装置の一般的なブロックサイズがそれくらいだからじゃないの
553デフォルトの名無しさん:2014/02/20(木) 23:16:42.48
どう考えてもコシダメでしょ
554デフォルトの名無しさん:2014/02/21(金) 02:22:40.97
腰駄目><;
555デフォルトの名無しさん:2014/02/21(金) 05:55:05.07
つまんねーから帰って
556デフォルトの名無しさん:2014/02/21(金) 16:31:57.02
既定の名前空間って、どういう時に使うのでしょうか?
例えばクラスライブラリを作って、規定の名前空間をどんな名前にしていても、
そのクラスライブラリを参照すろ別プロジェクトでは、その名前は
出て来ないようなのですが。
557デフォルトの名無しさん:2014/02/21(金) 16:38:34.81
そのプロジェクトで新しいC#ファイル作ると自動的にファイル冒頭にnamespace ...が挿入される
リソースとか設定ファイルとかのマネージクラスもその名前空間下になる
558デフォルトの名無しさん:2014/02/21(金) 16:48:28.13
>>557
ありがとうございました。すっきりしました。
559デフォルトの名無しさん:2014/02/22(土) 13:37:25.15
てすと
560デフォルトの名無しさん:2014/02/22(土) 13:54:03.78
なんのですかやだー
561デフォルトの名無しさん:2014/02/22(土) 18:18:52.40
C#入門者です。入門書を読んで勉強してます。
プロパティについてよくわからない点があるので質問させてください。

1. サンプルなどで
public int A { get; set; }
みたいなのをよく見かけますが、これは、プロパティを使わずに
public int A;
と書くのとどう違うのでしょうか?もし同じなら、なぜわざわざプロパティを使って書くのでしょうか?

2. setメソッドは戻り値を返せないようですが、セットに成功したかどうかを知らせたい場合、通常どうするものなのでしょうか?
・プロパティを使わずに普通のメソッドを使う?
・例外を発生させる?
・それ以外にもっといい方法がある?

3. とある入門書に、System.Drawing.PointFクラスのIsEmptyプロパティというのが載っていて、
> x座標、y座標がともに0である場合にtrueを返します。
> public bool IsEmpty { get; } --- (*)
と説明されていました。
プロパティについての入門書の説明を読む限り、(*)のコードは、
private bool __isEmpty;
public bool IsEmpty { get { return this.__isEmpty; } }
と同様の動きをすると理解しています。
しかし、__isEmptyは内部的なもので、アクセスはできないと思うのですが、ライブラリはどうやって__isEmpty(に相当するもの)に値を設定するのでしょうか?
(*)が、
public bool IsEmpty { return x==0 && y==0; }
みたいな感じなら理解できるんですが。。。

以上、よろしくお願いいたしますです。
562デフォルトの名無しさん:2014/02/22(土) 18:22:12.36
すみません、最後 書き間違えました。
public bool IsEmpty { get { return x==0 && y==0; } }
です。
563デフォルトの名無しさん:2014/02/22(土) 18:39:08.88
>>561
プロパティはそのクラスを書いているプログラマの視点では「値を設定するメソッド」と
「値を取得するメソッドのセット(and/or)に過ぎない。

必ずしもそのプロパティーに対応する、_isEmptyみたいなフィールド(バッキングフィールド)
がいつも存在するわけじゃない。

だったらなぜプロパティーなんか必要なんだと思うかもしれないが、それはコード書いてるうちに
そのうち分かるようになるから初心者はそこは深く考える必要ない。
564デフォルトの名無しさん:2014/02/22(土) 18:42:22.60
プロパティなんて飾りです。偉い人にはそれが分らんのです。
565デフォルトの名無しさん:2014/02/22(土) 19:10:10.26
>>561
>なぜわざわざプロパティを使って書くのでしょうか?
プロパティの使い道としては、無効な値が設定された時に対処したり、イベントを発生させたりいろりろある。
ttp://ideone.com/mgZmEQ

最初は
public int A;
と書いていたが、やっぱりイベンをを発生させたいので、プロパティに変更しようとなった場合、
ライブラリを利用している側の再コンパイルが必要になってしまう。
public int A { get; set; }
なら、get setの中身を後から変えても再コンパイルは不要。
publicで公開しているものはとりあえずプロパティにしておくのが良い。
566デフォルトの名無しさん:2014/02/22(土) 19:13:30.54
プロパティは外からはフィールドに見えるのでsetは基本成功すべき
どうしてもなら例外
失敗することが多かったり時間がかかるならメソッドにする
567デフォルトの名無しさん:2014/02/22(土) 19:20:26.76
あと、
public bool IsEmpty { get; }
はプログラムにそう書いてあるということではない。
外からみるとgetterのみあるよ、ということを便宜上そう表記するということだ
実際のプログラムではお前がしたに書いたのと同じようなプログラムが書いてある
568デフォルトの名無しさん:2014/02/22(土) 19:56:18.11
setした直後にgetしたらsetした値と違う値か返ってくるような実装のプロパティはマジで死ね
569デフォルトの名無しさん:2014/02/22(土) 20:06:04.23
>>568
そんなの別におかしくもなんともない。
例えば依存関係プロパティでは「値の強制」という用語で概念化されてる。
570デフォルトの名無しさん:2014/02/22(土) 20:56:13.03
そういう時はドキュメントに書いてあるだろうし。
例えば範囲外の値を設定した場合の挙動について。
例外を出すか、それとも範囲内に自動でおさめるかは設計次第
571デフォルトの名無しさん:2014/02/22(土) 20:59:20.34
>>569
それは>>568の現象を起こさせるためじゃなくて
あるプロパティが変更されたときにそれに連動して別のプロパティを調整させるために使うもの
572561:2014/02/22(土) 21:15:48.81
なるほど、理解できました。
プロパティであってもなくても呼び出し側からは同じ構文で利用できるため、どちらでも同じような気がしていました。
実際には、呼び出す際の構文上は同じでも、メソッドを介しているかどうかの違いがあるということですね。

余談ですが、{ get; set; }でプロパティを生成できるというような仕組みを作るくらいなら、いっそのこと、
publicなフィールドはデフォルトで自動的にプロパティが生成されるようになってればいいのに、という気もしますが。
フィールド呼び出しのオーバーヘッドが増えるから、そんなことはしないんでしょうかね。

あと、setした直後にgetしたら違う値が返るというのは、私も違和感を感じてしまう(エラーを返してほしいと思ってしまう)
のですが、C# 的には普通のことなんですね。C# 使いへの道はまだまだ長そうです・・・。

親切に教えていただいてありがとうございました。
特に >>565さん、サンプルまで書いていただき、とても感謝しています。
573デフォルトの名無しさん:2014/02/22(土) 21:25:17.57
WPFで>>569が想像してる用途に近い概念は値の強制じゃなくて値の検証の方だな
強制は依存関係が複雑な場合に結果的に>>568が起こることもあるが、基本的にはあまり好ましくない動作
検証の方は失敗したらもちろんWPFが例外を投げる
574デフォルトの名無しさん:2014/02/22(土) 21:39:54.45
>>573
基本的に好ましくないとかそんなわけないでしょ。

WPFで言うなら、例えばintのプロパティでセッターに渡された値を1-100にクリップして
保持するような動作が許されないと、VMがそのプロパティの設定可能な値の範囲を把握する
必要性が生じるが、そんな依存が好ましいわけがない。
575デフォルトの名無しさん:2014/02/22(土) 21:45:30.19
WPFのアーキテクチャに関する話はWPFのスレでやってね
576デフォルトの名無しさん:2014/02/22(土) 21:46:11.53
WPF(XAML, XBAP, .NET4.5)GUIプログラミング Part17
http://toro.2ch.net/test/read.cgi/tech/1384165897/
577デフォルトの名無しさん:2014/02/22(土) 21:48:42.76
例えばあ、使用するフレームワークによってプログラミングパラダイムが変化したり
制約を受けたり、その他もろもろすることなんて別に珍しくないのね
C++とかJavaScriptみたいな魔言語じゃない割と小奇麗なC#でもそれはあるのね
だから視野を共有してない人間同士で喋っても仕方ないのね
578デフォルトの名無しさん:2014/02/22(土) 21:58:30.60
>>575
すぐこういう仕切りたがり(それしかできないからな)の馬鹿が出てくる。
WPFを例に挙げてるからって別にWPFに固有の問題を話してるわけじゃない
579デフォルトの名無しさん:2014/02/22(土) 22:00:59.73
全くだ
自分を棚に上げてえらそうにな
580デフォルトの名無しさん:2014/02/22(土) 22:03:19.23
まあ>>574みたいなケースは実装上のトリックみたいなもんで、手で設定されることを想定したプロパティとは分けて考えるべきだな
GUIが絡むと、検証結果のエラーを複数まとめるとかいろんな要件をプロパティに押し付けるから汚い不自然な実装になりがち
581デフォルトの名無しさん:2014/02/22(土) 22:03:31.35
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < ま~た始まった
|   ,;‐=‐ヽ   .:::::|    \_______
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\
582デフォルトの名無しさん:2014/02/22(土) 22:12:25.81
あれもう語らないんですか?
続けて続けて
583デフォルトの名無しさん:2014/02/22(土) 22:55:54.95
VB6.0をパースしてCodeDOMに変換するライブラリありませんか?
584デフォルトの名無しさん:2014/02/22(土) 23:03:45.71
イミフ
585デフォルトの名無しさん:2014/02/23(日) 16:15:59.81
WindowsFormsのコントロールをそのままデータのみWPFに置き換えて実装自体をWPFのコントロールにするライブラリありませんか?
たとえば
System.Windows.Forms.FlowLayoutPanelのプロパティーの状態がControls = { System.Windows.Forms.WebBrowser,System.Windows.Forms.ListView }
としたとき変換すると
System.Windows.Controls.Gridのプロパティーの状態がChildren = { System.Windows.Controls.WebBrowser,System.Windows.Controls.ListView }
となるようなものです
586デフォルトの名無しさん:2014/02/23(日) 16:44:08.33
ライブラリ使わないとできないの?
587デフォルトの名無しさん:2014/02/23(日) 17:12:04.81
C++と比較しながらC#を解説してる本ってありますかね
588デフォルトの名無しさん:2014/02/23(日) 17:30:22.03
比較にならねえだろ
589デフォルトの名無しさん:2014/02/23(日) 17:39:01.08
MSDNじゃ駄目なの?
590デフォルトの名無しさん:2014/02/23(日) 17:51:17.57
>>589
本でまとまったのがないかなと
591デフォルトの名無しさん:2014/02/23(日) 18:33:44.11
似てるようで考え方が結構違うよな。
俺の経験だとC++脳は理解の邪魔になるから、C++の事は忘れた方がいいと思う。
592デフォルトの名無しさん:2014/02/23(日) 18:35:21.97
>>591
COBORとかRPGとかマイナー言語の入ってる俺の立場って…
593デフォルトの名無しさん:2014/02/23(日) 18:44:50.52
>>587
すぐ上でお世話になった者です。

入門書を何冊か買って勉強していますが、私が買った中では、
ttp://www.amazon.co.jp/dp/4774150169
がそのようなタイプの本ですよ。
594デフォルトの名無しさん:2014/02/23(日) 19:25:00.38
>>593
ありがとうございます それ買います
595デフォルトの名無しさん:2014/02/23(日) 20:19:24.61
逆にC#>C++で覚える本は見たことないな
596デフォルトの名無しさん:2014/02/23(日) 20:27:43.57
Cで->使ってる =>もラムダ式で使ってる
次に使うだろう記号ってなんだろう?~>>
597デフォルトの名無しさん:2014/02/23(日) 21:03:59.60
$
#
598デフォルトの名無しさん:2014/02/23(日) 21:33:38.47
演算子嫌い
コードの美観を損なう
プレーンテキストのように読める言語が最高だよ
599デフォルトの名無しさん:2014/02/23(日) 21:36:18.97
そういや、日本語でコーディングができる言語があったな
なんだっけ?
600デフォルトの名無しさん:2014/02/23(日) 21:36:25.46
COBOL おすすめ
601デフォルトの名無しさん:2014/02/23(日) 21:37:44.06
属性は動的に付加出来ないのですか?
602デフォルトの名無しさん:2014/02/23(日) 23:11:55.05
>>592
使っている言語すら正しく書けない人は
アセンブラからやり直すべきかと
603デフォルトの名無しさん:2014/02/24(月) 00:10:57.95
Debug.Printがあるのに
どうして
Console.Printは無いのでしょうか?
604デフォルトの名無しさん:2014/02/24(月) 00:32:41.84
プリン体OFF
605デフォルトの名無しさん:2014/02/24(月) 00:47:33.82
では、どうして、
Debug.Write
の引数は、
Debug.PrintやConsole.WriteLineと同じではないのでしょうか?
606デフォルトの名無しさん:2014/02/24(月) 01:07:46.15
Debug.WriteLineには二つ目の引数としてカテゴリを受け取るオーバロードがあるから、
プレースホルダを一つだけ指定した書式を使おうとすると、カテゴリを受け取る方が優先されてしまって正しく動作しない
そこで確実に書式設定の方を呼び出すためにPrintを使って区別する
607デフォルトの名無しさん:2014/02/24(月) 08:52:59.12
VB6のDebug.Printとの互換じゃないかな
Trace.Printも無いよね
608デフォルトの名無しさん:2014/02/24(月) 10:13:56.89
>>606,607
イミディエイトウインドウに改行なしで出力する方法はないのでしょうか?
書式指定して。
609デフォルトの名無しさん:2014/02/24(月) 10:31:42.74
String.Format使えばいいんでないの?
610デフォルトの名無しさん:2014/02/24(月) 11:07:29.87
>>609
ありがとうございました。
うまく行きました。
611デフォルトの名無しさん:2014/02/24(月) 23:36:13.03
4.0から3.5にデグレしたいのですが4.0の新機能を使ってなければリビルドするだけで良いのですか?
612デフォルトの名無しさん:2014/02/25(火) 00:20:50.01
Winフォームアプリケーションで
テキストボックス内の値をラベルに表示させたいんですけど
int a= int::Parse(textBox1->Text);
と記述すると「1 個の引数を伴うオーバーロードされた関数はありません。」とでます。
どうすれば記述すればいいでしょうか...
他のテキストボックスの値も足せればint型じゃなくてもいいです
613デフォルトの名無しさん:2014/02/25(火) 00:30:28.63
すいませんスレ間違えました...
614デフォルトの名無しさん:2014/02/26(水) 07:12:20.98
すみません。教えてください。
System.IO.File.Copyでファイルを共有フォルダにコピーする場合
その共有フォルダにアクセスするユーザーはWindowsのログインユーザーなんでしょうか?
それとも共有フォルダに接続するときに認証したユーザーなんでしょうか?
615デフォルトの名無しさん:2014/02/26(水) 07:33:13.30
SMBの仕様の話で、認証方式次第
あなたの挙げた例はどちらもあり得る
616デフォルトの名無しさん:2014/02/26(水) 07:41:56.01
>>615
ありがとうございます。どちらもありえるんですか。
てっきり共有フォルダの認証をしたユーザーだと思ってました。
すべてなぞは解けた
617デフォルトの名無しさん:2014/02/26(水) 15:53:27.58
普通に考えて、そのプログラムを実行しているユーザじゃないのか?
618デフォルトの名無しさん:2014/02/27(木) 18:16:34.04
varって長い名前のクラスをNewする時や、Usingで使うと見た目がスッキリしますが、
ドンドン使っても問題ないでしょうか?
619デフォルトの名無しさん:2014/02/27(木) 18:30:00.98
問題ない
620デフォルトの名無しさん:2014/02/27(木) 19:15:13.32
タブでインデントすると勝手にスペース数個分に変換されるのをやめたいです
621デフォルトの名無しさん:2014/02/27(木) 19:19:33.45
その思考なら人間辞めた方がいい
622デフォルトの名無しさん:2014/02/27(木) 19:29:22.52
インデントをタブにするか空白文字にするかは設定で変えられるけど
623デフォルトの名無しさん:2014/02/27(木) 20:11:04.89
行と行の間の空行を削除すると、
インデントが崩れるのを防ぐことは出来ます?
624デフォルトの名無しさん:2014/02/27(木) 20:23:28.40
>>622
すみません、みつかりません><
625デフォルトの名無しさん:2014/02/27(木) 20:31:43.43
ツール>オプション>テキストエディタ>C#>タブ>タブの保持
626デフォルトの名無しさん:2014/02/27(木) 21:01:03.22
>>625
・・・>C#

までは辿れるのですが、タブ、タブの保持が見つかりません;;
visual C# 2010 expressです
627デフォルトの名無しさん:2014/02/27(木) 21:18:02.58
こんな設定自力で見つけられないようなタイプはプログラミング向いてないよ。
っていうか21世紀にもなってホワイトスペースじゃないタブなんか使う人いるんだ。
628デフォルトの名無しさん:2014/02/27(木) 21:25:54.10
オプションダイアログの左下かどっかに高度な設定とかなんとかいうチェックボックスない?
629デフォルトの名無しさん:2014/02/27(木) 21:32:51.93
C#のツリーを展開したとこに「タブ」がぶら下がってないのか?
2012は有るんだが。
630デフォルトの名無しさん:2014/02/27(木) 21:34:29.22
>>627
Eclipseは初期設定がタブインデント
タブ幅でゴタゴタいう人はオープンソースの世界を知らない人
631デフォルトの名無しさん:2014/02/27(木) 21:37:39.94
>>629
C#
└書式設定
    全般
    インデント
    改行
    行間
    折り返し
  IntelliSense
  詳細

>>628
上級者設定にしてます!
632デフォルトの名無しさん:2014/02/27(木) 21:38:34.97
>>630
嘘を言うなよ馬鹿。
Eclipse使ってるが、あっちも初期値はホワイトスペース。
633デフォルトの名無しさん:2014/02/27(木) 21:40:06.75
すげーどーでもいい
634デフォルトの名無しさん:2014/02/27(木) 21:46:02.52
635デフォルトの名無しさん:2014/02/27(木) 21:54:38.64
ホワイトスペースってたしかタブも含んでたはずだが
636デフォルトの名無しさん:2014/02/27(木) 22:51:17.95
コンストラクタの引数が多くなってしまう場合は構造体とかでまとめてもいいんですか?
637デフォルトの名無しさん:2014/02/27(木) 22:55:13.81
もろちん
638デフォルトの名無しさん:2014/02/27(木) 23:01:03.11
builderクラスを使え
639デフォルトの名無しさん:2014/02/27(木) 23:14:20.81
頻繁の継承するクラスなもんで
640デフォルトの名無しさん:2014/02/27(木) 23:18:59.67
引数が多いから構造体にまとめるというよりも、
ちゃんと設計して、引数の中で関連性のつよいもの同士で
クラスにまとめるとかした方がいいな。
641 【Dascii2d1336490008521541】 :2014/02/27(木) 23:32:39.23
>>640
構造体ではダメなんですか?
642デフォルトの名無しさん:2014/02/27(木) 23:45:08.33
mutableでよければオブジェクト初期化子を使ったほうがスマートになるケースも多いな
643デフォルトの名無しさん:2014/02/27(木) 23:50:32.93
例えば、構造体にしたとして、値の設定はやっぱりメンバー変数1つ1つに
値を入れていくんだろ?
結局引数一式を入れる構造体を作るだけ、それで中継するだけなことをするんだったら、
まだコンストラクタの引数が多い方が直接的でマシ。

それに、複数のコンストラクタで違う引数の組合せなんてことになったら、
それぞれ専用の構造体を作るのか?

中央に目的のクラス1つ、それに対して"値"を設定する、という考え方じゃなくて、
引数もクラスとして、クラス同士の関係というのがオブジェクト指向だからね。
644デフォルトの名無しさん:2014/02/27(木) 23:58:04.54
>>643
ProcessStartInfoぐらい沢山あったらどうする
645デフォルトの名無しさん:2014/02/28(金) 00:07:44.21
ProcessStartInfoのようにすればいいだけだろw
646デフォルトの名無しさん:2014/02/28(金) 00:17:05.14
一つ疑ってるのがw
そのクラス、本当は幾つものクラスで分かれているべきものを
1つにマージしちゃってるとかないよな?というところ。
それだと、それぞれの引数になるものを一緒くたにコンストラクタに渡さないといけないからな。

なので、本当はそのクラスの設計の見直しもしたらいい気がするが、
とりあえず質問に対しては、引数にもまとまりが有るはずだから、
その単位で"オブジェクト指向"したら?という回答。
647デフォルトの名無しさん:2014/02/28(金) 05:32:48.37
mciでmidi再生中にFormに設置したスライダでボリュームを変えたいのですがうまくいきません
TrackBarのEvent
648デフォルトの名無しさん:2014/02/28(金) 05:35:03.53
mciでmidi再生中にFormに設置したスライダでボリュームを変えたいのですがうまくいきません
TrackBarのEventHandlerに

string cmd = "setaudio " + midiFileName + " volume to " + trackBar.Value;
mciSendString(cmd, null, 0, IntPtr.Zero);

のようにしてます
649デフォルトの名無しさん:2014/02/28(金) 08:39:17.39
コンストラクタの引数無し、全部プロパティって手もあり
初期化子使えるしね
650デフォルトの名無しさん:2014/02/28(金) 08:52:22.88
>>648
mciSendStringの返値でエラーが出てないかどんなエラーか確認する
651デフォルトの名無しさん:2014/02/28(金) 11:49:31.47
ここで質問していいものか分からないですが

某参考書で三角形クラスの中で二等辺三角形用のコンストラクタが,ざっくり書き直すと以下のように定義されています

class Triangle{
double width, height;
//二等辺三角形用のコンストラクタ
public Triangle(double x)
{
width = height = x;
}
//面積
public double Area(){
return width * height / 2;
}
}

なぜこれが二等辺三角形用のコンストラクタになるのか分かりません
width heightは面積のメソッドから見ても底辺と高さだと思うのですが
二等辺三角形だからといって底辺と高さが同じにはならないと思うのですが
よろしくお願いします
652デフォルトの名無しさん:2014/02/28(金) 11:55:01.68
× 二等辺三角形 = 底辺と高さが同じ
○ 底辺と高さが同じ = 二等辺三角形
だから問題ない
653デフォルトの名無しさん:2014/02/28(金) 11:55:59.77
他にどんなメンバーがあるかわからないが考えられることは、
width, heightの両方を指定するコンストラクタも別にある。
生成後必要に応じてwidth, heightを設定しなおす前提になっている。
654デフォルトの名無しさん:2014/02/28(金) 12:04:46.75
>>652
小学校からやり直し
655デフォルトの名無しさん:2014/02/28(金) 12:29:44.95
スタティックなクラスのスタティックなpublic変数やメソッドを
マルチスレッドプログラミングでその変数に同時に
書き込んだり、同時にメソッドを実行しても問題ありませんか?
656デフォルトの名無しさん:2014/02/28(金) 13:02:32.86
static関数は一般的にスレッドセーフだけど、
staticな変数を抱えてたらスレッドセーフにはならない
657デフォルトの名無しさん:2014/02/28(金) 13:08:29.19
>>651
直角二等辺三角形専用のコンストラクタだから、とか?
658デフォルトの名無しさん:2014/02/28(金) 13:10:34.44
  /|
/  | h
 ̄ ̄
 w
659デフォルトの名無しさん:2014/02/28(金) 13:12:21.67
>>656
ありがとうございました。
660デフォルトの名無しさん:2014/02/28(金) 14:28:29.69
プロパティの変更通知を実装する
http://msdn.microsoft.com/ja-jp/library/ms743695(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1
を勉強中なのですが、ここのC#のサンプルコードに適当にMain関数を付けてPersonクラスのPersonNameをsetで変更
すると、OnPropertyChanged()が呼ばれる仕組みになっているのは分かるのですが、一つ分からないことがあります。
それは、
public class Person : INotifyPropertyChanged
の定義で、: INotifyPropertyChanged の部分が無くても同じように動くのですが、この: INotifyPropertyChangedは
何のために必要なのでしょうか?
よろしくお願いします。
661デフォルトの名無しさん:2014/02/28(金) 14:44:20.63
Form作ってテキストボックスとボタン貼って
フィールドにPerson m_person = new Person();とか置いて
Loadイベントで
this.TextBox1.DataBindings.Add("Text", m_person, "PersonName");
ってやって、button1_Clickイベントで
m_person.PersonName = DateTime.Now.ToString("HH:mm:ss");
とかやれば違いが分かるよ

ライブラリ側はPersonなんてクラス知らないし
そのクラスがPropertyChangedなんてイベント持ってるかどうかも知らない
ライブラリ側はINotifyPropertyChangedは知ってるので
どんなオブジェクトがバインドされているにせよ
それがINotifyPropertyChangedを実装しているならそれを使って変更通知を受け取れる
662651:2014/02/28(金) 15:49:28.75
>>653
他のメンバ変数には三角形の種類を表すstring Styleがあります
そしてご指摘どおりwidth,height両方指定のコンストラクタもありますね
でもそれだとそもそも二等辺三角形用(と書いてある)コンストラクタの存在意義が分からなくなってしまって

>>657
確かに直角二等辺三角形を>>658の形で考えればそうですね
この参考書の例では三角形の種類を表すStyleに
直角三角形をあらわす"right" と二等辺三角形を現す"isosceles"があるのですが
>>651の二等辺三角形用コンストラクタ内部でStyle = "isocceles"って代入してたので
直角二等辺三角形ではないと思い込んでいました


お答えくださった皆さんありがとうございました



お答えくださった皆さんありがとうございました
663651:2014/02/28(金) 15:50:56.38
消し忘れて同じ文を二行書いてしまいました
もうしわけありません
664デフォルトの名無しさん:2014/02/28(金) 16:13:29.16
大事なことなので
665デフォルトの名無しさん:2014/02/28(金) 17:17:18.94
mciSendStringによる音声再生が時間のかかる処理のために、Formの描画が少し止まります
そこで、BackgroundWorkerを用意し、別スレッドで

mciSendString("play my_sound from " + position + " notify", null, 0, form1.Handle);

を実行するようにしました
すると、第4引数のform1.HandleのところでSystem.InvalidOperationExceptionがでてしまいます
おそらく第4引数が、WorkerのスレッドからFormのスレッドにアクセスしているから?
解決策ありませんかね・・・
666デフォルトの名無しさん:2014/02/28(金) 17:24:28.43
HandleをLoadイベント辺りでフィールドに確保しておいてそれを使えばいいだろ
FormBorderStyle変更したりしたらHandle再作成されることがあるけど
ところでmciの操作はopenしたスレッドからしか駄目だそうだぞ
667デフォルトの名無しさん:2014/02/28(金) 17:32:21.68
>>661
詳しい解説大変ありがとうございました。アドバイスに従ってFormを作って
動作を確認しました。よく理解できました。
668デフォルトの名無しさん:2014/02/28(金) 17:45:58.18
>>666
>ところでmciの操作はopenしたスレッドからしか駄目だそうだぞ
ナント・・・驚き
ありがとうございました
669デフォルトの名無しさん:2014/02/28(金) 17:48:16.42
すみません、ちなみに
>ところでmciの操作はopenしたスレッドからしか駄目だそうだぞ
この根拠を知りたいので情報もとを教えてください!
670デフォルトの名無しさん:2014/02/28(金) 20:08:40.76
byte[]と暗黙の相互変換を実装した自作の型Hogeがあるんですけど
List<byte[]>を引数に持ってるメソッドをList<Hoge>で呼べるようにするためにはどうしたらいいでしょうか
671デフォルトの名無しさん:2014/02/28(金) 20:16:14.51
どうしようもないね
672デフォルトの名無しさん:2014/02/28(金) 20:57:43.60
>>661,667
に関連して追加で質問なのですが、
StreamWriterでMemoryStreamにデータが書き込まれたら、それをイベント
にしてハンドラ関数を呼び出して、その関数内でMemoryStreamを呼び出すような
動作をさせることは可能でしょうか?そういうイベントを検出する方法が
あるのかどうか調べてみたのですが、分かりませんでした。
673デフォルトの名無しさん:2014/02/28(金) 22:12:33.23
>>672
MemoryStreamをラップしたクラスを作る
674デフォルトの名無しさん:2014/02/28(金) 22:23:49.26
継承じゃなく?
675デフォルトの名無しさん:2014/03/01(土) 00:19:41.44
Stream継承して、内部でMemoryStream持てばいいよ

ちょっと違うけど、こういうのとか
ttp://stackoverflow.com/a/8414492
676デフォルトの名無しさん:2014/03/01(土) 01:16:54.39
xmlコメントってアセンブリに埋め込まれないのか?
プログラムからヘルプ情報を参照したいんだがそういう用途には属性使えってこと?
677デフォルトの名無しさん:2014/03/01(土) 01:17:37.79
>>670
リフレクション
678デフォルトの名無しさん:2014/03/01(土) 13:38:03.87
>>676
ビルド時にXML出力できるんで、識別子からT:System.ObjectとかそんなIDを求めればプログラム的に読み込める
679デフォルトの名無しさん:2014/03/01(土) 15:50:43.08
>>673,674,675
StreamWriterを継承して内部でMemoryStream持つ方法でどうにか出来ました。
ありがとうございました。
680デフォルトの名無しさん:2014/03/01(土) 17:11:13.32
コメントはどれが見やすいでしょうか?
//コメント
// コメント(先頭に半角スペース)
// コメント(先頭に全角スペース)
//   コメント(先頭にたくさんスペース)
681デフォルトの名無しさん:2014/03/01(土) 18:12:08.80
君は自分が好きな食い物を他人に決めてもらうのか
682デフォルトの名無しさん:2014/03/01(土) 18:25:59.14
使用人口なら上から2番目が多いんじゃないかな~と思う
3番目は微粒子レベルだろう
683デフォルトの名無しさん:2014/03/01(土) 21:33:42.56
>>680
コメントなんか書くな
適切に関数化けしてdescription系の属性をつければそれでおしまい
無駄なコメントの量に比例してプログラムがスパゲティになるという事実はもう誰もが知るところだ
684デフォルトの名無しさん:2014/03/01(土) 22:00:20.32
修正コメントとかいうクソ規約の悪口はやめろ
685デフォルトの名無しさん:2014/03/01(土) 22:05:29.63
大抵のコメントは何も知らないバカが強要してくるんだよな
そういう奴に限って立場強いから嫌になるね
686デフォルトの名無しさん:2014/03/01(土) 22:28:14.95
コメントを書かない奴は仕様書と異なる動作をしても平然としてるのが多い
ドキュメントの重要性を理解してないカスか
ソースがすべてを語ってくれる(キリッ
とか言って無駄な工数使うバカ
687デフォルトの名無しさん:2014/03/01(土) 22:30:54.00
本物のバカはコメント書くやつな
修正箇所を数倍に増やすコスト大増量野郎
ほんまいい加減にして欲しいわ
しかもあいつらバカだから仕様書かコードと同じことしか書かないんだよな
コメントの意味全くなし
688デフォルトの名無しさん:2014/03/01(土) 22:32:34.19
ゴミに匹敵するコメントをダラダラ書く暇があるならテストを書く
これが正しいプログラマの在り方な
689デフォルトの名無しさん:2014/03/01(土) 22:48:56.54
「正しい」とかヘドが出るわ
誇大妄想の類いにしか見えん
690デフォルトの名無しさん:2014/03/01(土) 22:59:07.80
>>689
君はくだらないコメントを量産しすることに短い人生を費やせばいいんじゃないか?
俺はコードを書くよ
691デフォルトの名無しさん:2014/03/01(土) 23:00:29.08
>>690
そうだ
「お前は」コードを書いてりゃいい
692デフォルトの名無しさん:2014/03/01(土) 23:02:55.42
ソースコードはてめえの落書き帳じゃなくて客に売る商品なんだから梱包するのは当然
693デフォルトの名無しさん:2014/03/01(土) 23:03:57.68
客「梱包材うざっ。なにこれ無駄過ぎる」
694デフォルトの名無しさん:2014/03/01(土) 23:04:45.73
>>691
そうだなコメントはお前に任せた
695デフォルトの名無しさん:2014/03/01(土) 23:08:23.15
バカばっか
696デフォルトの名無しさん:2014/03/01(土) 23:09:58.43
賢かったら日本でIT業界になんか入らない
697デフォルトの名無しさん:2014/03/01(土) 23:12:01.56
LeftToRightに設定したFlowLayoutPanel1に画像とラベルを追加して、SetChildIndexで先頭に持って行きたいのですが、

FlowLayoutPanel1.Controls.Add(this.PictureBox[n]);
FlowLayoutPanel1.Controls.Add(this.Label[n]);
FlowLayoutPanel1.Controls.SetChildIndex(this.Label[n], 0);
FlowLayoutPanel1.Controls.SetChildIndex(this.PictureBox[n], 0);

とすると一番最後の FlowLayoutPanel1.Controls.SetChildIndex(this.PictureBox[n], 0); の部分で
「'子'はこの親の子コントロールではありません。」とのエラーがでます。
Labelの方のSetChildIndexではエラーは出ないのですが、どういうことなのでしょうか。
698デフォルトの名無しさん:2014/03/01(土) 23:17:57.67
原因がエラーメッセージに書いてあるね
699デフォルトの名無しさん:2014/03/01(土) 23:56:10.32
>>698
FlowLayoutPanel1.Controls.Add(this.PictureBox[n]); の時点で
PictureBox[n] はFlowLayoutPanelの子コントロールになっているのではない,、ということでしょうか?
700デフォルトの名無しさん:2014/03/02(日) 02:00:26.19
イベントハンドラでForm(ウィンドウ)を別のFormに切り替えるにはどうすればいいですか?

ボタンのクリックイベントでやろうとしてます。
新しくウィンドウを増やさず中身だけ変わる感じのやつです。
701>>700:2014/03/02(日) 02:03:29.19
Visual C♯2012使ってます
702デフォルトの名無しさん:2014/03/02(日) 09:43:32.90
目に見えないサイズの小さなタブを切り替えたらいいと思うよ
703デフォルトの名無しさん:2014/03/02(日) 10:05:06.81
目に見えない小さなタブは絶対にクリックできないのでしょうか?
704デフォルトの名無しさん:2014/03/02(日) 10:16:50.93
単純にVisibleでも使っとけ
705>>700:2014/03/02(日) 10:18:11.94
>>702
どういう事ですか?
706デフォルトの名無しさん:2014/03/02(日) 10:37:23.20
Form = ウィンドウなんだから、
Form切り替えるというのはウィンドウ切り替えることになると思うよ
なのでウィンドウの中身を切り替えるなんてのは無理だと思う
最初からウィンドウの中身を切り替えるつもりで作るしか
パネル2枚の上に別々の中身構築して、
パネルのVisibleでどっちが見えるか制御するとかね
707デフォルトの名無しさん:2014/03/02(日) 10:41:19.95
そういううざいUIは止めようよ。
一般的なモーダルダイアログかウィザード形式にしようよ。
708デフォルトの名無しさん:2014/03/02(日) 12:17:48.10
Form.Controlsに新しく作ったFormをAddしてみ
普通に使えるから
意外と知られてないよね

この方法の筋がいいかどうかは別だ
お勧めは全くできない
709デフォルトの名無しさん:2014/03/02(日) 12:30:38.10
ごめん、もう聞きませんから、一つだけ教えて下さい。

delphiのrecord型は、C#じゃ、どう書くの?
710デフォルトの名無しさん:2014/03/02(日) 12:33:56.22
structかな
Delphiはよう知りませんが
711デフォルトの名無しさん:2014/03/02(日) 13:32:32.55
FormA_ボタン_Click() {
Form b = new FormB();
b.Show();
this.Dispose();}

FormAはFormBがDisposeされるまで残ってしまうんでしょうか?
712デフォルトの名無しさん:2014/03/02(日) 13:34:08.37
>>709
クラス作れよ
713デフォルトの名無しさん:2014/03/02(日) 13:51:03.05
>>711
Showは呼び出し元をロックしないからそんなことはない
714デフォルトの名無しさん:2014/03/02(日) 13:52:34.53
>>713
安心しました
ありがとうございました
715デフォルトの名無しさん:2014/03/02(日) 23:38:51.81
残るってどういう意味で言ってるんだろ
DisposeしてもGCされるまでは残ってると言ってみる
716デフォルトの名無しさん:2014/03/03(月) 01:32:32.33
DisposeでGCの対象になれば良いのです
717709:2014/03/03(月) 06:26:55.33
>>710
あぁ、どうやらこれらしい。ありがとう。
718デフォルトの名無しさん:2014/03/03(月) 08:07:22.48
>>716
ならんよw
719デフォルトの名無しさん:2014/03/03(月) 08:35:38.26
意味も分からずDisposeしてる人間のために解説を紹介してくれよ
720デフォルトの名無しさん:2014/03/03(月) 08:38:11.66
usingしとけば間違いないよ
721デフォルトの名無しさん:2014/03/03(月) 08:48:30.77
>>718
kwsk!
722デフォルトの名無しさん:2014/03/03(月) 09:24:53.84
>>721
Disposeはアンマネージリソースの解放で手動
GCはマネージリソースの解放で自動
スコープを抜けたりして、どこからも参照されていないゴミが対象になる
723デフォルトの名無しさん:2014/03/03(月) 10:38:52.99
refでマークされた引数って、メソッド内で変更した瞬間に変更されますか?
それともメソッドから帰るときに変更されますか?

void Hoge( ref object o )
{
 ...
 o = hoyo;
 ...
 // メソッドから帰るまえに、例えば他スレッドがoに渡された変数を読む場合、その値はどっち?
 ...
}
724デフォルトの名無しさん:2014/03/03(月) 10:45:47.35
代入の位置とか最適化で移動されるから、どの段階とか特定不可能だと思うが
725デフォルトの名無しさん:2014/03/03(月) 11:44:25.49
>>722
やっぱり>>711の場合FormAはFormBをDisposeしない限り残り続けるって事かい?
726デフォルトの名無しさん:2014/03/03(月) 12:01:28.10
FormBは全く無関係。
FormAはDispose時点でハンドルとかを破棄する。
FormAとそのメンバが持ってるメモリは誰も参照しなくなったらGCがそのうち片付ける。
727デフォルトの名無しさん:2014/03/03(月) 18:08:04.75
__makeref, __reftype, __refvalue, __arglistってなんですか?
728デフォルトの名無しさん:2014/03/03(月) 19:02:28.81
C#の通常の手段で作成できないILの命令を作ってる
普通はつかわない
729デフォルトの名無しさん:2014/03/03(月) 20:01:14.46
ファイル読む場合、
using (FileStream fs = new FileStream("File.txt",FileMode.Open ))
{
using (TextReader sr = new StreamReader(fs))
{
}
}

using (TextReader sr = new StreamReader("File.txt"))
{
}
で、どっち使うかは好き好きですか?
730デフォルトの名無しさん:2014/03/03(月) 20:04:32.80
FileStream使わないと共有みたいなオプション渡せないでしょ
後は好き好き
731デフォルトの名無しさん:2014/03/03(月) 20:11:21.12
>>730
ありがとうございます。
もう一つ教えてください。Usingを二回使う前者の方法を使うとして、
ファイルを読みながら別のファイルに書き出す場合、書き出す処理でも
Usingが二回出てきて、合計4重のUsingになると思いますが、
そういうものでしょうか?
もう少しシンプルに書けないでしょうか?
732デフォルトの名無しさん:2014/03/03(月) 20:30:06.07
733デフォルトの名無しさん:2014/03/03(月) 20:30:48.68
極論だが、usingを使わない
734デフォルトの名無しさん:2014/03/03(月) 20:33:57.67
ファイルの場合握りっぱなしになるのでそれはないな
735デフォルトの名無しさん:2014/03/03(月) 21:21:11.44
using (var ofs = new FileStream(略))
using (var sr = new StreamReader(ofs))
using (var ifs = new FileStream(略))
using (var sw = new StreamWriter(ifs))
{
}
理屈やifやwhileの{}を省略するのと同じだが、usingに限ってはこう書くのをMSが推奨している
だからVSで整形してもインデントが深くならない
736デフォルトの名無しさん:2014/03/03(月) 23:54:17.73
みなさんアドバイスありがとうございました。
大変参考になりました。
732さんの try/finally 方式と
735さんの{}を省略する方式を組み合わせて、やってみたいと思います。
737デフォルトの名無しさん:2014/03/04(火) 00:16:49.16
Webbrowserで例えば、

<div class="xxx">
<a>
・・・
</a>
</div>
・・・
<div class="yyy">
<a>
・・・
</a>
</div>
・・・
<div class="zzz">
<a>
・・・
</a>
</div>

上記のようなhtmlがあった場合の、
div class="yyy"の子要素だけ絞り込むは方法はありますでしょうか?
div class="yyy"で絞り込んだHtmlElementとかって作れるんでしょうか?
738デフォルトの名無しさん:2014/03/04(火) 00:31:53.50
普通にGetElementsByTagNameとかでdiv探してその中からclassName属性が一致するの探すだけじゃん?
739sage:2014/03/04(火) 00:56:59.05
回答ありがとうございます。


HtmlElementCollection links = webBrowser1.Document.GetElementsByTagName("div");
foreach (HtmlElement el in links)
{
if (el.GetAttribute("className") == "yyy")
{
ここまで絞った状態でさらにa属性を絞りたい。
}
}
上記って可能でしょうか?
740デフォルトの名無しさん:2014/03/04(火) 01:25:19.60
というのも、テスト用のHTML書くのなんてめんどうなので・・・
741デフォルトの名無しさん:2014/03/04(火) 03:30:46.05
var sr = new StreamReader(new FileStream(略))
ストリーム系はこういうふうに書けるように、
sr.Close()でベースのストリームも連鎖的に閉じるようになってるけど、
MSDNに記述がないんだよな
742デフォルトの名無しさん:2014/03/04(火) 05:21:56.28
>>741
Closeが連鎖するんじゃなくて、正確にはDisposeな
http://msdn.microsoft.com/ja-jp/library/yhfzs7at(v=vs.100).aspx
>StreamReader.Dispose が呼び出されると、StreamReader オブジェクトは、提供される Stream オブジェクトに対して Dispose を呼び出します。
そしてCloseとDisposeは実質同じ
http://msdn.microsoft.com/ja-jp/library/system.io.streamreader.close(v=vs.100).aspx
>この Close の実装は、true 値を渡す Dispose メソッドを呼び出します。
MSDNにはこのように書いてありましたが
743デフォルトの名無しさん:2014/03/04(火) 17:26:29.92
TextBoxをカスタマイズして、
横方向にしかできなかったTextAlignプロパティを
縦方向にも指定できるようにしました。
(ContentAlignmentのように。)
テキストの表示はうまく出来るようになったのですが、
フォーカスを受け取って入力する状態になった時も
縦位置をCenterとかBottomの位置のままで入力できないものでしょうか?
いまは常にTopの位置でしか入力できません。
(入力を完了してフォーカスを失うと、
意図したとおりの位置にテキストは表示されます。)

どなたか詳しい方、よろしくお願いします。
744デフォルトの名無しさん:2014/03/04(火) 19:18:10.69
>>743
TextBoxの編集機能を利用するのは無理でしょ。
そんな使われ方は想定されてないんだから。

AnchorをLeft+RightにしたTextBoxをPanelの中に置いてPanelをダミーの余白と
枠として利用することで同じことができるんじゃない?

それ以前にそんな糞UI使う前に糞だと分からないセンスの悪さはどうなの。
745デフォルトの名無しさん:2014/03/04(火) 21:24:23.12
センスとか言い出すなよハゲが
ふらっとスレだろうが
746デフォルトの名無しさん:2014/03/04(火) 22:33:49.79
"www-hoge-fuga-foo.com/bar.php"

ここから www hoge fuga .phpを全て削除したいのですが
正規表現では一発でできないのでしょうか。


Regrex("www|hoge|fuga|.php").replace(obj, "")だと、どれか一つしか削除されませんでした・・・
747デフォルトの名無しさん:2014/03/04(火) 22:40:47.71
どこに正規表現が必要なのか全くわからねえ
質問は的確に過不足なくせよ
748デフォルトの名無しさん:2014/03/04(火) 22:48:44.90
.NETでメソッド一発で複数の文字列を消すには正規表現以外に方法があるのでしょうか?
749デフォルトの名無しさん:2014/03/04(火) 22:59:47.66
750デフォルトの名無しさん:2014/03/04(火) 23:00:35.67
> Regrex("www|hoge|fuga|.php").replace(obj, "")だと、どれか一つしか削除されませんでした・・・
識別子がいろいろおかしいけどそれは目をつぶるとして
全部消えるよ?
751デフォルトの名無しさん:2014/03/04(火) 23:49:55.04
【下落】C#の下落が続く - プログラミング言語人気 2スレ
http://kohada.2ch.net/test/read.cgi/pcnews/1358867172/
752デフォルトの名無しさん:2014/03/05(水) 00:26:29.28
いつのスレだよ
753デフォルトの名無しさん:2014/03/05(水) 23:50:32.49
webBrowser.DocumentTextでhtmlを取得すると、
空白が改行になるんですが対策ありますか?

<span>ほげ hoge</span>

<span>ほげ
hoge</span>
754デフォルトの名無しさん:2014/03/06(木) 00:50:12.39
この質問は、活躍中のチエリアンに回答をリクエストしています。

(ほかの方からの回答を制限するものではありません)
755デフォルトの名無しさん:2014/03/06(木) 00:50:59.47
ふ~ん
756デフォルトの名無しさん:2014/03/06(木) 00:54:13.35
Text.Encoding.GetEncoding(Webbrowser.Document.Encoding)
はUTF?Shift-Jis?
757デフォルトの名無しさん:2014/03/06(木) 10:32:36.82
>>756

UTFです。
758デフォルトの名無しさん:2014/03/06(木) 20:10:41.85
app.exe.configってどこのを読むんでしょう?
exeのあるフォルダ?カレントフォルダ?
759デフォルトの名無しさん:2014/03/06(木) 20:24:46.44
>>756
そのサイトの文字コードじゃないの?
2ちゃんだったらshift-jisだし。
760デフォルトの名無しさん:2014/03/06(木) 21:13:36.29
>>758
exeのあるフォルダ
761デフォルトの名無しさん:2014/03/06(木) 22:01:16.11
>>753
ソースに改行入ってるオチじゃないだろうな

メモ帳じゃLFは改行して見えないぞ
762デフォルトの名無しさん:2014/03/07(金) 16:55:05.22
>>761

ソースはchromeの開発ツールでみても改行コードは入ってないみたいでした。
バイナリデータで見ないと改行コードって分からないんでしたっけ?

ちなみにfacebookのニュースフィードの投稿者名を取ってます。
763デフォルトの名無しさん:2014/03/07(金) 17:07:40.16
バイナリで見ろ
764デフォルトの名無しさん:2014/03/08(土) 02:52:06.21
IEでタイトルに特定の文字列を含むタブ(or ウィンドウ)を閉じるアプリを書いていて、書いている環境ではうまく動くのですが、別の環境では以下の様なエラーが発生します。
別の環境にも.NET Framerowk 4.5.1まで入れてあります

> System.InvalidCastException: 型 'System.__ComObject' の COM オブジェクトをインターフェイス型 'Shell32.Shell' にキャストできません。
> IID '{286E6F1B-7113-4355-9562-96B7E9D64C54}' が指定されたインターフェイスの COM コンポーネント上での QueryInterface 呼び出しのときに次のエラーが発生したため、
> この操作に失敗しました: インターフェイスがサポートされていません (HRESULT からの例外: 0x80004002 (E_NOINTERFACE))。

ソース
// using Shell32;
// using SHDocVw;
// 参照追加 Microsoft Shell Controls And Automation
// 参照追加Microsoft Internet Control

Shell shell = new Shell();
ShellWindows win = shell.Windows();

string[] str = { "test1", "test2" };

foreach (IWebBrowser2 web in win) {
if (Path.GetFileName(web.FullName).ToUpper() == "IEXPLORE.EXE") {
for (int i = 0; i < badUrl.Length; ++i) {
if (web.LocationName.Contains(str[i])) {
web.Quit();
}
}
}
}

どのようにしたらこのエラーは解決できますでしょうか。
765デフォルトの名無しさん:2014/03/08(土) 11:05:41.72
IEのオートメーションは今だにCOMなのか?
766デフォルトの名無しさん:2014/03/08(土) 12:04:53.26
767デフォルトの名無しさん:2014/03/08(土) 16:09:14.48
>>766
多分それです。
回答にあったコードをどこに入れればいいのかイマイチわからないです…
768デフォルトの名無しさん:2014/03/08(土) 16:37:53.41
STAThread使うならMainメソッド
ただし別スレッドでShellをnewしてるならThread::SetApartmentStateで設定する
この場合TaskとかBackgroundWorkerとかでのスレッドは使えない

GetTypeFromProgID使うならShellをnewする代わりにCreateInstanceの返値を使う
769デフォルトの名無しさん:2014/03/08(土) 16:40:37.52
あ、あとShellじゃなくてIShell使った方がいいかも
770デフォルトの名無しさん:2014/03/08(土) 17:22:44.77
>>768
[STAThread]を指定しても同様のエラーが出ました。

> GetTypeFromProgID使うならShellをnewする代わりにCreateInstanceの返値を使う
これで実装してみたいのですがどうやったらいいのかがわかりません…
771デフォルトの名無しさん:2014/03/08(土) 17:25:20.52
どうやったらもなにも全部書かれてるじゃん…
772デフォルトの名無しさん:2014/03/08(土) 17:25:30.11
>>765
最先端は何を使ってるのかねw
773デフォルトの名無しさん:2014/03/08(土) 18:49:01.12
764です。
なんとか実装できました。ありがとうございました。
774デフォルトの名無しさん:2014/03/08(土) 18:49:54.47
少し前ならリモートオブジェクト、今ならWCFってところだろうけど、
どれだけ使われてんのかね、これ。
775デフォルトの名無しさん:2014/03/08(土) 19:36:36.33
MemoryCacheクラスなんてあったんだ
しかしバグ報告でてんな
https://connect.microsoft.com/VisualStudio/feedback/details/806334/system-runtime-caching-memorycache-do-not-respect-memory-limits

どうやってオブジェクトサイズ計算してんのやろうと思ったら
GetApproximateSizeOfSizedRef
ってのがあるのか
776デフォルトの名無しさん:2014/03/08(土) 20:36:48.72
>>774
何いってんのこいつ
777デフォルトの名無しさん:2014/03/08(土) 21:13:17.94
COMに替わる技術の話だろ?
778デフォルトの名無しさん:2014/03/09(日) 00:02:09.91
例えば
"c:\windows\system32\notepad.exe"
から
"c:\windows\system32\notepad"
を取り出す関数ありますか?
ようするに拡張子(.exe以外もありうる)の部分を取り除きたいのです。
779デフォルトの名無しさん:2014/03/09(日) 00:04:23.95
拡張子の長さを見てフルパスをSubstringすればいいだろ
780デフォルトの名無しさん:2014/03/09(日) 00:08:01.03
右から"\."を検索してトリミングすればいいんじゃない?
拡張子を表示するしないの確認ってc#ってどこで見たらいいんだっけ?
781デフォルトの名無しさん:2014/03/09(日) 00:10:44.53
そんなことしなくても拡張子はPathとかFileInfoで取れるよ
782デフォルトの名無しさん:2014/03/09(日) 00:20:39.03
783デフォルトの名無しさん:2014/03/09(日) 00:25:03.23
それ完全パスじゃないから違う
784デフォルトの名無しさん:2014/03/09(日) 00:35:38.01
GetDirectoryNameとCombineすればおk
785デフォルトの名無しさん:2014/03/09(日) 00:44:54.58
>>783
違うって何だよw
786デフォルトの名無しさん:2014/03/09(日) 01:18:32.21
みなさんありがとうございました。
結局782さんと784さんの方式を使ってやりました。
787デフォルトの名無しさん:2014/03/09(日) 02:55:10.54
現在プログラム板のID制導入の投票を実施中です
よろしくお願いします

プログラム板 強制ID制導入に関する投票スレ
http://kohada.2ch.net/test/read.cgi/vote/1394290844/
788デフォルトの名無しさん:2014/03/09(日) 09:00:23.12
>>782
パス操作に関しては昔のshlwapiの方が機能は充実している。昔の方がパス操作が重要視されていたからな。
>>778そのものずばりのPathRemoveExtensionなんてのもあるし。
789デフォルトの名無しさん:2014/03/09(日) 09:17:44.12
>>775
MemoryCache 知ってたけど安易に使えないな

まだ自前で実装するしかないのか…
790デフォルトの名無しさん:2014/03/09(日) 18:21:12.09
VS2013でMetroUIのフレームワーク使いたいんだけど、どうすればいい?
791デフォルトの名無しさん:2014/03/09(日) 19:44:50.05
そんなものは無い
ストアアプリ専用
792デフォルトの名無しさん:2014/03/10(月) 00:59:00.65
いやWPF用で2つ3つ出てるよ。
793デフォルトの名無しさん:2014/03/10(月) 14:17:06.90
abstractとvirtualの違いが分からん。
どうして同じようなのもが有るの?
一つじゃ駄目なのか?
794デフォルトの名無しさん:2014/03/10(月) 15:10:45.95
abstractはabstract classでしか使えない
abstractメソッドでは実装を書けない
継承クラスで実装「しなくてはならない」

virtualはオーバーライドは任意だから全然使いどころが違う

むしろabstract class と interfaceの使いどころのほうが迷うと思うが
795デフォルトの名無しさん:2014/03/10(月) 16:05:33.00
>むしろabstract class と interfaceの使いどころのほうが迷うと思うが
これ俺も分からん
796デフォルトの名無しさん:2014/03/10(月) 16:09:03.05
abstractとvirtualとinterfaceの三つを上手に使い分けて
それぞれの存在意義がわかるような簡単なサンプルプログラム
誰か作って下さい。100行以内くらいで。
797デフォルトの名無しさん:2014/03/10(月) 16:12:10.40
俺の中ではinterfaceにするまでもないときにabstract classを使うな
ここのメソッドは上書き前提だけど他のプロパティやメソッドは全部同じだよなって時とか
798デフォルトの名無しさん:2014/03/10(月) 16:50:40.08
適当に考えた抽象クラスとインターフェースの違い

クラスの継承はis-aの関係(一種の○○)になくちゃいけないらしい
つまりabstract classは強制的に継承の関係にできる
実装は違っても基底クラスと何らかの関係が欲しい時に使えそう
(Streamとか)

逆にinterfaceは全く関係ない(用途が全く違う)クラスでも実装できるので
abstract class より汎用的にしたい時に使えるんじゃないかな
(ICloneableとかIDisposableとか)

>>790
ChromeWindowでggr
799デフォルトの名無しさん:2014/03/10(月) 17:07:47.56
newとoverrideの違いがわからん
オブジェクト指向的には「隠す」と「書き換える」であってると思うんだが機能的な違いが
800デフォルトの名無しさん:2014/03/10(月) 17:15:18.76
801デフォルトの名無しさん:2014/03/10(月) 17:30:46.73
>abstract class と interfaceの使いどころ
abstract classで済むならできるだけabstract class使え、interface使うな
C#のinterfaceは一度書いたらもう二度と変更できない(変更してもいいけど
それ継承してる世界中の子クラスを修正しなければならない)んだから
実際に使う機会はないでしょ(後で悲惨な目にあいたければ使ってもいい)。
せいぜいIClonableみたいなマーカーインターフェイスに使う程度
802デフォルトの名無しさん:2014/03/10(月) 17:40:43.36
interfaceのことわかってなくてワロタ
803デフォルトの名無しさん:2014/03/10(月) 17:50:59.42
801はMSが言ってることなんだけどね。勉強不足な802恥しすぎ
http://msdn.microsoft.com/ja-jp/library/ms229013%28v=vs.100%29.aspx
804デフォルトの名無しさん:2014/03/10(月) 18:20:49.78
たぶん機能的文盲ってやつだろう? >>801は。
805デフォルトの名無しさん:2014/03/10(月) 18:25:43.96
>>803
こういうときはインターフェース必要って書いてあるように読めた
どこに「実際に使う機会はない」ってあるんだろ
勉強不足な俺に教えてくれ
806デフォルトの名無しさん:2014/03/10(月) 18:32:50.93
ここふらっと(初心者用)だぞ。それ踏まえて発言してくれ。
使いどころに悩むようなところは100%抽象クラスを使うべきケースであって逆はない。
interfaceを使うべきケースは抽象クラスが使えない場合だけだから、初心者で悩まなくていい
そういう例で分かりやすいのとしてマーカーインターフェイスを挙げておいた
807デフォルトの名無しさん:2014/03/10(月) 18:35:27.04
マーカーインターフェイス使うくらいなら属性だな
808デフォルトの名無しさん:2014/03/10(月) 18:35:56.73
もうちょっと見守ってからどっちについたら面白いか判断します
809デフォルトの名無しさん:2014/03/10(月) 18:40:49.34
まぁ、初心者ならinterface定義することはまずないわな
すでにあるやつを実装するだけ
810デフォルトの名無しさん:2014/03/10(月) 18:53:59.30
is-a has-a論は基礎やるときは重要だけど、
実際は多重継承可能なabstract class が interfaceという認識で十分だな。
interfaceという用語は通信や分散オブジェクトやそっち方面から輸入なので、
C#やjavaでは本来の概念と違ってきている。
まあ初心者ということならis-a has-aを押すかな
811デフォルトの名無しさん:2014/03/10(月) 19:04:01.78
>>803
ちょっとこの説明は変だねw

例えばインターフェイスより抽象クラスを推す理由の1つに、インターフェイスに
メンバーを追加すると既存のコードを壊すからとあるけど、それは抽象クラスに
抽象メソッドを追加した場合だって同じことで何を言ってるのか意味が分からない。

っていうかどっちにするか迷うようなケースでインターフェイスより抽象クラスを推すって
OOP的にはかなり異端というか非常識な意見じゃないか?
812デフォルトの名無しさん:2014/03/10(月) 19:11:16.86
interfaceよりclass使えとは書いてあるが
abstract classを使えとは書いてないような
813デフォルトの名無しさん:2014/03/10(月) 19:17:58.77
> コントラクトを実装から分離するには、インターフェイスではなく、
> 抽象クラス (Visual Basic の場合は MustInherit クラス) を使用してください。
これでしょ
抽象じゃないメンバを追加できるのはやっぱり強い
教条的OOP至上主義を取ったJavaの反省からのガイドラインだよ
814デフォルトの名無しさん:2014/03/10(月) 19:18:00.66
2005年頃のドキュメントみたいだから、
Javaで何でもインターフェイスにしろ的な風潮が蔓延してて
それに対する反論が出始めてた頃じゃないかな。
Java5でアノテーションが追加された頃でもある。
815デフォルトの名無しさん:2014/03/10(月) 19:32:11.32
>>812
インターフェイスと機能がバッティングしてるのは抽象クラスだから、
選択に迷うとしたらその2つの間で迷う以外にありえない。
816デフォルトの名無しさん:2014/03/10(月) 20:26:37.66
通常クラスの継承のケースも含んでいいじゃない?
817デフォルトの名無しさん:2014/03/10(月) 20:38:31.12
abstractじゃないけど全メソッドでNotSupportedExceptionを投げる型とかもあるし、abstractかどうかにこだわってもしょうがない
818デフォルトの名無しさん:2014/03/10(月) 20:54:21.23
>>801
interfaceだけIを名前の先頭に付けて特別扱いすることからもわかるように、MS自身は昔からinterface大好きだよ
VSのソースなんか見ると中で気持ち悪いくらい使ってる
単体テストで差し替えるためにクラス間の依存を片っ端からinterfaceにするのはわりとメジャーなやり方
interfaceが変更された際の互換性の問題は、互いに独立性の高いモジュール間の境界でinterfaceを使ったときの話で、
内部で使う分には修正漏れを防ぐのに役立つから逆にメリットでもある
819デフォルトの名無しさん:2014/03/10(月) 21:05:20.71
Effective C#だと抽象クラスよりインターフェイス使えって書いてるね
親固定すると汎用性なくなるから
820デフォルトの名無しさん:2014/03/10(月) 21:06:23.76
interfaceに実装(共通メソッド)を持たせたい場合に、abstractを使うでいいんじゃ・・

ただ、拡張メソッドもあるし、interfaceだけで済ませることもできるかもね
821デフォルトの名無しさん:2014/03/10(月) 21:06:37.26
インターフェイスより抽象クラスを推奨ってのはあくまで不特定多数向けのクラスライブラリ向けのガイドライン
そういうクラスライブラリのパブリック型はまさに「互いに独立性の高いモジュールの境界」に該当するわけだ
822デフォルトの名無しさん:2014/03/10(月) 21:08:19.67
拡張メソッド導入前のガイドラインをどこまで信用していいものか
823デフォルトの名無しさん:2014/03/10(月) 21:23:10.19
VSの「インターフェイスの抽出」機能なんて、
なんでもインターフェイス使って無理矢理疎結合にするような開発スタイルでない限りはまず使う機会無いよね
824デフォルトの名無しさん:2014/03/10(月) 21:31:24.96
リファクタリングで結構使う
825デフォルトの名無しさん:2014/03/11(火) 00:19:00.78
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace ConsoleApplication1{ class Program2{
public class Person{
public string name;public Person(string name){this.name = name;}}
public class Department{
public string name;public List<Person> persons = new List<Person>();
public Department(string name){this.name = name; }}
public class Company{public List<Department> departments = new List<Department>();}
static void Main(string[] args){
var company = new Company();var dept1 = new Department( "設計");
var p11 = new Person("鈴木");dept1.persons.Add(p11);
var p12 = new Person("本田");dept1.persons.Add(p12);
company.departments.Add(dept1);
var dept2 = new Department("販売");
var p21 = new Person("豊田");dept2.persons.Add(p21);
var p22 = new Person("川崎");dept2.persons.Add(p22);
company.departments.Add(dept2);
foreach (var dept in company.departments){Console.WriteLine("dept:{0}",dept.name);
foreach (var p in dept.persons){Console.WriteLine(" person:{0}", p.name);}}
//string 設計の本田さんの課 = company.departments(???).name;
Console.WriteLine("Press key");Console.ReadKey(); }}}
この時、設計の本田さんの所属している課の名前である"設計"を取り出すLINQを教えてください。
ただし、同じ名前の人はいないと仮定します。あと、コードで何かおかしなところがあれば指摘して下さい。
826デフォルトの名無しさん:2014/03/11(火) 00:30:53.25
とりあえず>>1のこれの使い方を覚えたほうがいい

>■コード貼るなら↓使ってください
http://ideone.com/
827デフォルトの名無しさん:2014/03/11(火) 00:34:04.80
(from dep in company.departments
&nbsp;from person in dep.persons
&nbsp;where person.Name == "本田"
&nbsp;select dep.Name).First()
828デフォルトの名無しさん:2014/03/11(火) 02:32:16.98
多重継承できないんだから
複数使う可能性ありそうなのを
インターフェースにするでいいでしょ
829デフォルトの名無しさん:2014/03/11(火) 07:15:18.85
インターフェースはアセンブリをまたぐ時ぐらい
830デフォルトの名無しさん:2014/03/11(火) 07:19:13.13
むしろ内部ではinterface使いまくっても問題ないけどアセンブリをまたぐ時は慎重になるべき
上の話を読め
831デフォルトの名無しさん:2014/03/11(火) 08:24:23.58
>>828 に一票
832デフォルトの名無しさん:2014/03/11(火) 09:58:22.60
>>830
それは本末転倒。
アセンブリでpublicにするinterfaceは変更に慎重になるべきで、
メンバーを増やしたいならinterfaceを継承などして新しいinterfaceを準備する。
833デフォルトの名無しさん:2014/03/11(火) 10:04:57.22
>メンバーを増やしたいならinterfaceを継承などして新しいinterfaceを準備する。
IHTMLDocumentはいまいくつまで数字進んでたっけ…
834デフォルトの名無しさん:2014/03/11(火) 10:12:19.24
>>833
COMのインターフェースはちょっとでも変更するとバイナリレベルで互換性が壊れるからね。
しょうがないね。
835デフォルトの名無しさん:2014/03/11(火) 10:25:49.17
構造体を引数にとる拡張メソッド

public static void Hoge( this SomeStruct s1, ref SomeStruct s2 )
{
...
}

s1.Hoge( ref s2 );
これももやっぱりs1の値のコピーは発生しますよね?
836デフォルトの名無しさん:2014/03/11(火) 10:26:41.19
うん
837デフォルトの名無しさん:2014/03/11(火) 15:17:23.22
enumについての質問
[Flags]
enum Xyz {
X1 = 1,
X2 = 2,
Y = 4,
X = X1 | X2,
}

class Program {
static void Main() {
Xyz en = Xyz.X1;
switch (en) {
case Xyz.X:
Console.WriteLine("X");
break;
case Xyz.Y:
Console.WriteLine("Y");
break;
case Xyz.X1:
case Xyz.X2:
Console.WriteLine(en);
break;
}
}
}

これを実行すると「X1」が表示されるんだけど、「Xyz.X」の分岐の方に行ってくれるような書き方はないものかなと
要素数が多くなると複数の要素をまとめて書きたくなる
838デフォルトの名無しさん:2014/03/11(火) 15:24:15.57
XY = X1 | Yがあったときにどこに飛ぶのよ
と考えるとswitchじゃ無理
839デフォルトの名無しさん:2014/03/11(火) 15:39:01.90
>>827
ありがとうございます。
うまく行きました。
840デフォルトの名無しさん:2014/03/11(火) 15:50:04.44
>>837
|(論理加算)の意味をわかってなさそうだから、調べてみれ
841デフォルトの名無しさん:2014/03/11(火) 22:42:45.11
>>834
COMに限らず、拡張したインターフェースが同じ名前だったら拡張した部分を安心してアクセスすることが
できないわけだし、それを動的にチェックしなければならないならばインターフェースの意味がない。
842デフォルトの名無しさん:2014/03/11(火) 23:10:18.53
>>841
普通はバージョン固定するからインターフェイスの方だけ更新されて実装側だけ古いままというのは起こらないし、
固定しなくてもクラスロード時にコケる
843デフォルトの名無しさん:2014/03/11(火) 23:53:32.49 ID:MAJs+09F
ただいま
844デフォルトの名無しさん:2014/03/11(火) 23:56:19.72 ID:MAJs+09F
>>837
Xyz en = Xyz.X1 | Xyz.X2;

if((en & Xyz.X1) != 0){ ... }

っていうことじゃないの
845デフォルトの名無しさん:2014/03/12(水) 02:39:45.54 ID:6+jjAY/K
>>844
en.HasFlag(Xyz.X1)の方がいいんじゃね?
846デフォルトの名無しさん:2014/03/12(水) 07:08:04.18 ID:h0EBk4PB
なんでSystem.Runtime.InteropServices.ComTypesあたりのComインターフェイス定義って
PreserveSigにしといてくれないの?
例外出すとかまじ使いづらい
847デフォルトの名無しさん:2014/03/12(水) 07:11:31.29 ID:kGAxL9V5
HasFlagはクソ遅いが、>>844みたいな半分間違ってるコードを書いてしまうくらいならその方がマシだね
複合フラグの場合におかしくなるから、!=0じゃなくて常に==X1を使うようにするといいぞ
848デフォルトの名無しさん:2014/03/12(水) 07:48:30.14 ID:F9SiziZl
>>847
> 複合フラグの場合におかしくなるから、!=0じゃなくて常に==X1を使うようにするといいぞ

頓珍漢アドバイス乙
どれか立ってりゃいいなら != 0 だし、全部立つのを見たいなら == X1 だろ
849デフォルトの名無しさん:2014/03/12(水) 07:59:00.72 ID:kGAxL9V5
どれか立ってりゃいいなら if ((en & Xyz.X) != 0) でしょ
紛らわしいサンプルを出さないでくれよ
850デフォルトの名無しさん:2014/03/12(水) 08:27:40.27 ID:KhrQSRjl
>>849
Yは?
851デフォルトの名無しさん:2014/03/12(水) 08:30:48.54 ID:Hk7oPv6G
トンチキが湧いててワロタ
852デフォルトの名無しさん:2014/03/12(水) 09:58:50.22 ID:2rbryAsK
元コードの目的が不明

もしフラグ的に使うならif(hasFlag()){}だし
完全一致させたいならswitch使えばいい
ごちゃまぜは良くないってことだ
853デフォルトの名無しさん:2014/03/12(水) 10:20:34.28 ID:h0EBk4PB
ちょっと横からすみません

( A | B ) ^ B
って
A & ~B
と同じですよね?

・どちらをよく使いますか?
・計算量とかは違ったりするんでしょうか?
854デフォルトの名無しさん:2014/03/12(水) 11:32:16.98 ID:3VHJhbHq
二式は等しいね
実行してみたらC#の場合は
前者の方が速いみたい
なんでかまでは見てない
コード書いてアセンブラ見てみてください
855デフォルトの名無しさん:2014/03/12(水) 11:32:21.94 ID:ApMX+6Gf
enum Xyz {
...
X = X1 | X2,
}

複合フラグの場合か・・・
普通こんなことしないと思ってた
するの?
856デフォルトの名無しさん:2014/03/12(水) 11:34:25.63 ID:kpE5MycJ
たまに
ReadWriteとかでよくあるパターン
857デフォルトの名無しさん:2014/03/12(水) 11:51:11.95 ID:3VHJhbHq
>>854
ごめんなさい、計測失敗してました。
後者の方がわずかに速そうです。
858デフォルトの名無しさん:2014/03/12(水) 12:04:55.54 ID:3VHJhbHq
ちなみに計算量の大きい順に並べると
^ > & ≒ | > ~ だね
859デフォルトの名無しさん:2014/03/12(水) 12:06:17.25 ID:ApMX+6Gf
x86CPUでってこと?
860デフォルトの名無しさん:2014/03/12(水) 12:07:17.06 ID:3VHJhbHq
>>858
^ ≒ & ≒ | > ~
もしかしたらこうかも。
861デフォルトの名無しさん:2014/03/12(水) 12:16:59.49 ID:BZ2ITqu/
>>853
最適化かかって同じコードになると思うが
862デフォルトの名無しさん:2014/03/12(水) 12:33:10.35 ID:3VHJhbHq
逆アセンブルみたら微妙に違う
見方が悪いんかなぁ…
vsでデバッグ実行止めて逆アセンブルを表示って
jitコンパイラから出力されるコードと異なる?
863デフォルトの名無しさん:2014/03/12(水) 12:37:55.86 ID:2Y4DQEht
Releaseでやってる?
864デフォルトの名無しさん:2014/03/12(水) 12:45:33.79 ID:3VHJhbHq
リリースでやっても違いました~
865デフォルトの名無しさん:2014/03/12(水) 12:51:54.28 ID:3VHJhbHq
ただリリースビルドで実行した場合は速度がほぼ一緒になりました…
866デフォルトの名無しさん:2014/03/12(水) 12:54:16.80 ID:PIPCP4/1
回路的にはNANDのほうが速そうだけどな
867デフォルトの名無しさん:2014/03/12(水) 13:01:41.17 ID:kpE5MycJ
x86にxor/and/or/not全部あるんだからそこまでは敢えて最適化するまでもないんじゃないか
そっから先はともかくとして
VC++でちょっと試したけどそっちでもnot+andとor+xorでそのままやってるようだし
868デフォルトの名無しさん:2014/03/12(水) 13:05:10.51 ID:3VHJhbHq
どうやらリリースビルドしても
逆アセンブルで表示されるのは
デバッグビルドのものと一緒のやうです

しかし実行時は、
デバッグビルド→差がある
リリースビルド→差がない
となるので、最適化かかって同じになってさうです
869デフォルトの名無しさん:2014/03/12(水) 13:20:14.02 ID:uGdHRh7v
ILレベルだと確かに違ってるけど、JITコンパイルの結果まで比較する技術がない。
870デフォルトの名無しさん:2014/03/12(水) 14:04:41.34 ID:BZ2ITqu/
>>862
ILSpyで逆アセするのが簡単だよ試してみたら確かにReleaseでも違う。
>>869が言うようにJIT時に再度最適化されて同じになってんのかなぁ
871デフォルトの名無しさん:2014/03/12(水) 17:45:02.72 ID:9FfsZZjS
マウスクリッカー的なのを作ってるんだけど、
マウスをクリックさせる関数ってなんぞや
872デフォルトの名無しさん:2014/03/12(水) 17:46:22.38 ID:ApMX+6Gf
マウスクリック時に呼び出されるメソッドを
普通に呼び出せばいいんじゃないの
873デフォルトの名無しさん:2014/03/12(水) 17:49:57.40 ID:0VZLjsXv
OnClick
874デフォルトの名無しさん:2014/03/12(水) 18:02:07.90 ID:2Y4DQEht
グローバルに使いたいなら SendInput とか
875デフォルトの名無しさん:2014/03/13(木) 04:05:50.96 ID:xGRRlaF0
VS2013のC#のエディタで、バックスラッシュが円記号で表示されるのですが、
それをバックスラッシュで表示させることは可能でしょうか?
876デフォルトの名無しさん:2014/03/13(木) 04:21:45.05 ID:t7/wB/Ee
>>875
フォント変えてみれば?
Consolas使ってるけどバックスラッシュだよ
877デフォルトの名無しさん:2014/03/13(木) 07:11:36.98 ID:uCu2d4RZ
韓国のウィンドウズはウォン記号なんだぜw
878デフォルトの名無しさん:2014/03/16(日) 01:31:51.25 ID:oNuhFUS2
どこかの黒くて赤文字のサイトに影響されたんですかね
分かるような気がします
879デフォルトの名無しさん:2014/03/16(日) 02:24:41.11 ID:PqPWuBt9
円記号は円記号だよw
880デフォルトの名無しさん:2014/03/16(日) 03:11:07.70 ID:OB5ljior
OSとVSを英語版にすればすべて解決。
881デフォルトの名無しさん:2014/03/16(日) 08:31:55.34 ID:gCU3z0+W
>>875
msdn.microsoft.com/ja-jp/library/ms165337.aspx
フォントをArialとかに変更
882デフォルトの名無しさん:2014/03/16(日) 11:46:57.01 ID:vg8eVB59
俺もエディタ画面までConsolasにしてしまってる
何か見やすいんだよね
883デフォルトの名無しさん:2014/03/16(日) 11:58:30.79 ID:wmGwEPKz
これだと思うフォントでもしばらく使うとなんかダメだなってなって変えちゃう
884デフォルトの名無しさん:2014/03/16(日) 19:05:36.22 ID:19oR+CPB
業務でやるなら変なトラブル起こしたくないからデフォルト
885デフォルトの名無しさん:2014/03/16(日) 19:50:12.95 ID:+0w7Q/Uu
ここIT奴隷さんが入り浸ってるね
仕事の質問をここでしないでよ
886デフォルトの名無しさん:2014/03/16(日) 20:03:00.32 ID:GVwtZId6
フォントサイズはあるがフォントは変えたことないな
887デフォルトの名無しさん:2014/03/16(日) 20:05:51.55 ID:+0w7Q/Uu
仕事の質問をこんなところでしてたらはずかしいよぉ
888デフォルトの名無しさん:2014/03/16(日) 21:44:53.08 ID:LMPYC/S1
いろいろ変えてみたけどコードエディタは結局MSゴシックのまんまだ
889デフォルトの名無しさん:2014/03/16(日) 21:49:17.57 ID:+0w7Q/Uu
初心者スレってこんなくだらないレスで盛り上がってるの?
890デフォルトの名無しさん:2014/03/16(日) 21:50:34.35 ID:1gXwUEhj
>>889
上級者様お疲れ様でーす
891デフォルトの名無しさん:2014/03/16(日) 21:52:23.74 ID:wQykVVMe
マックタイプ入れて、RICTY使ってるな
892デフォルトの名無しさん:2014/03/16(日) 21:53:11.02 ID:+0w7Q/Uu
あっちのC#スレに来ないでくださいよ下級者は
893デフォルトの名無しさん:2014/03/16(日) 21:57:25.63 ID:YUQWaoen
ID出るようになってよかった
894デフォルトの名無しさん:2014/03/16(日) 22:00:53.02 ID:wUdd0oIX
たかが ID が出るようになっただけで驚くほど落ち着いたよな。w
895デフォルトの名無しさん:2014/03/16(日) 22:01:32.04 ID:vg8eVB59
透明あぼ~んよりも あぼ~ん[あぼ~ん] 投稿日:あぼ~ん と表示させた方が
「ざまあ」って感じが出ていいね
896デフォルトの名無しさん:2014/03/16(日) 22:02:53.26 ID:+0w7Q/Uu
あっちに来ないでくださいよ
897デフォルトの名無しさん:2014/03/16(日) 22:10:04.39 ID:+0w7Q/Uu
やっぱりC#の初心者はたちが悪いね
898デフォルトの名無しさん:2014/03/16(日) 22:14:57.02 ID:Zmwe6LE6
896 名前:あぼ~ん[あぼ~ん] 投稿日:あぼ~ん

897 名前:あぼ~ん[あぼ~ん] 投稿日:あぼ~ん

いやあ胸がすく思いがするw
899デフォルトの名無しさん:2014/03/16(日) 22:33:04.16 ID:+0w7Q/Uu
図星つかれて発狂しないでよC#初期プログラマさん
初期のプログラマに必要な経験は自分で調べて解決する修行だよ
それをしないでいつまでも質問してたらヘボプログラマのままじゃん
900デフォルトの名無しさん:2014/03/17(月) 01:08:20.76 ID:NYNaGVX4
>>898
ほんとうにな。w
901デフォルトの名無しさん:2014/03/17(月) 01:10:50.33 ID:qNLDgXjv
C#プログラマの土人はこのスレに集まるんだよね
馬鹿が隔離されてていいわー
902デフォルトの名無しさん:2014/03/17(月) 02:04:31.70 ID:UDXB9m6E
C#からDirect2Dを使うには、P/Invokeするしかないのでしょうか?
903デフォルトの名無しさん:2014/03/17(月) 02:21:13.75 ID:bcMygZBw
昔はそうだったが今ならさすがにAPI Code Pack使うわ
http://archive.msdn.microsoft.com/WindowsAPICodePack
904デフォルトの名無しさん:2014/03/17(月) 02:23:22.57 ID:b/x4z1HJ
んな馬鹿な「C#からDirect2Dを使うには」で検索検索
905デフォルトの名無しさん:2014/03/17(月) 02:34:43.42 ID:qNLDgXjv
ブッ、またググレカスな質問をみつけちゃったよ
それに真面目に答えてる>>903も低能だよ
906デフォルトの名無しさん:2014/03/17(月) 03:00:00.76 ID:73D4WlkX
>>902
>>903はありえないくらいパフォーマンス悪いから
これがお勧め
https://github.com/sharpdx/SharpDX
907デフォルトの名無しさん:2014/03/17(月) 11:04:07.78 ID:qNLDgXjv
調べてれば見つけられる質問にまた答えちゃった
お前のゴミ知識なんか求めてないよ
908デフォルトの名無しさん:2014/03/17(月) 11:19:26.74 ID:3qchEuh5
2DでゲームならUnityでいいんじゃね
909デフォルトの名無しさん:2014/03/17(月) 11:51:02.42 ID:Nj9Ve+NA
Direct2Dはゲームでは使われんよ
910デフォルトの名無しさん:2014/03/17(月) 12:20:24.29 ID:78KDYQNE
WPFがDirect2Dのラッパーだよ
というよりWPFの低レベル層を分離して文書化したのがDirect2D
911デフォルトの名無しさん:2014/03/17(月) 19:57:25.33 ID:qNLDgXjv
できそこないグラマーを隔離するスレっとして位置づけだね
912デフォルトの名無しさん:2014/03/17(月) 20:51:47.83 ID:3qchEuh5
DirectDrawとかもう無いんだっけ
スマソ
913デフォルトの名無しさん:2014/03/17(月) 21:55:03.46 ID:qNLDgXjv
C#は3Dプログラミングも容易
でもここの人たちではできない
914デフォルトの名無しさん:2014/03/17(月) 22:45:54.89 ID:MpccdyG+
全角文字には突っ込まないが、3D=すごいって発想がオッサンを語るに落ちてるなw
915デフォルトの名無しさん:2014/03/17(月) 23:04:44.47 ID:Ww2ZjEDp
http通信にてresponceのステータスコード確認したいけどHttpStatusCodeに入っていない値がありますよね。
429とか・・・これ戻ってきたらどうなるんでしょう?
他の意味が近いのにまとめられるんですか。
916デフォルトの名無しさん:2014/03/17(月) 23:09:10.11 ID:qNLDgXjv
>>915
そんなくだらない質問してたらC#プログラマがゴミみたいに思われるよ
917デフォルトの名無しさん:2014/03/17(月) 23:09:32.51 ID:b/x4z1HJ
HttpStatusCodeに入っていない値429とかを送ってみたいのですがどうやればいいですか?
918デフォルトの名無しさん:2014/03/17(月) 23:10:06.42 ID:y9FlH5iR
ソケット
919デフォルトの名無しさん:2014/03/17(月) 23:33:48.44 ID:qNLDgXjv
たって一言で解決か?
だったら質問しなくていいじゃん、馬鹿すぎる
920デフォルトの名無しさん:2014/03/18(火) 00:29:49.32 ID:hNbplCgR
ソケットですね コードを接地してみます
921デフォルトの名無しさん:2014/03/18(火) 00:46:13.99 ID:G12u9CCe
たった一言のレスを信用してしまったよ
馬鹿が馬鹿を産む構図だね
922デフォルトの名無しさん:2014/03/18(火) 00:59:44.20 ID:A6mx53fC
送るのは簡易http鯖つくりゃいんだから簡単だろ
429があるのかとか未対応のがどうなるのかは知らね
923デフォルトの名無しさん:2014/03/18(火) 01:22:03.49 ID:G12u9CCe
こういうのは回答って言うより誰に話してるんだか分からないくらいの独り言レベルレス
初心者C#スレの人はやっぱり頭のどこかに問題があるんじゃないですかねぇ
924デフォルトの名無しさん:2014/03/18(火) 07:33:02.36 ID:dVJZPG2n
IDのおかげで荒らしにも一貫したキャラが付くようになったのか、強制IDも意に介さないキチガイだけが選別されたのか
925デフォルトの名無しさん:2014/03/18(火) 10:49:47.55 ID:vVO3jLH2
926デフォルトの名無しさん:2014/03/18(火) 12:12:41.33 ID:G12u9CCe
ちょっとイラっと来ただけで憤慨してしまうのはゴミプログラマだからしょうがない
基礎ができていないとこういう糞質問があふれてそれがまた糞質問を集めるという図式
927デフォルトの名無しさん:2014/03/18(火) 17:21:27.71 ID:42KBwmfS
ドアを蹴破るカトラーのことか?

すぐキレる天才プログラマってほんとかっこいい。
928デフォルトの名無しさん:2014/03/18(火) 17:54:27.78 ID:G12u9CCe
つまりお前はすぐ切れる無能C#プログラマーです
余計なこと言いたいだけなら出て行ってください
929デフォルトの名無しさん:2014/03/21(金) 21:04:11.52 ID:NDl1lNAz
Visual C#ってもうないよね
930デフォルトの名無しさん:2014/03/21(金) 21:06:49.99 ID:Z82+z0lX
>>929
もうないね、自分で頭で考えることできるだけの脳が>>929には
931デフォルトの名無しさん:2014/03/21(金) 21:24:39.76 ID:vdrmLaUs
そういやほかの質問サイトでもVC#っていう表現は聞かなくなったなぁ
932デフォルトの名無しさん:2014/03/21(金) 21:32:01.36 ID:NDl1lNAz
このVisualが入るようになったのって
荒らしから逃げ出すためにIDの出るソフトウェア板に移民しようとして
Visual C#のスレを立てたら
なぜかこっちのスレにVisualがつくようになったっていう意味不明な経緯なんだよな
933デフォルトの名無しさん:2014/03/21(金) 23:00:25.68 ID:0KwiiL7N
ASPNET MVC V4です。

@model xxxx.Models.RegisterModel
@using (Html.BeginForm()) {
 <fieldset>
  @Html.LabelFor(m => m.UserName) // ---(1)
  @Html.TextBoxFor(m => m.UserName)

(1)のLabelに初期値を表示したいのですが、どうしたらよいでしょうか?
934デフォルトの名無しさん:2014/03/21(金) 23:04:34.65 ID:NDl1lNAz
時代の進歩は凄いな
宇宙語に見える
935デフォルトの名無しさん:2014/03/21(金) 23:05:06.43 ID:Et+rwC8U
labelの初期値って意味が分からない
Model.UserNameかフォーカスの話か?
936デフォルトの名無しさん:2014/03/21(金) 23:22:10.59 ID:Z82+z0lX
>>935
C#を知らないゴミは黙ってて
937デフォルトの名無しさん:2014/03/21(金) 23:37:20.87 ID:0KwiiL7N
>>935
質問間違ってました。すみません。
TextBoxの初期値です。
TextBoxに「デフォルトの名無しさん」をあらかじめ
表示しておくにはどうしたらよいでしょうか?
938デフォルトの名無しさん:2014/03/22(土) 00:43:06.60 ID:7B0W6FHS
>>937
「Html.TextBoxFor placeholder」
とかで検索するとわかるけど
HTML5のプレースホルダ使うのは面倒だから
単純にプロパティにセットしておけば
939デフォルトの名無しさん:2014/03/22(土) 00:52:37.69 ID:+2B6OEdX
>>938
を信用したらC#プログラマにはなれません
>>937はゴミクズ糞ウンコ蛆虫
940デフォルトの名無しさん:2014/03/22(土) 09:03:46.88 ID:hD5+ryBY
本日のNGID
ID:+2B6OEdX
941デフォルトの名無しさん:2014/03/22(土) 10:13:51.50 ID:6b6M8+OZ
匿名型使うだけだからコーディングとしてはさほど面倒でもない
文法や内部実装を理解できるかどうかはともかく
942デフォルトの名無しさん:2014/03/22(土) 13:22:02.80 ID:+2B6OEdX
本日のNGID
ID:hD5+ryBY
943デフォルトの名無しさん:2014/03/22(土) 13:26:30.24 ID:vSoNdf5l
在日君のお目覚めかよ
944デフォルトの名無しさん:2014/03/22(土) 14:18:08.26 ID:Nsic/UJL
あらー休日だと思ってぐう垂れてますね
http://hissi.org/read.php/tech/20140322/KzJCNk9FZFg.html
945デフォルトの名無しさん:2014/03/22(土) 15:33:24.29 ID:+PCM3QAQ
>>942
一丁前に悔しかったのかw
946デフォルトの名無しさん:2014/03/22(土) 15:55:34.23 ID:+2B6OEdX
ゴミニートがプログラミングしていいC#じゃねえだよねポンコツ
947デフォルトの名無しさん:2014/03/22(土) 16:16:11.81 ID:+PCM3QAQ
ハイハイNGNG
948デフォルトの名無しさん:2014/03/23(日) 00:04:19.60 ID:oNv5NDmI
3/19 ID:pgTJKr0l 86レス1位
http://hissi.org/read.php/tech/20140319/cGdUSktyMGw.html
3/20 ID:noBkfRX0 69レス1位
http://hissi.org/read.php/tech/20140320/bm9Ca2ZSWDA.html
3/21 ID:Z82+z0lX 55レス1位
http://hissi.org/read.php/tech/20140321/WjgyK3owbFg.html
3/22 ID:+2B6OEdX 39レス1位
http://hissi.org/read.php/tech/20140322/KzJCNk9FZFg.html

完 全 に 病 気
949デフォルトの名無しさん:2014/03/23(日) 02:57:09.86 ID:LwVxNWuC
C#やるってことはMSの信仰者になるって意味だから
この程度でつまづいていたら相手にされないぞ?
950デフォルトの名無しさん:2014/03/23(日) 03:03:05.49 ID:z9EYwqiy
俺は躓いてなどいない。世間が一歩前に進んだだけだ
951デフォルトの名無しさん:2014/03/23(日) 03:20:43.97 ID:LwVxNWuC
だからそれ自分が退化してるんだって
世間の成長についていけないITエンジニアは退職の運命
952デフォルトの名無しさん:2014/03/23(日) 03:54:27.98 ID:6+yiVumR
まあ誰だって定年退職するしね
953デフォルトの名無しさん:2014/03/23(日) 12:32:23.06 ID:9pAuhLXR
今の若い世代のジャップはピカにやられたから定年までもたないよ
954デフォルトの名無しさん:2014/03/23(日) 17:54:15.66 ID:kCFPz0oR
嫌儲乙
955デフォルトの名無しさん:2014/03/25(火) 09:04:15.20 ID:hvwU45Re
スレッドプールって何万件でもキューにつっこむことができますか?
最大値とかありますか?
956デフォルトの名無しさん:2014/03/25(火) 09:20:08.01 ID:X5SMyeic
万ぐらいならすぐ試せるだろー
957デフォルトの名無しさん:2014/03/25(火) 12:09:44.16 ID:iaFhKYFb
そういう使い方するならTaskSchedulerを併用した方がいいかもな
突っ込めてもスレッドプールが埋まったら他のタスクに支障はでるよ
958デフォルトの名無しさん:2014/03/25(火) 13:03:34.10 ID:hvwU45Re
キューがいっぱいになったら突っ込めるまで待機してくれると
いいのですが
959デフォルトの名無しさん:2014/03/25(火) 13:18:29.18 ID:kNlwvqbx
どこまで自動でやってもらうつもり?
自分で待機させろよ
960デフォルトの名無しさん:2014/03/25(火) 13:21:58.44 ID:bvFcvrs8
馬鹿が質問したらほら荒れるだろ
馬鹿質問者は質問禁止にしろ
961デフォルトの名無しさん:2014/03/25(火) 13:53:38.62 ID:iaFhKYFb
>>958
LimitedConcurrencyLevelTaskSchedulerで並列度10くらいにして投げとけばいいよ。
962デフォルトの名無しさん:2014/03/25(火) 14:06:14.60 ID:hvwU45Re
>>961
すみません。.Netのバージョンは3.5限定でした。
963デフォルトの名無しさん:2014/03/25(火) 14:08:44.64 ID:ACGlcJn6
(´・ω・`)しらんがな
964デフォルトの名無しさん:2014/03/25(火) 17:29:50.16 ID:iaFhKYFb
ああ、知らんな
965デフォルトの名無しさん:2014/03/25(火) 17:39:16.63 ID:hvwU45Re
自己解決しました。
966デフォルトの名無しさん:2014/03/25(火) 17:43:15.75 ID:o+qz89/X
今まで自己解決した、だけ書くのは全部成りすましだと思ってたけど違うのねw
967デフォルトの名無しさん:2014/03/26(水) 19:28:14.69 ID:G8k8TK/s
WebBrowserでUnityのゲーム起動、右クリック→Go Fullscreenをした後
ESCキーで元のサイズに戻せなくなるんですが、ESCキーが効くようにするにはどうしたらいいでしょうか?
968デフォルトの名無しさん:2014/04/02(水) 00:56:50.13 ID:kpyeeRem
コールスタックにアクセスしたいのだけどその手のクラスはないのかな
スタックからポップされるのを条件になにか処理をしたい
C++みたいにスタックから取り除かれたらデストラクタ呼び出しとかね
969デフォルトの名無しさん:2014/04/02(水) 01:43:13.18 ID:dJIwdhJE
馬鹿なこといってないで死になさい
970デフォルトの名無しさん:2014/04/02(水) 07:04:39.05 ID:MFjAMFxo
>>968
C++からCOMでCLRをホスティングする
デバッガを作るときのAPIが使える
971デフォルトの名無しさん:2014/04/02(水) 13:36:52.17 ID:M2PvePaN
C#のWebBrowserでプロキシとクッキーを使用してページにアクセスしたいんですが、
Navigateメソッドは使わずに、自前のメソッドを用意してwebBrowserにソースを渡すようにしたいんですがうまくいきません
真っ白になったりページが移動しなかったりします
リンククリックやフォームボタンをクリックした場合に起こるページ移動はどこでキャッチすればいいんでしょうか?教えてください
972デフォルトの名無しさん:2014/04/02(水) 13:48:53.74 ID:pJkiDpq/
試行錯誤しろ
973デフォルトの名無しさん:2014/04/02(水) 13:50:40.37 ID:Upbu7x+/
onbeforenavigate
974デフォルトの名無しさん:2014/04/02(水) 23:57:04.79 ID:kpyeeRem
>>970
いいね
デストラクタ実装出来た
975デフォルトの名無しさん:2014/04/03(木) 00:13:25.78 ID:B/aZWfqA
さすがに実用的ではないだろ
C++みたいな自動disposeがやりたいだけならコンパイル後にILを書き換えるのが筋
976デフォルトの名無しさん:2014/04/03(木) 21:02:39.16 ID:tuuzFS5t
http://www.xrite.com/online-color-test-challenge

このサイトのみたいにPanelを動かしたら他も一つずつずらしたいのですが、
動かすのに良いコントロールは無いでしょうか?

コンボボックスで順番つけて
http://www.moonmile.net/blog/archives/2412
を参考にTextChangedで判定させたり、変更中は二重ループにならないようイベントハンドラを削除しても上手くいきません。
(一緒に動く代わりに、コンボボックスの表示も変わるのでズレる等)

よろしくお願いします。
977デフォルトの名無しさん:2014/04/03(木) 21:12:27.33 ID:dlE7iTTG
ドラッグアンドドロップは基本的に気合で全部自力実装
978デフォルトの名無しさん:2014/04/03(木) 21:42:38.01 ID:9rp45yLz
思えばUIライブラリみたいなのは全然見かけないな

NuGetを見てても思うが、クライアントサイドのプログラムを書いてる奴は基本的にサードライブラリを使わんのだろうな
文化圏が違うのか、単に要らないのか知らんが
979デフォルトの名無しさん:2014/04/03(木) 21:46:19.50 ID:GIAMTqrG
日本みたいにくだらないUIをいつまでも後生大事に使わないからな
ライブラリなんか作ってもすぐ時代遅れになるから無駄なんだよ
980デフォルトの名無しさん:2014/04/03(木) 21:48:17.09 ID:t7YRytS/
UIって考えなきゃいけないことが多いから作れる奴がいない
981デフォルトの名無しさん:2014/04/03(木) 23:19:04.42 ID:gV90hflG
>>980
次スレよろ
982976:2014/04/04(金) 01:02:12.22 ID:nNQZodc0
>>977
今更MDIで作るのも何だけど、
配置を自由に動かしたいし、自動で調節して欲しいって要望があるんですよね・・・。
色々と頑張ってみます。
983デフォルトの名無しさん:2014/04/04(金) 08:04:32.83 ID:KMMdq/A3
984デフォルトの名無しさん:2014/04/04(金) 09:31:49.55 ID:CtMBiGvG
MDI?
985デフォルトの名無しさん:2014/04/04(金) 09:39:10.67 ID:CtMBiGvG
>>976
結果は32だったわ
目がチカチカしてきた
986デフォルトの名無しさん:2014/04/04(金) 11:20:40.70 ID:ZR3OuxhF
987デフォルトの名無しさん:2014/04/04(金) 13:49:43.68 ID:ZIYLiBEI
【プログラミング速報】.NET Frameworkがオープンソース化!MS,Mono,GitHubなどが.Net財団設立へ
http://maguro.2ch.net/test/read.cgi/poverty/1396585709/2
988デフォルトの名無しさん:2014/04/04(金) 19:42:06.35 ID:0KJ+5osJ
989デフォルトの名無しさん:2014/04/05(土) 12:38:34.29 ID:jmoC0q2p
990デフォルトの名無しさん:2014/04/05(土) 12:39:36.02 ID:pfKN98ul
地獄のはじまりである。

MSサポート「ソース見ろ、カス。」
991デフォルトの名無しさん:2014/04/05(土) 12:43:48.45 ID:7w5d8L3B
.NETのソースは数年前から公式に公開されてるんだけど
992デフォルトの名無しさん:2014/04/05(土) 12:47:04.04 ID:0o7rtcHr
公開されてるっていっても、zip にかためてあるものをダウンロードできる、とかじゃないしね
993デフォルトの名無しさん:2014/04/05(土) 13:07:15.83 ID:WZplTJZw
>>991
嘘乙

シェアードソースCLIが最初に出てからもう12年過ぎてます
数年じゃありません
994デフォルトの名無しさん:2014/04/05(土) 13:49:37.57 ID:7w5d8L3B
逆にSSCLIが何年更新されてないと思ってるんだ
995デフォルトの名無しさん:2014/04/05(土) 17:14:17.00 ID:WZplTJZw
君、更新されたかどうかの話をしてたの?
公開されたかどうかの話だと思ってた
書いてある通りに解釈できない日本語って難しいね
996デフォルトの名無しさん:2014/04/05(土) 17:53:06.93 ID:HfzhZYKB
>>993
あんま細かい事気にしてるとハゲるぞ
997デフォルトの名無しさん:2014/04/05(土) 19:05:50.00 ID:7w5d8L3B
>>995
2.0のサブセットが公開されてるだけのSSCLIが正式公開にあたるとは思わないけど、
仮にそうだとしても3.0は非公開なんだから>>991の3.5以降の記述と矛盾しないだろ
998デフォルトの名無しさん:2014/04/05(土) 20:56:49.22 ID:WZplTJZw
思わないなら思わないでいいよ
なんで弁解を始めるんだ?
>>996
999デフォルトの名無しさん:2014/04/05(土) 21:26:23.08 ID:7w5d8L3B
人を嘘つき呼ばわりしといて逃げて終わりとか楽な生き方だね
1000デフォルトの名無しさん:2014/04/05(土) 22:09:16.65 ID:fZTxo1xf
次スレ ふらっとVisual C#,C♯,C#(初心者用) Part111
http://toro.2ch.net/test/read.cgi/tech/1396703308/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。