ふらっとC#,C♯,C#( ..
[2ch|▼Menu]
2:デフォルトの名無しさん
08/03/23 11:08:00
参考サイト。まずはここで検索してから。(次のスレ立てる人は追加していただけるとありがたいです)
URLリンク(google.com)
URLリンク(homepage3.nifty.com)
URLリンク(www.atmarkit.co.jp)
URLリンク(dobon.net)
URLリンク(jeanne.wankuma.com)
URLリンク(www.labasp.net)


3:デフォルトの名無しさん
08/03/23 11:08:46
>>950を踏んだ人は新スレを立てて下さい。
>>950が無理な場合、話し合って新スレ立てる人を決めて下さい。


誰も建てないので立てました。

4:デフォルトの名無しさん
08/03/23 11:09:40
C#, C♯, C#相談室 Part45
スレリンク(tech板)

C♯, C#相談室 Part34
スレリンク(tech板)

【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
スレリンク(tech板)

Windows Live プログラミング
スレリンク(tech板)

初心者のためのプログラミング言語ガイド Part7
スレリンク(tech板)

5:デフォルトの名無しさん
08/03/23 11:13:44
このスレの住人なら知っていますね、あの糞開発ツールのことを

・自分のプログラムのバグなのかコンパイラのバグなのかわからない
・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している
・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている
・糞開発ツールを批判すると「性格が悪いから糞ツールを批判するんだ」と言われる

糞だけど、政治的な理由で無理やり使わされているんですよね。
もう、あんな厨の作った糞ツールを我慢して使うのはやめましょう。

・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。
 上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。
・糞開発ツールを使わせる上司の下では働けません、と上司の上司に直訴しましょう。
・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。
 バグレポートなどしてはいけません。改善要求などもってのほかです。
 あの会社はあなたたちのことをテスター/モルモットとしか思っていません。
・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」
 なんて話が出たら力強く机を叩き、会議室を出ましょう。
 あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。

糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。


6:デフォルトの名無しさん
08/03/23 11:43:10
俺はあの開発ツール使ったら背が5cm伸びて
彼女もできました。宝くじにも当たってびっくり
今更ながらにあのツールのすごいパワーを感じてます

7:デフォルトの名無しさん
08/03/23 11:57:18
>>5
eclipse にだって良い所は沢山あるんだぞ、そんなに悪く言うな

8:デフォルトの名無しさん
08/03/23 11:57:29
俺は糞開発ツール使ったら欝病になって
離婚しました。会社も解雇されてびっくり
今更ながらに糞開発ツールのすごいネガティブパワーを感じてます

9:デフォルトの名無しさん
08/03/23 12:05:24
なんだこの流れw

10:デフォルトの名無しさん
08/03/23 12:10:26
>>3 乙です
次のスレ建てから、それは 1 に書いておきませんか?

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

それと、スレの流れは速い訳では無いので 980 でもいいかと。

11:デフォルトの名無しさん
08/03/23 13:40:11
C# 4.0の情報ってない?

12:デフォルトの名無しさん
08/03/23 13:43:56
>>11
URLリンク(blogs.msdn.com)

13:デフォルトの名無しさん
08/03/23 13:57:21
仕様追加じゃなくてVBみたいに仕様変更されるようになることはないよね?

14:デフォルトの名無しさん
08/03/23 14:02:27
早く言語仕様をくれ
妄想してハァハァしたい

15:デフォルトの名無しさん
08/03/23 14:03:37
消極的なDLRサポートじゃね

16:デフォルトの名無しさん
08/03/23 14:06:20
ヘジがそんなつまらないことをするはずがない

17:デフォルトの名無しさん
08/03/23 14:08:12
      \ │ /
       / ̄\
     ─( ゚ ∀ ゚ )─
       \_/
      / │ \
    ○○○   ○○○
   ○,,・ω・○  ○・ω・,,○
    ○○○   ○○○ o
 o〜(,_uuノ    とuu_,)ノ

     FREE TIBET

18:デフォルトの名無しさん
08/03/23 14:22:14
>>13
アセンブリ単位ならバージョン混在可能だし、それを想定してコードを書きたいところ。
ヤバイ仕様は、拡張すれば当然出現するし、しかしそれを放置しないでサクサク修正して欲しいな。
どこかのタイミングでdelegateは廃棄してラムダ式で統一して欲しいとか、今でも思うし。

19:デフォルトの名無しさん
08/03/23 14:26:36
Expression TreeはなかったことにしてDLRに統合してほしい

20:デフォルトの名無しさん
08/03/23 14:38:54
互換を維持するあまりC++の様になったら悲惨だからな

21:デフォルトの名無しさん
08/03/23 14:40:47
別に匿名メソッドはあっても害はないんじゃないのか

22:デフォルトの名無しさん
08/03/23 14:46:58
というか後で無かったことにするためにあんな面倒な記述にしたとしか思えない

23:デフォルトの名無しさん
08/03/23 14:47:58
同じ機能を持つ別のものが複数個あるのは、コードを書くときに混乱に繋がるから良くないと思うな。
既に憶えている人には良いが、新しくC#を憶える人がC#の歴史を勉強しないとならないという事態になってしまう。
それは良くない、気付けば使える人間はオッサンばっかりという事態に陥るから。

24:デフォルトの名無しさん
08/03/23 14:53:39
>>22
ヘジたんの関数型に対する知識が微妙だっただけでは、匿名でないdelegateにしても
コンテナになっていて複数個のメソッドが登録できるとか
実用的な機能はコレだって言われれば至極なっとくできるが、美しくは無いような。
この理屈不要実用一点張りがC#のいいところだと思うんで。

25:デフォルトの名無しさん
08/03/23 15:01:11
delegateがコンテナである必要なんかあるのかね
delegateがコンテナであっても別に問題ないというのはすごいことなような気はするが

26:デフォルトの名無しさん
08/03/23 15:03:13
確かにマルチキャストはいらない気がするな
イベントの後ろにだけ別途コンテナ用意すればいい

27:デフォルトの名無しさん
08/03/23 15:04:13
>>25
何回でもコード書きやがれ、使いやがれ、頭で考えるな!!

28:デフォルトの名無しさん
08/03/23 15:07:50
イベントであっても2つ以上メソッドを登録したことは無いな

29:デフォルトの名無しさん
08/03/23 15:12:31
自分でデリゲートを結合することなんて滅多にないし
イベントハンドラを登録・結合するコードはどうせコンパイラが自動生成するんだから
全くメリットを感じない

30:デフォルトの名無しさん
08/03/23 15:16:04
タスクシステムを作る場合に楽じゃない?
効率はともかく。

31:デフォルトの名無しさん
08/03/23 15:18:06
使い込みが足らないから理解が迷走するんだよ、例えばフォームのクローズイベントをキャッチしたいコントロールは一体何個あるよ?

32:デフォルトの名無しさん
08/03/23 15:20:27
デリゲートとイベントをごっちゃにしてはいけない
コンテナを別にすればいいだけのこと

33:デフォルトの名無しさん
08/03/23 15:21:45
>>32
そんな事はあとから考えればいいの、今必要なのは何か、これが一番大事。

34:デフォルトの名無しさん
08/03/23 15:29:36
フォームのクローズイベントをキャッチするために
Closedにいくつも+=するなんてことはないだろう
一個のメソッドを書いて、その中に必要な処理を書いていくだろう

35:デフォルトの名無しさん
08/03/23 15:32:56
イベントの呼び出し対象が複数指定できるのはいいけど,
その実装のためにデリゲート自体にコンテナを持たせる必要はない
コンパイラが生成するイベントの実装コードをちょっと変えればコンテナは分離できる

36:デフォルトの名無しさん
08/03/23 15:33:14
>>34
登録されるコントロールが自ら登録するんだよ、アホ

37:デフォルトの名無しさん
08/03/23 15:40:00
>>36
Framework内部のことであれば好きなように実装すればいいだろう
Formが子Controlの仮想OnClosedメソッドでも呼び出すのが自然だと思うがね
Controlは木構造でありAddしたときに親Formがあるかどうかはわからんのだし

38:デフォルトの名無しさん
08/03/23 15:41:53
>>37
イベントとしてクローズを挙げたのは一例に過ぎないぞ
大体だ、何か有るたびにFormにコード書きまくらなければならない、そのコーディングの非効率をどう思うよ?

39:デフォルトの名無しさん
08/03/23 15:45:18
>>38
Frameworkを使う立場の俺は、イベントにメソッドをIDEを使って登録し
Formにコードを書きまくっているが特に何の問題も感じない
ややこしくなれば登録したメソッドから別クラスのメソッドを呼び出すけども

40:デフォルトの名無しさん
08/03/23 15:50:34
マルチキャストが必要だからってデリゲート自体がマルチキャストである必要はないんだよ
そもそもその辺を分離するための機能がイベントなのに

41:デフォルトの名無しさん
08/03/23 16:09:14
URLリンク(www.atmarkit.co.jp)
このページのコード(csargs1.cs)で引数を表示させるプログラムをビルドしてみたのですが、
引数に <"LD"> と入力すると「構文が間違っています」と表示されます。
そのまま引数に<"LD">を文字列として渡すためにはどうすれば良いでしょうか。
どなたか教えてください。よろしくお願いします。

42:デフォルトの名無しさん
08/03/23 16:18:58
そんなことはコマンドプロンプトスレかなんかで聞いてくれ

43:デフォルトの名無しさん
08/03/23 16:20:59
"<\"LD\">" と入力する、コマンドプロンプトの使い方であってC#の問題ではないです。

44:デフォルトの名無しさん
08/03/23 16:25:43
>>42-43
速レスthxです
コマンドプロンプトの構文なんですね、すみませんでした。
>>41で上げた引数はエラーが起こる例で、あるアプリケーションから
このプログラムに引数を渡したいので、文字列は変更できないんです。
後出しになってしまってごめんなさいorz

45:デフォルトの名無しさん
08/03/23 16:27:43
そのアプリケーションから渡す時はエラーにはならないだろう

46:41=44
08/03/23 16:33:57
再ビルドして試行したら出来ましたorz
恥ずかしい><;
>>42-43,>>45さん
親切に教えて下さってありがとうございました!

47:デフォルトの名無しさん
08/03/23 16:35:51
>>46 ここは、そのための初心者用

48:デフォルトの名無しさん
08/03/23 16:38:58
>>37>>40
さすがにこのあたりの意見は暴論にしか聞こえないね。
経験が足りないか知識が足りないんだろうけど。

49:デフォルトの名無しさん
08/03/23 16:43:07
自分がエキスパートだと信じて疑っていない自信満々の人なんだよ
「C#, C♯, C#相談室」にいってドヒンシュク買ってこいって思うよ。

50:デフォルトの名無しさん
08/03/23 18:25:09
見てる人一緒だ

51:デフォルトの名無しさん
08/03/23 19:24:06
一枚の写真から中国のうそを見破る
URLリンク(jp.youtube.com)

52:デフォルトの名無しさん
08/03/23 21:00:16
コピペ君って馬鹿だな、まで読んだ。

53:デフォルトの名無しさん
08/03/23 21:38:39
まあとにかく、マルチキャストデリゲートはデリゲートをややこしくするな

54:デフォルトの名無しさん
08/03/23 21:44:10
そうか?

55:デフォルトの名無しさん
08/03/23 22:02:06
WPFのルーティングイベントなんかはマルチキャスト使わない実装になってるね

56:デフォルトの名無しさん
08/03/23 22:48:17
救いようのないバカがいるな

57:デフォルトの名無しさん
08/03/23 23:33:37
俺はデリゲートってマルチスレッド対応でしか使ってないわ

58:デフォルトの名無しさん
08/03/24 01:51:22
例外について質問です。
プログラム自身以外が原因で発生する例外はいろんな種類があっていいと思うんですが
コードのバグに起因する例外って細分化する必要があるんでしょうか?
例えばパラメータが異常,switchで本来ありえないdefaultに到達してしまった,
foo()を呼ぶ前にbar()を呼んでしまった、といったバグにそれぞれ別の例外を割り当てて
catchしたりしなかったり、catchした時に処理の内容を変えるといったことはありえるんでしょうか。
それともバグと外的な要因で発生する例外の種類を分けること自体無意味ですか?

文法的な使い方は一応理解したつもりなんですが、
どこでどんな例外をthrowするべきかというのがいまいちよくわかりません。

59:デフォルトの名無しさん
08/03/24 02:49:51
dataGridViewで
行選択したときに送られるイベントって何ですか?

60:デフォルトの名無しさん
08/03/24 03:38:20
>>58
論理的に有り得ない状況(e.g. コーディングミス、仕様外の利用)を
検出するのが目的ならアサーション使え
cf. System.Diagnostics.Debugクラス

61:60
08/03/24 03:47:49
補足
仕様外の利用ってのはクラスなどの内部で閉じてる場合ね
外部に公開されるメンバなら例外投げる方が適切

62:デフォルトの名無しさん
08/03/24 04:02:55
内部的にバグを検出するチェックをすべてDebug.Assertにしたとしてリリース後はどうしてる?
バグを見つけるためというよりも万一バグった後の処理を続行させない為という意味合いの何か良い例外ってあるのかな。
自分そこらへん結構いい加減だw

63:デフォルトの名無しさん
08/03/24 04:31:11
      \ │ /
       / ̄\
     ─( ゚ ∀ ゚ )─
       \_/
      / │ \
    ○○○   ○○○
   ○,,・ω・○  ○・ω・,,○
    ○○○   ○○○ o
 o〜(,_uuノ    とuu_,)ノ

     FREE TIBET

64:デフォルトの名無しさん
08/03/24 08:08:46
コピペ君って馬鹿だな、まで読んだ。

65:デフォルトの名無しさん
08/03/24 10:49:33
とりあえずInvalidOperationExceptionが定番じゃね

66:デフォルトの名無しさん
08/03/24 15:18:05
>>65
InvalidOperationExceptionは、不当な操作では?
その操作が出来る状態になっていないのに、操作した場合の例外。

>>59
誰もレスつけないので、自分も知らないのですが、こんなやり方をしています。
RowEnter で操作開始を検出して、各種プロパティーをみるという手を良く使っています。
SelectedCells を読めばいけるんじゃないかなと思のですが・・・今で試せる環境がないので試してません。
RowEnter タイミングが微妙なので、類似の別のイベントの方が良いかもしれません。

67:デフォルトの名無しさん
08/03/24 15:20:31
>>66
それを不当な操作というんじゃないのか?

68:デフォルトの名無しさん
08/03/24 15:22:13
>>67
内部的バグに対する例外ではないよと言ったつもりなのですが・・・

69:デフォルトの名無しさん
08/03/24 15:53:14
まあ例外は適当でいいよというのがC#の思想なのだろうから
適当でいいんだと思うがな
catchされないような例外に何を投げようと関係ないんじゃないか?

70:デフォルトの名無しさん
08/03/24 16:02:07
バカ

71:デフォルトの名無しさん
08/03/24 16:08:33
DirectXだとInvalidOperationExceptionは本当に適当に飛んでくるよw

72:デフォルトの名無しさん
08/03/24 16:18:35
使い方が間違っているなら飛んでくるのは当然じゃね?

73:デフォルトの名無しさん
08/03/24 16:50:22
Nullable<bool>をifの条件に使うとき,if (value == true)とするのが適切?
この書き方好きじゃないんだけどboolにキャストしたりValueプロパティにアクセスすると
nullのときに例外が発生する

74:デフォルトの名無しさん
08/03/24 16:51:34
Javaはガチガチすぎて
C#はむちちゅじょに過ぎる

75:デフォルトの名無しさん
08/03/24 17:05:04
ガチムチ兄貴Java

76:デフォルトの名無しさん
08/03/24 17:06:44
>>73
if (value.GetValueOrDefault(false))
とか
if( value ?? false)
で良いんじゃない?

77:デフォルトの名無しさん
08/03/24 17:13:37
>>73
Nullable使っててキャスト時に例外がとんでくる?
使い方を根本的に間違ってねぇかそれ・・・。

78:デフォルトの名無しさん
08/03/24 17:15:16
nullのときにキャストしたら例外飛ぶだろ…

79:デフォルトの名無しさん
08/03/24 20:00:16
>>59>>66
SelectionChangedイベントでSelectedRowsを読む

>>62
一部または全部をTrace.Assertにすれば


80:デフォルトの名無しさん
08/03/24 20:08:33
>>76
value??falseいいね

81:デフォルトの名無しさん
08/03/24 21:43:58
固定長でテキストファイルを書き出したいのですが、どうすれば良いのでしょうか?
例えばシフトJISで最初の40バイト目までが項目A、41バイト目から項目Bというような感じです。
string.Format("{0,40}{1}",a,b)
として書き出しても、全角文字が混じるとその分だけずれてしまいます。

1文字ずつ全角か半角かチェックしながらカウントして、埋める空白の文字数を計算して出すしかないのでしょうか?

82:デフォルトの名無しさん
08/03/24 21:49:08
Encoder

83:81
08/03/24 22:18:30
>>82
シフトJISのEncoderを使ってバイト数を調べて、空白は自分で補うということでしょうか。
もう少し調べてみます。ありがとうございました。

84:デフォルトの名無しさん
08/03/24 22:22:39
固定長とかキモイ

85:デフォルトの名無しさん
08/03/25 09:54:23
string a = "URLリンク(192.168.0.1)"001".txt";
webBrowser1.Navigate(new Uri(a));

data1 にはランダムな値が入る場合
URLリンク(192.168.0.3)"data1".txt
の用にしてdata1によって違うページを開かせたい場合はどのように記述すればいいのでしょうか?

86:デフォルトの名無しさん
08/03/25 09:57:00
最後のところ入力ミスです><
×192.168.0.3
○192.168.0.1

87:デフォルトの名無しさん
08/03/25 10:14:47
多分 String.Format の出番

88:デフォルトの名無しさん
08/03/25 10:22:14
string a = "URLリンク(192.168.0.1)" + data1 + ".txt";
webBrowser1.Navigate(new Uri(a));

でいいんじゃないの?

89:デフォルトの名無しさん
08/03/25 10:28:33
>>87-88
有り難う御座います。>>88の方法で出来ました。

90:デフォルトの名無しさん
08/03/25 10:31:10
あ、001みたいに0を入れたいわけか
string a = ("URLリンク(192.168.0.1)",data1);

91:デフォルトの名無しさん
08/03/25 11:58:07
>string a = "URLリンク(192.168.0.1)" + data1 + ".txt";
フォーマットプロバイダ通さないやり方がちょっとキモイな

92:デフォルトの名無しさん
08/03/25 11:59:28
C#も便利表記が増えすぎてスクリプト言語並にわけがわからなくなりつつあるな

93:デフォルトの名無しさん
08/03/25 12:03:15
5年後VBに統合されVB#になります ^^)

94:デフォルトの名無しさん
08/03/25 12:09:37
その前にまずWebインストールさせろ!
1Gなんてダウンロードしたくない

95:デフォルトの名無しさん
08/03/25 12:10:48
>5年後VBに統合されVB#になります ^^)
VBのコードも多いから、混合して書ける機能があると大助かりというのが実あったりするけどな
class X
{
 void F()
 {
  #lang VB
  ・・・・
  #endlang

 }
}
#lang VB
・・・・
#endlang
こんな感じで、要望してみるかな。

96:デフォルトの名無しさん
08/03/25 12:25:14
>>90
こんな表記あんの?

97:デフォルトの名無しさん
08/03/25 12:29:42
形式指定だっけ?Cで言うprintfみたいなやつ

98:デフォルトの名無しさん
08/03/25 12:30:16
俺の環境じゃコンパイル通らんぞ

99:デフォルトの名無しさん
08/03/25 12:30:26
VBみたいな構文には違和感しか感じないんだよな。
別に個人でやってるだけだからどうでもいいんだが、統合されたら他の言語に移るしかないな

100:デフォルトの名無しさん
08/03/25 12:32:32
うん。VBはまだ慣れない。あの構文はきもすぐる

101:デフォルトの名無しさん
08/03/25 12:33:02
>>96
無いよ
string.Formatを忘れてるだけだろ

102:デフォルトの名無しさん
08/03/25 12:33:22
string a = string.Format( "URLリンク(192.168.0.1)" , 12 );
だな、その場で書いたなw

103:デフォルトの名無しさん
08/03/25 12:36:03
>>99-100
さようなら、VB統合と言わず、今すぐそのままJavaへなり移行されてくださいw

104:デフォルトの名無しさん
08/03/25 12:36:39
VB厨が暗躍しているな

105:デフォルトの名無しさん
08/03/25 12:42:59
VB チューハイ
C# 水割り
C++ ロック
C ストレート

106:デフォルトの名無しさん
08/03/25 12:43:27
構文は慣れればVBの方が読みやすいと俺は思うけどね。
まあ改行=行の終わり、とか細かい点で気持ち悪い点は確かにいくつかあるけど。

107:デフォルトの名無しさん
08/03/25 12:44:16
変数名の後に型名を書く方が自然な気がする
VBの方が好きな点はそれだけ

108:デフォルトの名無しさん
08/03/25 12:46:13
もともとnewするときに型名を2回書くなんて不合理以外の何者でもなかったからな
varが出来て状況はだいぶ改善したけど

109:デフォルトの名無しさん
08/03/25 12:47:30
今0から作り直すとしたら
var a as string = "a"とか
var a : string = "a"みたいになりそうだな

110:デフォルトの名無しさん
08/03/25 12:47:35
>>107 どうぞ、C# 3.0です。
var hinsuumei = new Katamei();

111:デフォルトの名無しさん
08/03/25 12:48:10
C# 4.0からは変数名から型名を推論する機能がつきます
var font = new;

112:デフォルトの名無しさん
08/03/25 13:06:44
>>111
ちょっと欲しい気はするな、それだと型の推論のしようがないが
var = instance1@System.Drawing.Font new ;
使うときは
instance1@System.Drawing.Font or instance1@Drawing.Font or instance1@Font or instance1
衝突がなければ通るとか、オブジェクト指向になって以来ハンガリアン記法が役立たずになっているが
これなら型名が増えても困る事はないし、分りきっている場所で不必要に型名を書いてかえって読みずらい事にもならないような……気がする。

113:デフォルトの名無しさん
08/03/25 13:11:28
使い方で推論すればおk
コンパイルエラーとする下限の確率をコンパイラのパラメータで指定する

114:デフォルトの名無しさん
08/03/25 13:13:48
キチガイこえー

115:デフォルトの名無しさん
08/03/25 13:21:04
C#でシェル拡張書いてみたいんだけど参考になる記事とか無い?

116:デフォルトの名無しさん
08/03/25 13:28:24
Public Class foo()
{
 foo()
 {
  ・・・・
 }
 hoge{get; set;}
 honya{get; set;}
 hogehoge{get; set;}
}

Public Class hoo()
{
 List<foo> list = new List<foo>();
 ・・・・・・
}

Public Class puu()
{
 List<hoo> list2 = new List<hoo>();
 ・・・・
}

こういうリストのリストを使うんですが、これを単なるリストに展開するにはどうしたらいいのでしょうか?


117:デフォルトの名無しさん
08/03/25 13:33:06
list2.SelectMany(hoo=>hoo.list).ToList()
2.0なら2重のループで新しく作ったリストに自分で追加していく

118:デフォルトの名無しさん
08/03/25 13:37:14
>>115
高度な話題になるから、ソレらしい所に行くべし
きわどい問題も累積している。

119:デフォルトの名無しさん
08/03/25 18:38:12
入力された数字を大きい順番に並べるプログラムですがbを一番大きくなるよう入力すると重複してますといわれます。どなたか理由をおしえてください
public static void Main()
{
START:
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int c = int.Parse(Console.ReadLine());
if (a > b)
{if (a > c){if (c > b){Console.Write("{0}{1}{2}", a, c, b);
}else{
Console.Write("{0}{1}{2}", a, b, c);
}
}else{
Console.Write("{0}{1}{2}", c, a, b);
}
}else{
if (b > c)
{
if (a > c)
{
Console.Write("{0}{1}{2}", b, a, c);
}else{
Console.Write("{0}{1}{2}", b, c, a);
}
}
if (c > a && c > b)
{
Console.Write("{0}{1}{2}", c, b, a);
}else{
Console.Write("数字が重複していますカエレ");

120:デフォルトの名無しさん
08/03/25 18:43:14
C#ってboolを数値で扱えないんだ・・・

121:デフォルトの名無しさん
08/03/25 19:06:46
>>119
自分が入力した値でどこを通るか辿っていったらわかるだろ
とりあえず整形しなさい

122:デフォルトの名無しさん
08/03/25 19:11:45
>>119
当たり前じゃん。bが一番大きかったらc>bを満たすはずがない


123:デフォルトの名無しさん
08/03/25 19:14:13
>>119
if文をちゃんと理解してる?

124:デフォルトの名無しさん
08/03/25 19:26:09
それより START: が気になる
goto START; とかやるつもりなんだろうか

125:デフォルトの名無しさん
08/03/25 20:19:25
>>120 C#でなくてもboolと宣言しておいて数値の意味でぶち込むとかヤメロ馬鹿
>>119 そのコード、コンパイル通らない。

126:デフォルトの名無しさん
08/03/25 20:21:04
.tonumeric()でも定義してろ

127:デフォルトの名無しさん
08/03/25 20:34:17
List<int>に突っ込んで.Sort()で済むだろ。

128:デフォルトの名無しさん
08/03/25 20:34:38
指定した位置(ウィンドウ外の場合も)にコンテキストメニューを表示したいのですがどうすればいいのでしょうか?


129:デフォルトの名無しさん
08/03/25 20:39:35
Showのオーバーロードを調べる作業に戻るんだ

130:デフォルトの名無しさん
08/03/25 20:49:08
どうもありがとうございます。
URLリンク(www.labasp.net)
で見つけました。
もうひとつ質問があるのですが、これはウィンドウ外でも表示出来るのでしょうか?

131:デフォルトの名無しさん
08/03/25 20:57:30
聞く前に試せ。な。

132:デフォルトの名無しさん
08/03/25 20:59:40
すいません。今はその環境が無いもので...

133:デフォルトの名無しさん
08/03/25 21:29:42
知るか

134:デフォルトの名無しさん
08/03/25 21:31:59
環境がないなら今聞く必要もないな?

135:デフォルトの名無しさん
08/03/25 21:34:27
URLリンク(msdn2.microsoft.com)(VS.80).aspx
ここに書いてありました。どうもすみませんでした。

136:デフォルトの名無しさん
08/03/25 21:37:40
>>127
彼は別にソートしたいんじゃなくて、勉強したいんだろ

>>119
意図したとおりにならなかったら
デバッガで1ステップずつ実行して違う場所を探せばいい
その時点の変数の値も確認できる

137:デフォルトの名無しさん
08/03/25 21:58:32
ちょっと質問です。。。
PixtureBoxに点(1ドット)を打ちたいのですが、方法が分かりません。
ご教授いただけると幸いです。

138:137
08/03/25 22:02:41
すみません説明がおかしかったです。
PictureBoxで描写しているBitmapにです。
Graphicsに落として、線を引いたりはできるのですが、指定した一点にだけ描写する方法が分かりませんm(_ _)m


139:デフォルトの名無しさん
08/03/25 22:18:48
>>137
Bitmap.setpixel()

140:デフォルトの名無しさん
08/03/25 22:20:34
縦横1pxの四角形を描くって手もあるな

141:137
08/03/25 23:12:37
>>139-140
できました。ありがとうございます。
Bitmapにあったんですね(^^;
JavaのノリでいたのでGraphicsにあるものだと思い込んでました。。。

縦横1pxの四角形を描こうとすると、縦横2pxの四角形になってしまいました。。。orz

142:デフォルトの名無しさん
08/03/25 23:54:29
Stack<Hoge> hoges;で
中身を取り出したときに確実に葬り去るにはどうすればいいの?

143:デフォルトの名無しさん
08/03/25 23:55:40
なんか日本語でおkな質問が最近多いような。。

144:デフォルトの名無しさん
08/03/26 00:17:41
メモリをゼロクリアすれば確実だろう。だがちょっと待って欲しい。ここではデータ取り出しをしている。
それらを考えると放射線でメモリをROMとして焼き付けるのが一番ではないだろうか?


145:デフォルトの名無しさん
08/03/26 00:30:46
hoges.pop().Dispose();

146:デフォルトの名無しさん
08/03/26 02:07:20
>>142
>葬り去る
この意味を書け、何をしたいのかハッキリさせろ、話はそれからだ。

147:デフォルトの名無しさん
08/03/26 03:13:02
staticクラスおよびそのクラスのstaticメソッドや
staticでないクラスのstaticメソッドはプログラム内
で全く使われてなくてもメモリ上に読み込まれる?

148:デフォルトの名無しさん
08/03/26 08:51:02
>>146
ゆとりか

149:デフォルトの名無しさん
08/03/26 09:06:39
>>148
146じゃないけど、142がどの程度C#とStackのことをわかってるのかがわからない以上、
俺も何をしたいのかわからない。
ひょっとするとhoges.Peek()にしか気づいておらず、スタックから消す方法を聞きたいのかもしれない。
hoges.Pop().Hoge()とかのように、そのまま使ってしまいDispose()を呼び出せないと思いこんでいるのかもしれない。
いろいろ考えられる。

150:デフォルトの名無しさん
08/03/26 10:24:07
>>148
オブジェクトの破棄の意味と仮にエスパーしても何段階かあるぜ、どれなんだい?役立たずの爺さんよぉ。

151:デフォルトの名無しさん
08/03/26 10:32:25
>>147
JITの勝手、作る側は意識しない。
今現在どうなっているのかというなら、アセンブリ単位で読み込まれているようだ。
用語の意味や詳細がわからないなら以下を読め、ただしプログラム初学者には難易度は高いぞ。
URLリンク(www.atmarkit.co.jp)

152:デフォルトの名無しさん
08/03/26 10:45:34
>>147
メモリ上に読み込まれるのと、型として評価されるのと、
特定のメソッドがJITでコンパイルされるタイミングはどれも違う。
型として評価されるタイミングならスタティックイニシャライザに
WriteLineを仕込んでみると近似できると思うよ。

153:デフォルトの名無しさん
08/03/26 11:41:00
C++でStack.Popが例外安全に作る方法が無いというのが
C#でどのように克服されてるかという話かもしれない

154:デフォルトの名無しさん
08/03/26 11:54:34
克服もなにも例外が非安全になる言語はC++だけだ、そもそも例外の実装に失敗している
C++では、例外を使わないという事を検討すべきだな、故障中と書かれた蛇口をひねるような真似はすべきでない。
この話題は、もはやスレ違いだ 147 は死ねって事でFA。

155:デフォルトの名無しさん
08/03/26 12:04:22
>>147
使われる前には読み込まれていなければならない
具体的なタイミングは実装依存だったと思う

156:デフォルトの名無しさん
08/03/26 12:05:16
いやいやC#だって基本保証すらないメソッドを作れる。
作るほうが難しいけど。
C++はただなんでも値渡しでコピーするから
例外投げないメソッドが作りづらいだけじゃないか、それが致命的なんだけど。

157:155
08/03/26 12:07:03
メソッドのことだったのか
>>155は変数の中身のことだから忘れてくれ

158:119
08/03/26 13:10:19
20行目と22行目の下にgoto文入れたら解決しました。
ついでにもうひとつ質問ですがデバッガはどこを押せばできますか?
使ってるソフトはMicrosoft Visual C# 2008です。
おしえてください

159:デフォルトの名無しさん
08/03/26 13:16:24
こんなコードにgoto文使うなよ

160:デフォルトの名無しさん
08/03/26 13:18:56
switchと多重ループ抜けるとき以外はgoto使用禁止
デバッグは止めたいところにカーソル置いてF9を押してブレークポイントを追加してからF5

161:デフォルトの名無しさん
08/03/26 13:19:54
このコードでごとぅって思考放棄じゃね?

162:デフォルトの名無しさん
08/03/26 13:25:15
どこの初心者サイトや入門書でもgotoをはじめに教えるなんてありえないけど
goto使いまくるような言語から入った人なのかな

163:デフォルトの名無しさん
08/03/26 13:28:14
gotoは大域gotoじゃなきゃ別に危険じゃないんだぞ

164:デフォルトの名無しさん
08/03/26 13:31:44
昨今、危険かどうかというより可読性の問題が大きい。

165:デフォルトの名無しさん
08/03/26 13:35:50
gotoはスパゲッティーコードの元。

166:デフォルトの名無しさん
08/03/26 13:36:41
上向きのgotoはコンパイルエラーでもいいと思う

167:デフォルトの名無しさん
08/03/26 13:36:49
>>158,119
考えられるケースを書き出してからコード書き始めると漏れがなくなる。

abc
123
132
213
231
312
321

あと重複チェックは先頭でやってしまったほうがいいな。
正しくない入力データはなるべく早く排除しておいたほうがいい。
というのを踏まえてgoto抜きで書き直してみ。
別に使っちゃいけないわけじゃないがこのケースで使う必要は0。

それからgotoネタは他所でやった方がレスの共通化が図れて効率的。

168:デフォルトの名無しさん
08/03/26 13:37:12
goto使いまくる言語ってどんなだよ
スクリプト系か

169:デフォルトの名無しさん
08/03/26 13:37:16
一つの関数を巨大にしない限り
gotoでスパゲッティになることもない
問題なのは巨大な関数の方でgotoじゃない

170:デフォルトの名無しさん
08/03/26 13:42:31
>>168
HSPとかかなぁ。よく知らないけど。

171:デフォルトの名無しさん
08/03/26 13:42:52
あーHSPはgoto使いまくるね

172:デフォルトの名無しさん
08/03/26 13:43:39
gotoを使うべきところはあるが、どう見ても>>119は使うべきでない所だろ。
スパゲティとかいうレベルじゃなく場当たり的に回避してるだけだ

173:デフォルトの名無しさん
08/03/26 13:45:43
複雑なifとか多重ループはわかりにくいから
避けられるなら避けるべきだ

174:デフォルトの名無しさん
08/03/26 13:59:25
このスレには、チームで開発しててコードの書き方に異様にこだわる人がいる。
チームのメンバとか、他社へ納品するとか、他人が見る可能性がある場合は、
そういうことに気をつける必要はある。

だが、個人で書いてて誰にも見せないなら、どんな書き方をしようが個人の自由。
気にするな。

でもgotoは、COBOLとRPGでreturnとかcontinueとかbreakとかがなくて
仕方なく使ってたのが最後だな。

175:デフォルトの名無しさん
08/03/26 14:08:13
ラベル付きbreakがあれば下向きgotoやめてもいいな。

176:デフォルトの名無しさん
08/03/26 15:25:52
時間を取得して、 以下のような処理をさせたいのですが、
時間のみの取得がどうすればいいのか分かりません。
long tick = DateTime.Now.Ticks;
DateTime d = new DateTime(tick);
というサンプルを見つけたのですが、これでは年〜秒まで取得してしまします。
どのようにすればよいかご助言下さい。
if(4時<時間<=11時)
{
          処理1
}
else if(11時<時間<=16時)
{
処理2
}
else
{
処理3
}

177:デフォルトの名無しさん
08/03/26 15:39:32
DateTime.Now.Hour
つかDateTime構造体をちゃんと調べれ

178:デフォルトの名無しさん
08/03/26 15:41:31
>>174
どうみても>>119は初心者なんだから個人の自由とかの議論の前にみんなが指摘してやってるだけだと思うよ。

179:デフォルトの名無しさん
08/03/26 15:51:03
C#でgetchar();に相当する物ってなんでしょうか?
C言語で入力を待って実行するのに便利だったのですが。

180:デフォルトの名無しさん
08/03/26 15:51:48
>>177
ありがとうございます。

181:デフォルトの名無しさん
08/03/26 15:53:35
Console.Read()

182:デフォルトの名無しさん
08/03/26 15:54:34
>>179
URLリンク(msdn.microsoft.com)

183:デフォルトの名無しさん
08/03/26 15:58:27
>>181-182
thx

184:デフォルトの名無しさん
08/03/26 17:08:51
Enum型のみを指定できるジェネリッククラスを作ろうと思ったのですが、whereでEnumを指定できないため、
Where T : Typeとしました。
このとき、TがEnumから派生したものでない場合、例外を投げるにはどの例外を投げたらいいでしょうか?
ArgumentExceptionにメッセージでEnumを継承してないからだめって書いて投げてもいいのでしょうか?

185:デフォルトの名無しさん
08/03/26 17:13:50
where T : structだろ
例外はなんでもいいんじゃね
どうせ実行時には発生しちゃいけないはずなんだから

186:184
08/03/26 17:14:26
すいません、where T : Typeは余計でしたので、無視してください orz
whereは指定していませんが、上記の場合、どの例外を投げるのが適切なのでしょうか?

187:デフォルトの名無しさん
08/03/26 17:42:29
みんなが作った
Windows コントロール ライブラリ
見れるところってありますか?

188:デフォルトの名無しさん
08/03/26 17:49:20
>>186
where T : structにしといたほうがいい
TEnumのほうがいいかも
ArgumentExceptionはメソッドの引数の例外だからExceptionかその直接の派生クラス作って投げたら

>>187
codeplexとかcodeprojectとか

189:デフォルトの名無しさん
08/03/26 18:04:48
>>185
コンパイルエラーにできないということはそういう使い方をするなということなんでしょうかね…

>>188
TypeLoadExceptionというものを見つけたんですが、これはまた別物なんでしょうか?

それと、お二方のご指摘通り、where T : structを指定しました。
ありがとうございます。

190:デフォルトの名無しさん
08/03/26 20:05:00
private List<string> GetList()
{
List<string> list = new List<string>();
return list;
}


List<string> list = GetList();にするとnullが返って来てエラーとなります。
こういうものなのですかね?。

191:デフォルトの名無しさん
08/03/26 20:16:07
>>190
ちょw

192:デフォルトの名無しさん
08/03/26 20:17:07
>>190
それはおかしい
そのコードでnullが返ることは無い

193:デフォルトの名無しさん
08/03/26 20:17:48
>>156
>例外投げないメソッドが作りづらいだけじゃないか
具体的に例外安全とならない例をひとつ挙げてみてもらえないか?
不可能だと思ったので、すこし興味深い。

194:デフォルトの名無しさん
08/03/26 20:19:01
>>190
クリーン再インストールすると治るんじゃないかなw

195:デフォルトの名無しさん
08/03/26 20:22:40
C#で作っているプログラム aaa.exe から
別のプログラム bbb.exe 上の
ボタンを自動で押したいのですが、どうやればいいのでしょうか?


196:デフォルトの名無しさん
08/03/26 20:25:44
>>195
セキュリティー上の重大な問題を引起こす、その種の操作は一般にはできない。
無理すればできるが、かなり高度な話題、相互運用でググれ。

197:デフォルトの名無しさん
08/03/26 20:31:34
>>195
bbb.exe側のソースをいじれるなら .NETリモート処理で対応する。
できないなら>>196のいうとおりAPIいじくるしかない。

198:190
08/03/26 20:40:43
やはりおかしいですよね・・・。私も不思議だったので投げてみました。
家族の夕食を作って食べてから出直してきます。

みなさん、ありがとう。

199:デフォルトの名無しさん
08/03/26 20:55:52
コンソールアプリケーションだとこのようなコードがコンパイル出来ません。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(f());
}

private int f()
{
return 10;
}
}
}
f()をstaticなメソッドにすれば問題ないのですが何故ですか?
フォームアプリケーションではstaticでなくても問題ないみたいですが…。

200:デフォルトの名無しさん
08/03/26 20:58:39
>>196>>197
bbb.exeはいじれないです。
APIでいじる方法のキーワードとなりそうなググり方でも教えていただけると嬉しいです

201:デフォルトの名無しさん
08/03/26 21:02:33
>>199
フォームアプリケーションでは、
ウィザードが生成するコードの中でインスタンスを作っている。
コンソールアプリケーションでは、自分でインスタンスを作らないといけない。
static void Main(string[] args)
{
Program p = new Program;
Console.WriteLine(p.f());
}


202:デフォルトの名無しさん
08/03/26 21:08:47
>>201
ありがとうございました!
Mainのあるクラスですらインスタンスを作らなくちゃいけないんですね。
たしかにstaticなのはMainだけだからそうなんだろうけど自分自身を作るみたいで変な感じ^^;

203:デフォルトの名無しさん
08/03/26 21:16:13
そういえばVS2003以前はフォームのクラスの中にMainがあったよな
当時は何の疑問も感じずに使ってたけどProgram.csに慣れると
コンポーネントの中にエントリポイントがあるっておかしいだろ普通に考えて

204:デフォルトの名無しさん
08/03/26 21:20:44
>>200
URLリンク(www.microsoft.com)
APIの使い方が分らないというならキッパリ諦めた方がいい。

205:デフォルトの名無しさん
08/03/26 21:44:19
>>200
FindWindow系で対象のボタンのウインドウハンドルを探して
クリックしたメッセージを送るか、マウス操作をエミュレート

206:デフォルトの名無しさん
08/03/26 22:06:39
>>204>>205
対称となるウィンドウ(ボタン)は固定なので、SendMessageくらいで出来ると嬉しいです。
Spy++のように座標が取得できればマウス動かしてやろうかな
などと考えております

207:デフォルトの名無しさん
08/03/26 22:21:50
>>206
ならDllImportAttributeあたりを調べてみるといい

208:デフォルトの名無しさん
08/03/26 22:33:49
>>206
対象のウィンドウのウィンドウハンドル取得後、
GetWindowRectで対象ウィンドウの現在位置を取得して、
対象ウィンドウの左上座標からの相対位置から、スクリーン座標を求めた後に、
WindowFromPointでボタンのウィンドウハンドルを取得し、
SendMessageでキーのアップダウンメッセージなりマウスのアップダウン(クリック)メッセージなりを
送ればいいとおもわれ

209:デフォルトの名無しさん
08/03/26 22:37:07
BOTでも作るの?

210:デフォルトの名無しさん
08/03/26 22:38:14
BOTなんてやるならクライアントをエミュレートした方が早いだろ。

211:デフォルトの名無しさん
08/03/26 22:44:30
つか、このレベルの事をやりたいのなら、ここじゃなくてふさわしいスレッドへ行けよ
さらに言うなら、この程度自力でなんとかしやがれ。

212:デフォルトの名無しさん
08/03/27 00:08:19
C#というのは、名前とは違い、CとC++のどちらにも互換性が無いのだろう。
ANSIの標準ライブラリは、何一つC#では使えないんだろうな。
それなら、VB.NETのほうが良いのでは。
VBを知らない人のための言語のように思えるが。

213:デフォルトの名無しさん
08/03/27 00:22:28
コンパイラ エラー CS0274 って別にエラーにする必要なくね?

public int Property
{
  get { return hoge; }
  private set { hoge = value; }
}
より

public int Property
{
  public get { return hoge; }
  private set { hoge = value; }
}
のほうがシンメトリックだし。

214:デフォルトの名無しさん
08/03/27 00:33:21
>>213
ヘジたんの御心のままです

215:デフォルトの名無しさん
08/03/27 00:39:46
わざわざ、public書く必要もないが、禁止するほどのことでもないな。

216:デフォルトの名無しさん
08/03/27 01:09:01
C#で電子メールクライアントを作っているのですが、Windowsの右クリックメニューにある
「送る」->「メール受信者」という項目から通常使うメーラとして起動したいのですが、

HKEY_LOCAL\SOFTWARE\Clients\Mail\nullmail\Protocols\mailto\shell\open\command
HKEY_LOCAL\SOFTWARE\Clients\Mail\nullmail\shell\open\command

などのレジストリを書き換えても動いてくれません。
IEの通常使うメールソフトの設定には表示されているのですが、なぜか起動すらしてくれないのです。

Gmail等のWebメールでURLに引数を付けて呼び出す方法などだと動くのですが、
.NETでメールを書く場合には何かルールがあるのでしょうか?

217:デフォルトの名無しさん
08/03/27 02:52:38
初めてプログラムを学ぶ者です。
C#を使えるようにしたいのですが、
どのように勉強するのが効率的なのでしょうか?

一応、15日ほど前にC#の絵本というのを買って
Micro Soft Visual Studio C# 2005 Express Edition
というツールを使いながら読み進めているのですが、
サンプルプログラムに省略されている部分が多くてよくわからないのです。

218:デフォルトの名無しさん
08/03/27 08:47:31
TreeNode[] tn = treeView.Nodes.Find(key, true);

これってつまり重複したキーが使えるという事なのでしょうか?
今まで気づかなかったorz

219:デフォルトの名無しさん
08/03/27 09:05:21
テトリスを作ってみたいのですが少し調べてみたらXNAとDirectXと2つあるようです。
どちらで作ればよいのでしょうか?

220:デフォルトの名無しさん
08/03/27 09:27:17
XNA・・・xbox360でも動く、資料少ない。将来性あるのか謎。
      PCだと、XNAランタイムみたいなの入れてないと動かないPO
DirectX・・・資料多い。ややめんどくさいかも。PCだけだとこっちの方が動く環境多い


221:デフォルトの名無しさん
08/03/27 09:28:00
テトリスレベルならGDIでいいんじゃね

222:デフォルトの名無しさん
08/03/27 09:29:56
C#でDirectXつかう利点あるの?
C++つかったほうが

223:デフォルトの名無しさん
08/03/27 09:36:15
とりあえず何か作ってみたいのです。

224:デフォルトの名無しさん
08/03/27 09:45:54
>>223
じゃあどっちでも良いじゃん


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4332日前に更新/161 KB
担当:undef