5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2009/12/10(木) 10:00:38
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

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

前スレ

ふらっとC#,C♯,C#(初心者用) Part49
http://pc12.2ch.net/test/read.cgi/tech/1259383252/

関連スレ

C#, C♯, C#相談室 Part55(実質56)
http://pc12.2ch.net/test/read.cgi/tech/1260111240/

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
http://pc12.2ch.net/test/read.cgi/tech/1245384489/

2 :デフォルトの名無しさん:2009/12/10(木) 10:00:51
参考サイト

http://www.google.co.jp/
http://msdn.microsoft.com/ja-jp/library/default.aspx
http://homepage3.nifty.com/midori_no_bike/CS/
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
http://dobon.net/vb/dotnet/
http://jeanne.wankuma.com/tips/
http://www.labasp.net/CsharpNote/

3 :デフォルトの名無しさん:2009/12/10(木) 10:04:06
げと

4 :デフォルトの名無しさん:2009/12/10(木) 10:25:16
前スレ>>979
すまん、編集した「行番号」の色を変えるのは無理だ

5 :デフォルトの名無しさん:2009/12/10(木) 10:47:30
arraylistのグローバル化の仕方を教えてください

6 :デフォルトの名無しさん:2009/12/10(木) 10:49:22
グローバル化とか俺用語使われると困ります

7 :デフォルトの名無しさん:2009/12/10(木) 10:56:26
グローバル変数みたいに使いたいとかじゃなくて?

public class Hoge
{
public static readonly ArrayList Array = new ArrayList();
}

public class Huga
{
public int HogeCount { get { return Hoge.Array.Count; } }
}

8 :デフォルトの名無しさん:2009/12/10(木) 10:57:52
>>6
すみません。
1つのarraylistを2つのFormをまたいで共有したいのですがやりかたがわかりません


9 :デフォルトの名無しさん:2009/12/10(木) 11:01:42
・片方にパブリックプロパティとして持たせて、もう片方から参照する
・親Formがいるなら親のプロパティにしてみる
・Formのコンストラクタ変更してArrayListを作成時に引数として渡す

どれか

10 :デフォルトの名無しさん:2009/12/10(木) 11:03:57
>>9
ありがとうございます。
これから試します。

11 :デフォルトの名無しさん:2009/12/10(木) 11:04:52
わかんないなら>>87でおk
わかんないまま難しいやり方しても余計こんがらがるだけ
正しいやり方はそのうちわかる

12 :デフォルトの名無しさん:2009/12/10(木) 11:52:56
>>87さん乙っす

13 :デフォルトの名無しさん:2009/12/10(木) 12:30:28
ロングパス禁止

14 :デフォルトの名無しさん:2009/12/10(木) 12:41:32
>>87
おつです

15 :デフォルトの名無しさん:2009/12/10(木) 12:51:33
>>87
すっげー。
感動した。


16 :デフォルトの名無しさん:2009/12/10(木) 12:59:17
ロングパスって面白くないよね


17 :デフォルトの名無しさん:2009/12/10(木) 13:39:55
ショートパスもな

18 :デフォルトの名無しさん:2009/12/10(木) 13:46:39
音楽プレイヤーを制作していて、ストリーミング再生機能を付けたいです。
再生したいファイルはwmaやmp3などさまざです。
アドバイスや参考サイトがありましたら教えて下さい。

19 :デフォルトの名無しさん:2009/12/10(木) 13:48:25
独習がいちばん

                          終了

20 :デフォルトの名無しさん:2009/12/10(木) 13:53:23
>>7-9
・片方にパブリックプロパティとして持たせて、もう片方から参照する

これで一応回避しました。有り難うございます。
C言語のグローバル変数の様に配列を使用したかったのですが難易度が高そうです。

21 :デフォルトの名無しさん:2009/12/10(木) 13:57:51
>>18
漠然としすぎ
WMPコントロール使ってれば

22 :デフォルトの名無しさん:2009/12/10(木) 14:17:12
クライアントアプリってSessionのようなものはないんだっけ?

23 :デフォルトの名無しさん:2009/12/10(木) 14:21:33
>>18
こことかどう?

http://msdn.microsoft.com/en-us/library/aa472935(VS.85).aspx

外していたらスマン

24 :デフォルトの名無しさん:2009/12/10(木) 14:34:11
18番さんがどこまで理解してるか分からないので余計なお世話かも知れませんが、WMPコンポーネントは
COMコンポーネントでツールボックスアイテムの選択から選べます。(まあ、それくらい知ってるよね)

25 :デフォルトの名無しさん:2009/12/10(木) 15:13:45
>>20

class Global{
 public static ArrayList A = new ArrayList();
}

26 :デフォルトの名無しさん:2009/12/10(木) 15:29:01
五郎丸

27 :デフォルトの名無しさん:2009/12/10(木) 15:32:01
WPFならCOM直接使わずにWMPコンポーネント使えるよ

28 :デフォルトの名無しさん:2009/12/10(木) 15:36:49
>>25
public static ArrayList A = new ArrayList();
親フォームに上記述でもダメでした。

何をしたいかといいますと
 ・親フォームのボタン押下でリストデータ追加
 ・子フォームで作成しているグラフの軸データに@を反映
です。
子フォームで上記リストAを使うと「コンテキストは存在しません」エラーがでます。




29 :デフォルトの名無しさん:2009/12/10(木) 15:39:06
>>28

フォームのコードに書くんじゃなくて
新しいクラスを作るんだよ

30 :デフォルトの名無しさん:2009/12/10(木) 15:45:18
もしForm1に
public static ArrayList A = new ArrayList();
てしたら
別のフォームからは
Form1.A で呼び出す

31 :デフォルトの名無しさん:2009/12/10(木) 16:00:36
待て。なんでstaticメンバなんだよww

32 :デフォルトの名無しさん:2009/12/10(木) 16:03:48
グローバル変数みたいに扱いたいんだろ

33 :デフォルトの名無しさん:2009/12/10(木) 16:09:27
それは別のグローバル用のクラスに切るべきではないのか・・・・

34 :デフォルトの名無しさん:2009/12/10(木) 16:16:03
>>29-33
みなさんありがとうございます。
とりあえずForm1.Aでメドがつきそうです。


35 :デフォルトの名無しさん:2009/12/10(木) 16:19:21
親側
Form2 obj;
// その他プロパティ追加

public Form1()
{
InitializeComponent();
obj = new Form2(this);
obj.Show();
}

子側
Form1 obj;

public Form2(Form1 obj)
{
InitializeComponent();
this.obj = obj;
}


obj.何とかで親プロパティにアクセス可

やりたいのってこいうう事?

36 :デフォルトの名無しさん:2009/12/10(木) 16:19:24
つけるなw

37 :デフォルトの名無しさん:2009/12/10(木) 16:39:27
>>35-36
とりあえずこんな形にしてみました。よい方法があれば教えてください
親側
public partial class MainForm : Form{
public static ArrayList alNumbers = new ArrayList();
public string[] arNumbers;
public MainForm(){
InitializeComponent();
}
void Button1Click(object sender, EventArgs e){
alNumbers.Add(100);
alNumbers.Add(150);
 alNumbers.Add(120);
 alNumbers.Add(135);
}
}
子側
public partial class Form1 : Form{
public Form1(){
//グラフX軸用データ
X.Data = MainForm.alNumbers;
}
}

38 :デフォルトの名無しさん:2009/12/10(木) 16:41:28
public int A{get;set;};

ってやるのと
public int A;

ってやるの何がどう違うんだろうな。
いみなくね?

39 :デフォルトの名無しさん:2009/12/10(木) 16:46:06
悪い事は言わんからプロパティにしとけ

40 :デフォルトの名無しさん:2009/12/10(木) 16:49:20
美しさなら >>35 番のやり方
これだと親子相互利用が可能

41 :デフォルトの名無しさん:2009/12/10(木) 17:00:38
>>38
プロパティに対するgetやsetのタイミングでブレークポイントを仕込めるところが大違い。
あるいは入出力時に簡単な処理(例えば変換作業とか)もできる。
欠点としては初期値を定義できないことで、コンストラクタに初期値の代入をしてあげないといけなくなる。

プロパティとメンバが別になってると、さらに自由度は増える。

42 :デフォルトの名無しさん:2009/12/10(木) 17:05:37
>>38としては
後から必要に応じて
int A{
get{処理}
set{処理}
}
と修正するとしてどう違うんだって言いたいんじゃないか

43 :デフォルトの名無しさん:2009/12/10(木) 17:05:55
本人が良いって言ってんだからほっとけよ

44 :デフォルトの名無しさん:2009/12/10(木) 17:09:05
継承したもの同士ってキャストできないよね?

Class1があって
SubClass2、SubClass3は両方Class1を継承している

instanceOfSubClass2=new SubClass3();
とか不可能だよな?どうやるんだ

45 :デフォルトの名無しさん:2009/12/10(木) 17:12:32
Class1 c1_2 = new Class2();
Class1 c1_3 = new Class3();
とはできるよ

46 :デフォルトの名無しさん:2009/12/10(木) 17:14:57
>>44
どうやると言われても困るが
ButtonもTextBoxもControl派生だが
Button button = textBox1;
とか言われてもイミフだろ

47 :デフォルトの名無しさん:2009/12/10(木) 17:34:31
VisualStudio2008で課題制作を行っているのですが
現在使っているパソコンの電力(ワット値)を取得する術はありますか?
WMIを使って取得できるかと思い調べてみたんですが、どうしてもわかりません。
わかる方ご教授お願いします。

48 :デフォルトの名無しさん:2009/12/10(木) 17:34:37
C言語だと

10;
みたいな文もコンパイルエラーにならなかったがC#だとエラーになるのな。

49 :37:2009/12/10(木) 17:37:00
get setから勉強し直します。

50 :デフォルトの名無しさん:2009/12/10(木) 17:38:01
WPFのWriteableBitmap内で矩形領域をコピー(移動)するのはどうするのが効率いいですかね?

51 :デフォルトの名無しさん:2009/12/10(木) 17:39:37
コピーして移動するのがいちばん単純でいいよ

52 :デフォルトの名無しさん:2009/12/10(木) 17:48:43
>>47
そもそも電力センサー自体がシステムに搭載されてるか疑問
ノートPCとかならありそうだけど、それってファームウェアレベルじゃね?

53 :デフォルトの名無しさん:2009/12/10(木) 17:49:23
ワットチェッカー

54 :47:2009/12/10(木) 17:56:37
>>52
調べている中で、モバイルメーターというソフトウェアを見つけたのですが、
それでは実際にワット値を取得していました。(ノート用ソフトウェアらしいです)
52さんの言う通り、ノートしか現実的に無理なんでしょうか。

>>53
私もそれは発見しましたが、プログラム的に値を取得したいので、厳しいです・・・。

55 :デフォルトの名無しさん:2009/12/10(木) 18:08:18
>>54
スレ違い。

56 :デフォルトの名無しさん:2009/12/10(木) 18:21:01
ならそのワットメーター?とやらの値を覗けばいいだろう。

57 :47:2009/12/10(木) 18:21:19
>>55
すいません。
VisualStudio用のスレがありました・・・。
そちらで聞いてみます。

58 :デフォルトの名無しさん:2009/12/10(木) 18:21:37
>>50
CopyPixels→WritePixels

59 :デフォルトの名無しさん:2009/12/10(木) 18:26:22
前スレ>>1000
SlickEditGadgets使って見ました
これはいいですねー
Expressでは使えないのは残念ですが
目が悪い私にもとても使いやすいです
いいものを紹介していただき大変ありがとうございました

60 :デフォルトの名無しさん:2009/12/10(木) 19:09:31
前スレ>977
今更だけどやってみた。
static double Integral(double min, double max, Func<double, double> f)
{
double y = 0.0;
double a = f(min);
for (double x = min; x < max; )
{
x += delta;
double b = f(x);
y += (a + b) * 0.5 * delta;
a = b;
}
deltaの値はお好みで。
-1から3までx^3+3x^2+4x-2をやりたいならIntegral(-1, 3, x => x * x * x + 3 * x * x + 4 * x - 2)という具合。
これは台形公式だけど、シンプソンでもなんでもお好きに。

61 :デフォルトの名無しさん:2009/12/10(木) 19:47:14
テキストボックスに入力した文字列を命令に変えることできる?

たとえばフォームにボタンとテキストボックスがひとつだけあって
テキストボックスにthis.Text="Hello World";
って書いたらフォームのテキストがhello worldになって
Button.Text="hogehoge";ってやったらボタンがhogehogeになる
みたいな感じ

Button_Click += method;

method(object o,EventArgs e){
//ここにテキストの内容を命令にするコードを書く
}

こんな感じにすればいいと思うだけどわからん。。。

62 :デフォルトの名無しさん:2009/12/10(木) 20:11:37
CSVファイルの特定の位置のデータを外部から修正する方法を教えて下さい。
Replace(2,3,"opq");" //2行目3列目のデータを"opq"に変更する
といった感じで修正したいです。

63 :デフォルトの名無しさん:2009/12/10(木) 20:15:19
そのCSVが固定長ならどうにかできないでもないが
そうでないなら全部読み込んで修正して全部書きだし
テキストファイルってそういうモノ

64 :62:2009/12/10(木) 20:16:08
現在は、1行ずつ読んで行って、改行コードの数で行数取得と、区切りの","の数で列数を取得してるんですが、
最悪の場合、全行を読むことになるので、もっといい方法を知りたいです。

65 :デフォルトの名無しさん:2009/12/10(木) 20:18:50
>>61
できるかどうかだけなら、できる。
拾うべきイベントはボタンじゃなくてTextBoxの。
字句解析は必要。汎用的にするならリフレクションも必要。


66 :デフォルトの名無しさん:2009/12/10(木) 20:38:21
字句解析しないでコンパイラに直接わたすとか出来ないかなぁ。


67 :デフォルトの名無しさん:2009/12/10(木) 20:45:00
CodeDOM使えばコンパイルはできるけど
thisって何のthis? ってなる

68 :デフォルトの名無しさん:2009/12/10(木) 20:46:50
CodeDOMでそういうことしたらメモリリークするから無理
IronPythonでも組み込めば

69 :デフォルトの名無しさん:2009/12/10(木) 20:49:36
スクリプト言語じゃないんだからevalは無理

70 :デフォルトの名無しさん:2009/12/10(木) 20:53:28
DRM用動的C#とか出来たらおもしろそう


71 :デフォルトの名無しさん:2009/12/10(木) 20:57:22
こんくらいのことはできるけどな。

http://www.atmarkit.co.jp/fdotnet/dotnettips/060eval/eval.html

72 :デフォルトの名無しさん:2009/12/10(木) 20:57:38
.NET5あたりでDLR上で動かせるようになるかもね

73 :デフォルトの名無しさん:2009/12/10(木) 21:02:32
DRMってなんだよDLRだったorz
エロ動画の認証でもするつもりだったのか俺は

74 :デフォルトの名無しさん:2009/12/10(木) 21:05:41
常に実行しながら作れると絵的には楽しそうだな

75 :デフォルトの名無しさん:2009/12/10(木) 21:08:38
MONOのC#コンパイラをDLR向けに改造するだけならそんなに難しくないんじゃないかなあ
ちょっとやってみようかな

76 :デフォルトの名無しさん:2009/12/10(木) 22:17:48
>>60
モンテカルロ法の方が万能だと思うんだが。

77 :デフォルトの名無しさん:2009/12/10(木) 22:18:36
>>40
美しさとかいいだしたら、まともに設計しろって話になるぞ
Formにデータや処理を入れている時点で手抜きか無知かだし

>>41
自動実装使うと、プロパティ初期化子とか欲しくなるよな

>>48
C#では多少効率に関わっても、極力ヒューマンエラーが起こる確率を下げる方針だから、
そういう有っても無くてもいいような部分は、じゃあ無くてもいいよねって感じでバッサリと

78 :デフォルトの名無しさん:2009/12/10(木) 22:24:00
有っても無くてもいいというより,10;はコンパイラの理屈からすると通るのが自然だぜ
わざわざチェック入れて通らなくしてるんだ

79 :デフォルトの名無しさん:2009/12/10(木) 22:38:00
C# lintってあるの?

80 :デフォルトの名無しさん:2009/12/10(木) 22:39:56
FxCOPだっけ

81 :デフォルトの名無しさん:2009/12/10(木) 22:48:42
>>78
いや、構文木の作り方によっちゃ
「定数のみ」を「文」に含めないってやったら通らなくなるぞ

82 :デフォルトの名無しさん:2009/12/10(木) 22:50:14
実行したフォルダと同じ階層にあるa.exeをProcess.Startで実行する場合、
Process.StartInfo.FileName="a.exe";
Process.StartInfo.FileName=
"Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)+@"\a.exe");
どちらがいいんでしょう?

83 :デフォルトの名無しさん:2009/12/10(木) 22:53:01
後者。

前者はカレントディレクトリが変わってると使えない。

84 :デフォルトの名無しさん:2009/12/10(木) 22:55:38
ついでに、パスの結合はPath.Combineな

85 :デフォルトの名無しさん:2009/12/10(木) 22:59:09
カレントディレクトリが変わることってあるんですか?

86 :デフォルトの名無しさん:2009/12/10(木) 23:00:01
>>81
定数のみを文に含めないってやるのは不自然

87 :デフォルトの名無しさん:2009/12/10(木) 23:01:34
>>85
何のためにわざわざカレント(現在の)っ呼んでると思うんだよ

88 :デフォルトの名無しさん:2009/12/10(木) 23:02:31
>>85
あるよ。ショートカットで作業ディレクトリを変えたりとか。

89 :デフォルトの名無しさん:2009/12/10(木) 23:04:52
Visual Stdioのデバッグ実行時に、
プロジェクトのフォームから自由に開始時のカレントディレクトリを変更できるよ。

90 :デフォルトの名無しさん:2009/12/10(木) 23:05:49
C#って配列内の検索&カウント機能ないの?
a[1] = AAA
a[2] = AAA
a[3] = BBB
でaのAAAを指定したら2を出力する的な

91 :デフォルトの名無しさん:2009/12/10(木) 23:06:21
ファイルダイアログでファイル選択したりとか>カレントディレクトリ

92 :デフォルトの名無しさん:2009/12/10(木) 23:08:28
>>90
.NETの機能としてなら
2.0ならArray.FindAll()で条件に合致するのの配列を取得してそれのLength
3.5なら拡張メソッドCount()で

93 :デフォルトの名無しさん:2009/12/10(木) 23:17:54
>>78>>81>>86
とりあえず、先にこれだけは言わせてくれ
どっちでもいいけど、言語仕様とコンパイラの実装を混ぜないでくれよ

>>78の言いたいことは分かるんだけど、有っても無くてもいいというのはユーザーサイドを意図したつもり
つまり、ユーザにとって有っても無くてもいいものは、(Cと比べて)制約を増やしてでも排除すると

>>91
一応、ファイルダイアログのは防止できるけどな

94 :デフォルトの名無しさん:2009/12/10(木) 23:21:52
>>77

初心者スレで手抜も無知もないんじゃないか
おそらく>>9のアドバイスを受けてがんばって作ったんだろうに

95 :9:2009/12/10(木) 23:24:39
俺な〜んか不味いこと言ったの?

96 :デフォルトの名無しさん:2009/12/11(金) 00:07:48
>>76
余程多次元じゃないかぎり収束が遅すぎるだろ

97 :デフォルトの名無しさん:2009/12/11(金) 00:13:41
C#.NETに関する質問です。

アプリケーションの処理を途中で全て停止する方法は無いでしょうか?

98 :デフォルトの名無しさん:2009/12/11(金) 00:14:01
>>60
ちょうどこんなのあるよ↓。シンプソン法。
http://ufcpp.net/study/csharp/sm_silverlight.html#fourier

99 :デフォルトの名無しさん:2009/12/11(金) 00:14:48
>>97
Thread.Abort();
Application.Exit();
throw new Exception();

100 :デフォルトの名無しさん:2009/12/11(金) 00:17:44
Environment.Exit(0);

101 :デフォルトの名無しさん:2009/12/11(金) 00:18:51
ショートカットファイルに関連付けられているアプリケーションのパスを取得する方法はありますか?

102 :デフォルトの名無しさん:2009/12/11(金) 00:28:33
>>99-100
ありがとうございます。
しかしアプリを落としたいわけではなく、
一回目のキー入力ではループ開始、
二回目の同一キー入力ではループが開始していたとしても、
ループを途中で停止する処理を欲しています。
一回目のキー入力でループ開始するコードは馬鹿でも出来るのですが、
もう一度、同一のキー入力を受けて、ループ自体を停止することが困難です。
アドバイスください。

103 :デフォルトの名無しさん:2009/12/11(金) 00:31:09
ループの途中にフラグチェックを置いて
一回目のキーと同じキーが押されたら、フラグを立てるだけでいいんじゃね?

104 :デフォルトの名無しさん:2009/12/11(金) 00:31:40
>>102
Windows Formのアプリ、それともコンソールアプリを想定してるの?
スレッドは使っていい?

105 :デフォルトの名無しさん:2009/12/11(金) 00:35:15
Net.HttpWebRequestの処理が
Debubモードだと戻ってこない
Releaseモードだとちゃんと戻ってくる

これってどういう現象?
トレースデバッグできなくて困ってる

106 :102:2009/12/11(金) 00:36:27
Formアプリです。親切にありがとうございます。端折ったコードを載せておきます。
フラグ立てるとフラグ立てる回数が多いコードなのであまりやりたくはありません。
// "1"を押下
if (e.KeyCode == 49)
{
try
{
for (int i = 0; i < Int32.Parse(textBox9.Text); i++)
{
IDataObject iData = null;
if (!textBox1.Text.Equals(""))
{
Clipboard.SetText(textBox1.Text);
//クリップボードの文字列データを取得する
iData = Clipboard.GetDataObject();
//クリップボードに文字列データがあるか確認
if (iData.GetDataPresent(DataFormats.Text))
{
//文字列データがあるときはこれを取得する
SendKeys.SendWait((string)iData.GetData(DataFormats.Text));
Sleep(Int32.Parse(textBox8.Text));
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}


107 :デフォルトの名無しさん:2009/12/11(金) 00:44:56
>>101
ショートカットに関連づけられているアプリケーション?
hoge.txt.lnkからnotepad.exeを手に入れるってこと?
IShellLinkで実体のパス(の拡張子)手に入れて、あとはレジストリあさるかAllocQueryStringとか使うか

108 :77:2009/12/11(金) 00:46:39
>>94-95
ああ、表現が悪かったな。アンカーしてないレスには特に含むところは無い
とりあえず、俺の主張は

「Formにデータや処理を入れる」という設計が良くないのに、
その段階で美しいもなにもないんじゃないか、>>40

と、それだけ

109 :デフォルトの名無しさん:2009/12/11(金) 00:48:36
俺いつもFormにバリバリ処理書いてるけどダメなの?

110 :102:2009/12/11(金) 00:49:21
>>103
すみません。
フラグの考え方だとたぶん6ステップ程度でいけますね。
ただフラグ数が多いので、面倒くさいことは面倒くさいですので、
何が方法があれば教えてください。
そんなにプライオリティは高くないので無理なら無理で構いません。

ありがとうございました。

111 :デフォルトの名無しさん:2009/12/11(金) 00:51:17
>>109
ダメじゃないよ

112 :102:2009/12/11(金) 00:52:51
すみません。
先ほどのものです。質問しそびれました。
テキストフォームのバリデーションチェックなどできるのでしょうか?
.NETにはあまり詳しくないのでチェックの仕方さえ知らないのですが、
一々、チェックルーチンを組まないといけないのでしょうか?
それとも予め用意されたバリデーション機能などあるのでしょうか。
C#.NETです。

ご回答よろしくお願いいたします。

113 :デフォルトの名無しさん:2009/12/11(金) 01:01:41
>>110
ループを無限ループにするんじゃなくて、タイマイベントで回せば別スレッドもいらないしフラグもいらない
勿論イベントの管理は必要になる

>>112
Validation クラスが使えるか調べてみては?
オレは使ったこと無いからよくわからん。

114 :デフォルトの名無しさん:2009/12/11(金) 01:01:44
やべぇ
デリゲートとラムダ式(orAnonyMeth)が便利すぎる
この二つの機能もってない言語に移ったら気が狂いそうだ

115 :デフォルトの名無しさん:2009/12/11(金) 01:06:17
他のプロセスにアタッチして、
そのプロセス内のメモリ検索を行うにはどうすればいいですか

116 :デフォルトの名無しさん:2009/12/11(金) 01:12:38
>>115
そういうことをやるのはC#は向いてない。
C+++APIでやったほうがずっと簡単

117 :デフォルトの名無しさん:2009/12/11(金) 02:17:24
何とかしてsendkeysで日本語通したいんですが無理ですか?

118 :デフォルトの名無しさん:2009/12/11(金) 02:29:10
ピンヴォケで SetWindowText 使っとけ

119 :デフォルトの名無しさん:2009/12/11(金) 03:18:24
ラムダ式を何度勉強しても理解できません。
決定的で超簡潔な説明をお願いします

120 :デフォルトの名無しさん:2009/12/11(金) 03:19:49
あなたには過ぎた道具だ

121 :デフォルトの名無しさん:2009/12/11(金) 06:40:01
λ,,,

122 :デフォルトの名無しさん:2009/12/11(金) 08:07:46
チューリングマシンと等価な計算方法

123 :デフォルトの名無しさん:2009/12/11(金) 08:09:20
無名デリゲートの書き方が増えただけだと思っておけば実用には十分じゃねーの

124 :デフォルトの名無しさん:2009/12/11(金) 08:35:07
匿名メソッドとラムダ式って違うの?

125 :デフォルトの名無しさん:2009/12/11(金) 08:37:19
書き方が違う
実質それだけ

126 :デフォルトの名無しさん:2009/12/11(金) 08:44:59
ラムダ式がわからないって何がどうわからないんだ
もと具体的にお願い

たとえば戻り値なし引数stringのデリゲート

void delegate1 (string str)があったとして

delegate1 = method;
void method(string s){
console.writeline(s);
}

こんな風にmethodを媒介にして書いてたのが
delegate1= (string s) => console.writeline(s);
になっただけだぞ

127 :デフォルトの名無しさん:2009/12/11(金) 08:53:22
そもそもデリゲートって使ったこと無いけどなんの役に立つの?

128 :デフォルトの名無しさん:2009/12/11(金) 08:56:29
イベント、Linq、あとデリゲートを引数に取るメソッドいろいろ
引数にとる場合はそれを使ってメソッドの動作をカスタマイズできる場合が多い

129 :デフォルトの名無しさん:2009/12/11(金) 08:58:25
お前が使ったことないなら役に立たないんじゃない?
button1.clickはデリゲートで作られてるから多少なりともフォーム作ったことがあるなら
間接的に利用はしてるだろうけど。

自分でデリゲートを作らないと根本的に不可能なことなんてない。
今まで多少厄介だったり長かったコードが短くかけるとか安全性の面でよくなるとかそんなもん。

130 :デフォルトの名無しさん:2009/12/11(金) 09:09:36
すみません。初歩の質問ですが、
usingステートメントで「メインフォームが稼働中の時」のみ
オブジェクトを使用したいのですが、以下の方法で括ると
コンストラクタでしか使えません。
//static class Program
using (Form frmChild = new Form()) // 子フォーム
{
 Application.Run(new Form1(frmChild)); // Form1 : メインフォーム
}
Form1内でfrmChildを使用する方法はありますか?

131 :デフォルトの名無しさん:2009/12/11(金) 09:12:27
>>128の例としてはArray.Sort

int orderByBoolMember( TestClass x, TestClass y){ return x.BoolPropaty.CompareTo(y.BoolPropaty); }
int orderByInt32Member( TestClass x, TestClass y){ return x.Int32Propaty - y.Int32Propaty; }
int orderByStringMember( TestClass x, TestClass y){ return x.StringPropaty.CompareTo(y.StringPropaty); }

TestClass[] array = new TestClass[]{ new /* 省略 */ };

Compersion del;
del = orderByBoolMember;
//del = orderByInt32Member;
//del = orderByStringMember;

Array.Sort(array,del);

>>130
メインフォームのDisposeをオーバーライドして子フォームのClose()書いておけ

132 :デフォルトの名無しさん:2009/12/11(金) 09:21:20
デリゲートが無い場合はコールバックを実装するのに一々クラスを書かなきゃいけなくなるからなぁ。
勿論その方が実装のしかたとして正しい場合も多々あるけど。
継承してオーバーライドするなり、引数にわたすなり。

133 :デフォルトの名無しさん:2009/12/11(金) 10:11:30
>131-132
なるほど。継承ですか。
今まで諦めてた部分の破棄処理ができそうです。
ガベージが処理してくれる(?)と思うのですが、
一通りusingは使用した方がいいですよね。
神経質な自分には何となく合わない仕様かな(;
何はともあれ、ありがとうございます。

134 :133=130:2009/12/11(金) 10:13:53
30分くらい亀レスでした。orz
すみません。

135 :デフォルトの名無しさん:2009/12/11(金) 10:19:13
いやいや>>130はusingとか関係ない。
Application.RunはForm1が閉じられるまで処理を返さないから
Form1のコンストラクタの外でfrmChildを使っても問題ない。
ただfrmChildはDisposeしてるのにForm1は放置するのは変なのでこうすればいい。
using (Form frmChild = new Form())
using (Form1 form1 = new Form1(frmChild) {
 Application.Run(form1);
}
それとForm1の中でfrmChildをDisposeするのはやめたほうがいい。
普通、Disposeするのはそのインスタンスを作った側の責任だ。

136 :デフォルトの名無しさん:2009/12/11(金) 10:29:04
C#.netの質問です。
SendInput で 日本語(漢字、カタカナ、ひらがな)を送りつける方法が今ひとつなんですが教えていただけ無いでしょうか?

137 :デフォルトの名無しさん:2009/12/11(金) 10:38:14
どう今ひとつなんだ?

138 :デフォルトの名無しさん:2009/12/11(金) 10:42:50
SendKeysで送ったら

139 :デフォルトの名無しさん:2009/12/11(金) 10:52:34
javaにC#のList並の機能の付いたコレクションってある?

140 :デフォルトの名無しさん:2009/12/11(金) 10:54:01
javaスレで聞け

141 :133:2009/12/11(金) 10:56:53
>135
どうも。要領が悪くてすみません。
普通にForm frmChild = new Form();
でForm1を継承したクラスを作成してもいいという事ですよね。
Application.Run(new Form1(frmChild));
はインスタンスを生成(格納)してないので問題ないと思ったのですが、
放置とはそういうDisposeしていないという意味ですか?

142 :デフォルトの名無しさん:2009/12/11(金) 11:04:37
>>137
かなり今ひとつです,一から教えていただかないといけないほどに。
開発環境はMonoDevelopを使ってます。
鮮度キーでの日本語送信はなぜかできませんでして諦めました。


143 :142:2009/12/11(金) 11:07:18
いい漏れました。
OSはubuntuです。

144 :133:2009/12/11(金) 11:08:06
後述の三行は少し気になったもので…小出しになったようですが、
文法的な問題でしたら申し訳ありません。
感謝します。失礼しました。

145 :デフォルトの名無しさん:2009/12/11(金) 11:19:11
>>142
日本語でおk
で、やりたいことと、やってみた結果は?
「今ひとつ」とか「一から」とかじゃ、「ぐぐってろ」くらいのレスしか入れられないんだが。

146 :1:2009/12/11(金) 11:20:04
>>141
一般にはDisposeが必要な型をnewして放置するのはそれ自体よくない。
ちゃんと変数に入れてDisposeするべき。
ただしApplication.Runに限って言えば引数に渡したフォームのDisposeは不要。
フォームが閉じたら勝手にDisposeしてくれるから。
それについては忘れてたので訂正。
つまり>>133で別に問題ないってこと

147 :146=135:2009/12/11(金) 11:22:07
すみません
あとアンカーも訂正 ×133 ○130

148 :1:2009/12/11(金) 11:29:06
私がスレッド立てました
えらいでしょ?ねええらいでしょ?

って意味で1ってわざわざ名前欄にいれてるんでしょうか?
ここで1ってわざわざ主張する意味がわかりません。

149 :141:2009/12/11(金) 11:29:23
>146
どうも。わざわざ手間を(;
すっきりしました。以上です。

150 :デフォルトの名無しさん:2009/12/11(金) 11:29:33
>>141
親フォーム内で子フォームを作成したんでは仕様に合わないの?

151 :デフォルトの名無しさん:2009/12/11(金) 11:33:13
Formはちょと特別ってことでいいと思うな。

ShowDialogする場合は別として、
普通にShowする場合はClose==Disposeなので、
FromClosed/Closingで処理をキャンセルしてない限り、
[ X ]ボタンで閉じた状態でDispose済みなんだな。
また、仮に子フォームをShow(Parent)で表示しているなら、
親フォームを閉じれば子フォームも閉じるのでコードでDisposeはいらない。
さらにメインフォームが閉じてApplicationが終わるとき他のフォームも閉じるので
やっぱり後片付けはいらない。


152 :デフォルトの名無しさん:2009/12/11(金) 11:35:23
まぁそれでも明示的にクリンアップしたくなるて人もいるんだろう
どうせ終了時だから大概の場合重かろうがどうでもいいし

153 :141:2009/12/11(金) 11:40:21
>150 今回の件で可能だと分かりました。(追記ですが)

154 :142:2009/12/11(金) 11:57:18
>>145
落ち着いてググりました。エラーコードの無いテキストエディタで真剣に考えて編集してみたところ、
漢字の送信ができました。ただ未変換状態で送信されてしまうようで、確定状態の変換に直したいと思っています。
コードは下記です。ただ単純にエンターキーを送信するだけでは上手く確定できません。
    関数呼び出し部分
    INPUT[] inputs = ToInput((string)iData.GetData(DataFormats.Text));
    SendInput(inputs.Length, inputs, Marshal.SizeOf(typeof(INPUT)));

    関数部分
private static INPUT[] ToInput(string p)
{
int len = p.Length;
INPUT[] inputs = new INPUT[len * 2];
for (int i = 0; i < len; i++)
{
int j = i * 2;

inputs[j].type = INPUT_KEYBOARD;
inputs[j].ki.wVk = 0;
inputs[j].ki.dwFlags = KEYEVENTF_UNICODE;
inputs[j].ki.dwExtraInfo = 0;
inputs[j].ki.wScan = p[i];
inputs[j].ki.time = 0;
int k = j + 1;
inputs[k] = inputs[j];
inputs[k].ki.dwFlags |= KEYEVENTF_KEYUP;
}
return inputs;
}



155 :142:2009/12/11(金) 12:04:09
すみません。
疲れてて日本語が可笑しいですね。簡潔に言えば、SendInputを使って、
漢字変換はできたものの、送信後、候補選択状態になっています。
この候補選択状態(下に点線が付く)で送信されたところを、
確定状態(下に点線が付かない)で送信されたようにしたいと思っております。
単純にENTERキーを送信するとなぜか不都合がおきますので、
それ以外の方法を求めています。よろしくお願いします。


156 :デフォルトの名無しさん:2009/12/11(金) 12:05:09
お前ら、書き込む前に推敲しろよ

157 :デフォルトの名無しさん:2009/12/11(金) 12:15:01
>>155
漢字変換? ひらがなの文字列を入れて漢字に変換して送るって事?
ところで、SendKeys.Send() 又は SendKeys.SendWait() がうまく行かなかったから、
SendInput() を使っているって話?
もし、SendKeys.Send() しか試してないなら、まずは SendKeys.SendWait() を試した方がいい。
そしてSendKeys.SendWait() なんかがうまく行かないのは、フォーカス設定が漏れていたりはしない?

158 :デフォルトの名無しさん:2009/12/11(金) 12:21:14
環境依存だろ
Mono+ubuntuとかそんな特殊な環境わかるわけない

159 :142:2009/12/11(金) 12:22:38
>>157
ひらがなを漢字に変換するわけではありません。
漢字なら漢字の、平仮名なら平仮名の文字列を送信することはできましたが、
その後の処理の話で相談しています。

漢字を漢字のまま送信することは可能なのですが、
下に点線が付いた状態で漢字が送信されてしまいます。
これを何とかしたいのですが。


160 :デフォルトの名無しさん:2009/12/11(金) 12:28:34
>>158
SendInputだと日本語変換に引っかかるだろうから、必ずしも環境依存と言うわけでもなさそう。
>>159
で、SendKeysクラスは使ったの? 使ってないの?

161 :142:2009/12/11(金) 12:29:53
>>160
SendInputを使いました。SendKeysは使ってません。

162 :デフォルトの名無しさん:2009/12/11(金) 12:32:41
>>161
じゃ>>138って事だね


163 :142:2009/12/11(金) 12:33:41
>>162
マジかw
せっかく作ったのに。

ありがとうございました。

164 :デフォルトの名無しさん:2009/12/11(金) 12:37:50
クリップボードに入れてCtrl+Vの方が無難じゃね

165 :デフォルトの名無しさん:2009/12/11(金) 12:43:38
C-vよりC-Insertの方が安全だった気がする

166 :142:2009/12/11(金) 13:24:30
返信くださった皆さま有難うございます。
SendInputをSendKeysに変えるのは嫌なので、
自作関数作ったところ問題なく動きました。

167 :デフォルトの名無しさん:2009/12/11(金) 13:59:50
後学の為に どんなふうにしたか概要だけでも教えてくれると嬉しい

168 :デフォルトの名無しさん:2009/12/11(金) 14:20:05
せめて
・環境、C#バージョン .NETバージョン
・やりたいこと・やってみたソース
くらいまとめて載せろよ^^;

169 :デフォルトの名無しさん:2009/12/11(金) 15:20:09
スレ違いかもしれないが、ちょっと思ったんだけど。
バグのないプログラムはないとかそういうツッコミはなしで
めちゃくちゃ汚いソースだけどバグが無いプログラムと
めちゃくちゃキレイで芸術的なソースだけどバグが見つかったプログラム
客が求めるのは前者なんだよな。
皮肉なことに。

170 :デフォルトの名無しさん:2009/12/11(金) 15:23:57
そりゃ使う側からすりゃコードがどうなってるかなんてどうでもいいし。
皮肉でもなんでもない。

コードにいくらgoto文がかいてようがint a,bとか意味のわからない変数名つかってようが
どうでもいい話。

171 :デフォルトの名無しさん:2009/12/11(金) 15:50:00
汚いコード=仕様変更に対応しづらいと考えれば
客の利益に反するけどな

172 :デフォルトの名無しさん:2009/12/11(金) 15:56:38
フローチャート描いて作ったと思われる他の言語の糞コードを
goto使いまくって移植したことありますごめんなさい
何やってるのかさっぱりわからないまま形式的に変換したら動きました

173 :デフォルトの名無しさん:2009/12/11(金) 16:00:16
めちゃめちゃ綺麗で芸術的にするのは
バグをなくすためって側面もあるからなあ。

汚ないコードはバグが入りやすい(その時は少なくても>>171な時に入る可能性大)
ってことがあるからなんともいえない。


174 :デフォルトの名無しさん:2009/12/11(金) 16:32:58
え、客が求めるのはバグが見つかったプログラムだろ?
わざわざバグを埋め込んどかないとノルマ達成できないぐらいなんだぜ

175 :デフォルトの名無しさん:2009/12/11(金) 16:36:53
バグ埋め込み法っていうデバッグの手法は冗談でもなんでもなく普通に存在するけどな。

176 :デフォルトの名無しさん:2009/12/11(金) 16:47:20
芸術的なバグ

177 :デフォルトの名無しさん:2009/12/11(金) 17:31:18
バグのないプログラムはさみしい


178 :デフォルトの名無しさん:2009/12/11(金) 18:13:27
俺は普通に動けば客は何でもいいと思うよ ただし客がエンドユーザーの場合はね
ソース受け渡し(開発依頼とか下請けとかの時)する相手な場合、恥ずかしいのでちゃんと書くさ

179 :デフォルトの名無しさん:2009/12/11(金) 21:37:32
「マネージコードでシェル拡張を作ってはいけない」と常識のように
語られているのですが、.NET1.xさえインストールされていなければ
問題ないのではないでしょうか?

180 :デフォルトの名無しさん:2009/12/11(金) 23:00:29
>>179
初耳。どこの常識だよ。

181 :デフォルトの名無しさん:2009/12/11(金) 23:06:41
179ではないが、その話は確かMSのブログ内だったと思うなぁ
1プロセスにつき読み込めるCLRのバージョンは1つだけなので
例えばCLR1.xを先に読まれてしまうと後続で2.0以降用のアセンブリを読もうとしたとき失敗してしまう
とかなんとかそんな理由

182 :デフォルトの名無しさん:2009/12/11(金) 23:09:32
>>180
その常識は、複数バージョンのCLRを1プロセスに読み込めないという制限に由来する。
CLR 1.0と1.1と2.0それぞれでシェル拡張を作ったら、2つ目以降を読み込むことができない。
だから、シェル拡張ではマネージコードを避けるべきと言われるようになった。

だから、CLR 1.xが廃れてきた今、>>179の言うことは一理ある。
ところが、CLR 2とCLR 4は1プロセス内で共存が可能な上、
近頃のWindowsだとCLR 1.xは非対応になってきているので、
マネージでシェル拡張を作れるようになる時代も近いと思う。

183 :デフォルトの名無しさん:2009/12/11(金) 23:09:52
質問させてください。Visual Studio 2008を使ってWindowsFormAppricationを作っています。
TimeSpanに対して除算を施すにはどのような方法をとれば良いのでしょうか?
具体的には3.0で割りたいと思っています。

184 :デフォルトの名無しさん:2009/12/11(金) 23:11:31
>>183
TimeSpanのお好きなプロパティを3.0で割って下さい

185 :デフォルトの名無しさん:2009/12/11(金) 23:12:17
>>183
TimeSpan.FromTicks(timeSpan.Ticks / 3)

186 :デフォルトの名無しさん:2009/12/11(金) 23:31:52
ClickOnesを使ってアプリのアップデートをしているのですが、
バージョンが上がるとuser.configに保存している設定が無効になってしまいます。

下記サイトで解決しているのですが、やろうとすると
角かっこ [] 付きインデックスを 'プロジェクト名.フォーム名' 型の式に適用することはできません。
とエラーが出てしまい出来ませんでした。

http://social.msdn.microsoft.com/forums/ja-JP/csharpgeneralja/hread/3b5560a0-0626-4843-bd51-5fbee8eb61db/

このコードをどこに書いたらいいのか分かってないです。

設定ファイルが読み込めてないのに、設定ファイルにアップデートの
情報をそこに保存する意味もわかりません。

アップデートした時だけ以前の設定ファイルを読み込む方法を教えてください。


187 :183:2009/12/12(土) 02:44:20
助かりました。ありがとうございます

188 :デフォルトの名無しさん:2009/12/12(土) 05:24:40
一度Application.Exit();したあとに、再度フォームの生成を行うことは可能ですか?
アプリケーションの再起動を行いたいのですが・・・

189 :デフォルトの名無しさん:2009/12/12(土) 06:41:25
Application.Restart();


190 :デフォルトの名無しさん:2009/12/12(土) 09:04:38
WindowsFormアプリケーションで、Program.csにてMutexを調べ、
既に存在していれフォームを起動しない・・・という処理を行っているのですが、
>>189の方法だと、そのMutexにひっかかってしまい起動出来ませんでした。
何か良い方法は無いでしょうか・・・?

191 :デフォルトの名無しさん:2009/12/12(土) 09:10:50
リスタート呼ぶ前に削除しとけよ

192 :デフォルトの名無しさん:2009/12/12(土) 09:43:42
意図的なMutexの削除方法が分かりません
Mutex.OpenExisting("mu", System.Security.AccessControl.MutexRights.Delete);
こんなのじゃ駄目なんですかね;

193 :デフォルトの名無しさん:2009/12/12(土) 09:50:03
Mutex.Closeだよ
MSDNのWaitHandleクラスのになってるせいでイマイチ思い浮かばないかもしれんが

194 :デフォルトの名無しさん:2009/12/12(土) 09:54:52
マルチスレッドにしたら、実際の処理をしている子スレッドから
フォームのコントロールに書き込みできなくなってしまったのですが
途中経過などを通知するにはどうしたらいいでしょうか?
よろしくお願い致します。

195 :デフォルトの名無しさん:2009/12/12(土) 09:57:52
Control.BeginInvoke

196 :デフォルトの名無しさん:2009/12/12(土) 13:42:48
複数行テキストボックスで、最上段にカレットを移動したいのですがどうすればできますか?

197 :デフォルトの名無しさん:2009/12/12(土) 14:33:13
textBox1.SelectionStart = 0;
textBox1.SelectionLength = 0;


198 :デフォルトの名無しさん:2009/12/12(土) 14:58:02
>>194
まあ>>195とかのキーワードで調べたら情報はいっぱいでてくるよ。
それを見ても分からないならマルチスレッドは止めとけ。


199 :デフォルトの名無しさん:2009/12/12(土) 15:00:14
もしくはBackgroundWorkerなら余り深く考えなくても使える。
ただまともにスレッド使うならやっぱりちゃんと理解してからやらんとまずい。


200 :デフォルトの名無しさん:2009/12/12(土) 17:21:56
double[][,] im=new double[4][5,5];
で「無効次元指定子です。','または']'を指定して下さい」とエラーが出ます
double[][,] im=new double[4][,];
for (int i=0; i<4; i++) im[i]=new double[5,5];
これを1文でどう書けますか?

201 :デフォルトの名無しさん:2009/12/12(土) 17:22:05
フォームのコントロールへの書き込みはメインスレッドが
やればいい

202 :デフォルトの名無しさん:2009/12/12(土) 17:47:34
>>220
書けない

203 :デフォルトの名無しさん:2009/12/12(土) 17:56:30
listViewでアイテムを行ごとドラッグアンドドロップで入れ替えるには、どうすれば良いでしょうか。

204 :デフォルトの名無しさん:2009/12/12(土) 17:56:50
>>200
ありえんほどスマートじゃないな。ループ使ったほうがまし。

var im=new double[][,] { new double[5,5], new double[5,5], new double[5,5], new double[5,5] };
var im2=new double[][,] {
  new [,] { { 0.0, 1.0, 2.0, 3.0, 4.0 }, { 0.0, 1.0, 2.0, 3.0, 4.0 }, { 0.0, 1.0, 2.0, 3.0, 4.0 }, 
             { 0.0, 1.0, 2.0, 3.0, 4.0 }, { 0.0, 1.0, 2.0, 3.0, 4.0 } },

  途中省略
  new [,] { { 0.0, 1.0, 2.0, 3.0, 4.0 }, { 0.0, 1.0, 2.0, 3.0, 4.0 }, { 0.0, 1.0, 2.0, 3.0, 4.0 },
              { 0.0, 1.0, 2.0, 3.0, 4.0 }, { 0.0, 1.0, 2.0, 3.0, 4.0 } } 
 };



205 :デフォルトの名無しさん:2009/12/12(土) 17:59:37
>>200
var im = Enumerable.Range(0, 4).Select(x => new double[5, 5]).ToArray();

206 :200:2009/12/12(土) 18:29:45
>>202,204,205
ありがとうございます
>>205なにこれすごい

207 :デフォルトの名無しさん:2009/12/12(土) 18:48:52
Form(スレッドA)から別なスレッド(スレッドB)を開始した所
スレッドBからスレッドAが持つTextBox等を編集しようとするとエラーをはいてしまうのですがどうしたらいいんでしょうか?

って書いてたらふと思ったんですがもしかして、クラス分けして自分自身渡せばいいんでしょうか?
ちょっと試してきます・・・。


208 :デフォルトの名無しさん:2009/12/12(土) 18:53:19
>>207
なんていうか、フットワークが軽いこと自体はいいことでもあるんだが、
早漏気味に何か試すまえに、もうちょっと落ち着いて本とかMSDNとか読んだ方がいいんじゃないの?

マルチスレッド扱ってる文章でワーカスレッドからUIスレッドのコントロールに
触る方法に触れてないものなんてないと思うんだけど


209 :デフォルトの名無しさん:2009/12/12(土) 18:59:15
ほんの少し遡れば答えがあるのになぜに見ない。
>>195


210 :デフォルトの名無しさん:2009/12/12(土) 19:18:38
>>208
便乗質問だけど、マルチスレッド関係の問題を
体系的に回避する方法をまとめてあるのってない?
Invokeとdelegateで対応するのも
Formクラスがぐちゃぐちゃになって美しくなくなってきた

211 :デフォルトの名無しさん:2009/12/12(土) 19:21:01
>>210
もともとSystem.Windows.Formsはシングルスレッドで作るようにできてるんだ。
マルチスレッド用にはできてないから、自力で何とかするしかない。

212 :デフォルトの名無しさん:2009/12/12(土) 19:50:22
>>210
MVCでぐぐれ

213 :デフォルトの名無しさん:2009/12/12(土) 19:54:53
>>210
Formのコードがグチャグチャになるのは、スレッド使うかとうかではなく
単に設計の問題じゃないの?

「入力」と「表示」以外のコードをFormに書いてるんじゃない?

体系的っていうか、UIを更新する場合、普通はワーカスレッドを内部に持ってる
オブジェクトからのイベント(XXXChangedとかXXXReceivedみたいなの)を受信して
そのタイミングでFormが自分が持ってるコントロールを更新するって考え方になると思うから、
UIスレッドに同期する処理をFormに持たせたくないのなら、オブジェクト自身がISynchronizeInvokeを
フィールドに持って、UIスレッドに同期してXXXChangedとかXXXReceivedみたいなイベントを
発火するようにすればいいと思う。

214 :デフォルトの名無しさん:2009/12/12(土) 20:07:54
>>213
マルチスレッドは最近かじったばっかりだから
他人がどうやってうまく処理を切り分けてるのか
そろそろ体系的に知りたいと思ってたんだが
あんまり一般的な手筋みたいなものがあるわけじゃないのか…

基本的に長い演算でGUIが固まるのがいやなのと、
処理の途中で中断するというのも
タイマーとマルチスレッドでむりやり実装してるけど
無駄が多い気がするし、参考になる本とかあったら読もうかと思ってたんだけど

215 :デフォルトの名無しさん:2009/12/12(土) 20:13:18
お前頭大丈夫か?

216 :デフォルトの名無しさん:2009/12/12(土) 20:24:51
>>215
ここ初心者スレ

217 :デフォルトの名無しさん:2009/12/12(土) 20:27:32
初心者バーカつって楽しんでるやつがいるのはいつものことだな

218 :デフォルトの名無しさん:2009/12/12(土) 21:24:28
数名な

219 :デフォルトの名無しさん:2009/12/12(土) 21:30:19
1人のような気もするが

220 :デフォルトの名無しさん:2009/12/12(土) 21:38:59
俺だけなの?

221 :デフォルトの名無しさん:2009/12/12(土) 22:24:19
でも人の話聞いてないよね
>>213で「一般的な手筋」書いてるだろ

222 :デフォルトの名無しさん:2009/12/12(土) 22:35:34
string s="1+5*3";
こんな風に演算子が入ってる文字列を数値に変換するほうほうを教えてくれ。
int.Parseだと無理だった

223 :デフォルトの名無しさん:2009/12/12(土) 22:43:39
自前でパーサ作る

224 :デフォルトの名無しさん:2009/12/12(土) 23:09:32
Object型の引数をとるメソッドに、"typeof(型名)"を与える例が見当たるんですが、
typeof(任意の型名)ってSystem.Type型なのにちゃんと任意の型が送られるんでしょうか。

任意の型のインスタンスを送るのでは駄目なんですかねやっぱり

225 :デフォルトの名無しさん:2009/12/12(土) 23:10:16
Eval

226 :デフォルトの名無しさん:2009/12/12(土) 23:11:52
何を言ってるかマジで分からない

227 :デフォルトの名無しさん:2009/12/12(土) 23:14:20
>>224
System.Type型だってObject型継承してるんだから何もおかしいことはない。

228 :デフォルトの名無しさん:2009/12/12(土) 23:16:25
つかね

>例が見当たるんですが

それを挙げてください
このスレの人間は貴方が見たというコードの目的とするところなんか知るわけないんだから

229 :デフォルトの名無しさん:2009/12/12(土) 23:21:52
>>224
まずはこれを読め。
http://msdn.microsoft.com/ja-jp/library/58918ffs%28VS.80%29.aspx

XMLSerializerとか、System.Data系とか、処理をするのにそのクラス型自体が必要なライブラリがある。
そういうのはtype演算子を通してクラス型自体を渡すことになる。

ぼやきに対して答えを書けば、必要だからそうなっている、につきる。

230 :デフォルトの名無しさん:2009/12/12(土) 23:24:21
>>228
例えば
ttp://msdn.microsoft.com/ja-jp/library/ms752914.aspx#metadata

>new FrameworkPropertyMetadata(typeof(SpinnerControl))
です。FrameworkPropertyMetadataはObject型の引数を一つとるコンストラクタを用意してます。

231 :デフォルトの名無しさん:2009/12/12(土) 23:30:07
>>229
ありがとうございます。
一応読んだのですが、じゃあなんでType型を要求しないんだろうとか
いろいろ疑問がわいてきて混乱していました。
今の僕では完全な理解は難しいようなので、そう割り切ることにします

232 :デフォルトの名無しさん:2009/12/12(土) 23:30:58
>>230
http://msdn.microsoft.com/ja-jp/library/ms557298%28VS.80%29.aspx

defaultValue
依存関係プロパティの既定値。通常、特定の型の値として指定されます。
特定の型の値として指定されます。
特定の型の値として指定されます。
特定の型の値として指定されます。
特定の型の値として指定されます。
特定の型の値として指定されます。
特定の型の値として指定されます。
特定の型の値として指定されます。
特定の型の値として指定されます。
特定の型の値として指定されます。


233 :デフォルトの名無しさん:2009/12/12(土) 23:34:31
そりゃIsCheckedの既定値ならtrueかfalseだろうし
Textの既定値なら空文字列かnullかだろう
DefaultStyleKeyの既定値がType型インスタンスと言うだけのこと

234 :デフォルトの名無しさん:2009/12/12(土) 23:43:40
WinFormsでよく出てくるDefaultValue属性と一緒だ
WPFではメタプログラミング的なことやろうとしすぎて属性+リフレクションでは追いつかなくなっちゃったから
独自のプロパティシステムを構築してるんだよ

235 :デフォルトの名無しさん:2009/12/12(土) 23:46:40
>>232
繰言クンって馬鹿だな、まで読んだ。

236 :デフォルトの名無しさん:2009/12/12(土) 23:47:56
>>233
納得しました。
MSDNのDefaultStyleKeyの項目まで読んでなかった。反省

237 :デフォルトの名無しさん:2009/12/13(日) 00:14:58
少数第何位以下を捨てる、みたいなことはどうやる?

double d=1.2345678912345;
だとして。最後の12345を捨ててd=1.23456789
みたいにするとか。

238 :デフォルトの名無しさん:2009/12/13(日) 00:16:16
Math.Round

239 :デフォルトの名無しさん:2009/12/13(日) 00:16:56
>>237
それって要するに桁数を決めて文字列出力したいだけだろ?
それならstring.Format()を調べるんだ。

240 :デフォルトの名無しさん:2009/12/13(日) 00:19:20
確かにdouble使ってて実際の値を丸めたい場合ってあんまり考えられないな

241 :デフォルトの名無しさん:2009/12/13(日) 00:47:38
C# だけに #でいいか?w

242 :デフォルトの名無しさん:2009/12/13(日) 00:54:30
VC#2008でWPFアプリケーションを作り、プロジェクトの設定で対象のフレームワークを.NET Framework 3.5から3.0に変更しました。
そして、3.0には無いプロパティBinding.ValidatesOnExceptionsを使ったコードを書いたのですが、何のエラーも無くビルドできてしまいました。
3..0に無いものを使ったらビルド時に検出したいのですが、どうやったらいいのですか?

243 :デフォルトの名無しさん:2009/12/13(日) 00:57:11
>>242
プロジェクトを.NET 3.0向けに設定して、それでビルドが通っているなら、
基本的にはそれで動くということなんだ。基本的には心配する必要はないよ。

244 :デフォルトの名無しさん:2009/12/13(日) 01:06:02
その場合、生3.0 じゃ動かなくて、SP1 とか SP2 とかが必要になんのかね。

245 :デフォルトの名無しさん:2009/12/13(日) 01:07:45
バージョン情報にちゃんと3.0SP1が挙げられてる

246 :デフォルトの名無しさん:2009/12/13(日) 01:10:30
なんの話?

247 :242:2009/12/13(日) 01:44:22
アセンブリのバージョンで混乱してきました。

.NET3.0のクラスSystem.Windows.Controls.TextBoxが、.NET3.5でいくつかのプロパティが追加され拡張されたと仮定します。
3.0向けでビルドされたDLLを3.5でビルドされたアプリから参照し、DLL側からTextBoxオブジェクトを取得したとします。
この場合、DLLから取得したのは3.0のTextBoxになってしまうのでしょうか?

248 :デフォルトの名無しさん:2009/12/13(日) 01:47:05
コンストラクタにprotectedってどういう意味があるの?

249 :デフォルトの名無しさん:2009/12/13(日) 01:48:11
必要となる環境の話だろ。
SP1があたってないと動かないだろうな。
サービスパックで追加された機能を使っていないか
チェックする方法は俺も知りたい。


250 :デフォルトの名無しさん:2009/12/13(日) 01:49:07
3.5で拡張されるわけじゃなくて、3.5と同時に提供される3.0SP1で拡張、ってことになるんだろね。
当然、取得できるのは3.0SP1のテキストボックス。

251 :デフォルトの名無しさん:2009/12/13(日) 01:51:13
無印環境でビルドする、ってのが一番わかりやすい方法じゃね?

252 :デフォルトの名無しさん:2009/12/13(日) 01:51:14
3.5で機能が追加されててもアセンブリバージョンは変えられていない。
MS自身がアセンブリのサイドバイサイドはぶっ壊してるよ。
まあ現実バージョン変えるわけにはいかないだろうけどね。


253 :デフォルトの名無しさん:2009/12/13(日) 01:52:09
>>248
派生クラス(のコンストラクタ)だけそのコンストラクタを呼べる

254 :デフォルトの名無しさん:2009/12/13(日) 02:26:31
interfaceって何の役に立つんですか?
継承するメリットがよく分からない・・・

255 :デフォルトの名無しさん:2009/12/13(日) 02:28:50
メリットがないなら無理に使うことはない

256 :デフォルトの名無しさん:2009/12/13(日) 02:29:24
基礎から勉強してるのでそういうわけにはいかないんですけど

257 :デフォルトの名無しさん:2009/12/13(日) 03:00:59
あっそ

258 :デフォルトの名無しさん:2009/12/13(日) 04:18:54
クラス使わないと出来ないようなプログラムってありますか?
今まで、自分でメソッドは作ったことがあり、イメージも分かるのですが、
クラスを自分で作成したことが無いだけに、ちょっと実感が分かなかったりします


259 :デフォルトの名無しさん:2009/12/13(日) 04:25:23
今までいったい何のソフト作ってきたんだよ

260 :デフォルトの名無しさん:2009/12/13(日) 04:28:53
なんか荒らしがいるな
解答する気ないなら帰れ

261 :デフォルトの名無しさん:2009/12/13(日) 04:32:17
>>258
新規のクラスを作った段階ですでにMainメソッドはProgramクラスにあるでしょ
だからクラス使わないと1行も処理を実行できないよw
Programクラス以外に自分で作らないと出来ないことがあるかというと特にない
必要がないと思うなら作らないで処理書いてもいいよ
メソッドだって自分で作らなくたって大体の処理出来るんだし
必要性がなければ全部Mainメソッドに書いちゃいなよ

262 :デフォルトの名無しさん:2009/12/13(日) 04:34:51
誤:新規のクラスを作った段階で〜
正:新規のプロジェクトを作った段階で〜

263 :デフォルトの名無しさん:2009/12/13(日) 06:03:06
>>261
あ、使わないと出来ないような〜って聞いてるのに、
確かにプロジェクトに一つは使われてますね、質問が悪かったです^^;
今まで使ってきた、Application. や、MessageBox.
なども一つのクラスなんですね、それらのクラスを覗いてみて、
ちょっとどんな風なものなのか学んでこようと思います

264 :デフォルトの名無しさん:2009/12/13(日) 09:20:03
>>258
C#だと言語仕様がクラスを要求するので必須だが、
C++で言うならクラスを使わなければ使わないでも大丈夫


265 :デフォルトの名無しさん:2009/12/13(日) 09:29:44
空のDLLならクラスを使わなくても

266 :デフォルトの名無しさん:2009/12/13(日) 09:38:59
そんなトンチ回答を要求してるわけじゃない気がするがな

267 :デフォルトの名無しさん:2009/12/13(日) 09:58:18
そういうオブジェクト指向プログラミングの概念的な質問だったら
ここで済まさないでググる先生に聞いて真面目に解説してるとこ探した方が
絶対良いと思う。いや真面目な話。


268 :デフォルトの名無しさん:2009/12/13(日) 10:36:22
自分ではクラス作らなくても(Programとかは別として)コンソールアプリくらいなら作れるわな。
でもほぼ確実にフレームワークで用意されてるクラスは利用することになる。
で、そのフレームワークのクラスがクラスじゃなくて全部個別のメソッドやらだったりしたら
プログラムがどんなことになるか考えてみ。


269 :デフォルトの名無しさん:2009/12/13(日) 10:37:30
まあこれももちろんほんのほんの入り口の話でしかないけどね。


270 :デフォルトの名無しさん:2009/12/13(日) 10:45:27
LinqかArrayクラスにsliceみたいの欲しいので誰か書いてよ

271 :デフォルトの名無しさん:2009/12/13(日) 10:47:29
VBから来た人はクラスの理解が浅いんだよなぁ

272 :デフォルトの名無しさん:2009/12/13(日) 10:48:21
だってVBはモジュールを扱えるし

273 :デフォルトの名無しさん:2009/12/13(日) 10:58:25
>>270
.Skip(offset).Take(length) じゃダメ?

274 :デフォルトの名無しさん:2009/12/13(日) 11:17:15
Linqってなんですかぁ?よくわかりません><

275 :デフォルトの名無しさん:2009/12/13(日) 11:34:03
知らないなら知らないでも困らない。
知ってたら便利。そんなものだよ

276 :デフォルトの名無しさん:2009/12/13(日) 11:34:52
必須ってわけじゃないしな

277 :デフォルトの名無しさん:2009/12/13(日) 11:39:36
LINQ については、こういうところで聞くより、ひととおり書いてある
Web サイトでも見た方が早いよ。

278 :デフォルトの名無しさん:2009/12/13(日) 13:07:20
アプリ内で使う設定などを保存するとして、
xmlなどに保存した設定を保持するのはどうすればいいでしょうか?
普通に変数で読み込み時に持たせるべきですか?

279 :デフォルトの名無しさん:2009/12/13(日) 13:12:58
必要なときに読み込めばいいんじゃないの?

280 :デフォルトの名無しさん:2009/12/13(日) 13:13:19
>>278
質問っていうのはさあ、自分でいろいろ調べた上で分からない点を人に聞くものなわけで、
何もせずに最初から人に丸投げ質問って人間としてどうなの?

設定の保存について解説してるところなんてweb上にいくらでもあるわけで、
そういうところの一つも読んでから聞いたら?

281 :デフォルトの名無しさん:2009/12/13(日) 13:17:15
>>280
気持ち良いですか?

282 :デフォルトの名無しさん:2009/12/13(日) 13:22:11
射精しそうです><

283 :デフォルトの名無しさん:2009/12/13(日) 13:27:23
はい。もちろん。


284 :デフォルトの名無しさん:2009/12/13(日) 13:34:09
ほぼいきかけましたか

285 :デフォルトの名無しさん:2009/12/13(日) 13:46:26
はい。もちろん。

286 :デフォルトの名無しさん:2009/12/13(日) 13:52:55
回答する気ないやつは質問者にレスすんな
初心者バーカって悦に入ってるやつら消えろや

287 :デフォルトの名無しさん:2009/12/13(日) 13:55:22
ここ数スレでそういう奴が居座っているよな
明らかに学生のノリのKY
スキル無いのが滲み出てるので脱初心者レベルなんだろうなぁ

288 :デフォルトの名無しさん:2009/12/13(日) 13:55:40
>>280
>人間としてどうなの?

お前いつも会社でそんなふうにいじめられてるんだな・・・
くじけるな。頑張れ。いつだって俺はお前の味方だよ。

289 :デフォルトの名無しさん:2009/12/13(日) 13:58:23
>>286
じゃあまずお前がそうしろよ。
自分棚上げかよ本当に馬鹿だな。

初心者の質問スレだからって何でもありな訳がないだろう。
初心者なのは咎めないが、ただの怠惰な奴まで許容できねえよ。

290 :デフォルトの名無しさん:2009/12/13(日) 13:59:30
>>1
>「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。

>初心者なのは咎めないが、ただの怠惰な奴まで許容できねえよ。
許容?これ仕事じゃないんだけど。


291 :デフォルトの名無しさん:2009/12/13(日) 14:01:26
>>290
意味不明。
俺が許す許さないの話をしてるのにたいして「仕事じゃないんだけど」ってどいういう意味だよ。

292 :デフォルトの名無しさん:2009/12/13(日) 14:02:25
というか、だからどんな怠惰な奴だろうと黙って回答すべきだ、
って偉そうに人に説教垂れるつもりなら、まず自分がそれを実践してからにしろって。
本当馬鹿だな。

293 :278:2009/12/13(日) 14:05:49
自己解決しました。

294 :デフォルトの名無しさん:2009/12/13(日) 14:06:13
だからそういう説教臭いレスはいらねえんだって言ってるだろ
そもそも宿題聞いてくるようなアホにレスしてるのはお前みたいな奴だけだ

295 :デフォルトの名無しさん:2009/12/13(日) 14:07:19
>>291
気にいらないなら黙ってろってこと。
このスレの趣旨に反するんだけど?
ここでレスするのはお前の仕事じゃないんだけど?

296 :デフォルトの名無しさん:2009/12/13(日) 14:07:28
お前が許容しようがしまいが関係無いだろ。
許容できないならこんなスレ見るなよ。

297 :デフォルトの名無しさん:2009/12/13(日) 14:08:08
>>289
俺にそんな義務はありませんw
質問者に回答しないで説教しかしないジジイはさっさと死ねや

298 :デフォルトの名無しさん:2009/12/13(日) 14:08:43
>>292
今日も絶好調っスね!!

299 :デフォルトの名無しさん:2009/12/13(日) 14:09:27
>>294
なんというか、一人っ子的自己中心性というか、アスペルガーな奴だねお前さんは。

俺は俺が言いたい事を言ってるまでで、別にどっかの馬の骨以下の
糞みたいな存在に過ぎないお前さんの必要を満たすためにレスしてるわけじゃない。

300 :デフォルトの名無しさん:2009/12/13(日) 14:10:12
>>278みたいなググればすぐ分かるような質問はみんなしばらく放置するけど

ウズウズして黙ってられないんだろうなたぶんw

301 :デフォルトの名無しさん:2009/12/13(日) 14:10:58
>>295
>気にいらないなら黙ってろってこと。

また自分を棚上げか。
だから、まず自分が自分のいってることを実践しろよ。
本当に馬鹿だな。

302 :デフォルトの名無しさん:2009/12/13(日) 14:11:12
ぶーめらん?ぶーめらん!

なんでもいいけど2ch技術系のスレにはこの手のはかならず居るから
各自適度にスルースキルを身に付けるしかないんだけどね。

303 :デフォルトの名無しさん:2009/12/13(日) 14:11:39
まずは設定っていうそのまんまの機能で事足りるか見てみ。


304 :デフォルトの名無しさん:2009/12/13(日) 14:11:40
>>300
>ウズウズして黙ってられないんだろうなたぶんw

お前、自分のこと見えてる?

305 :デフォルトの名無しさん:2009/12/13(日) 14:11:55
このスレでこんな流れは良くある事なので
目くじら立てるな新参

306 :デフォルトの名無しさん:2009/12/13(日) 14:12:12
あいかわらず気持ちよさそうw
ニヤニヤがとまらない


307 :デフォルトの名無しさん:2009/12/13(日) 14:13:02
>>306
ああ、こうやって馬鹿を叩くことほどの快感はそうそうないな正直w

308 :デフォルトの名無しさん:2009/12/13(日) 14:13:25
このスレの60%はオナニストと自治のじゃれあいで構成されています。

309 :デフォルトの名無しさん:2009/12/13(日) 14:15:05
次のオナニーどうぞ↓

310 :デフォルトの名無しさん:2009/12/13(日) 14:15:16
しかしなんでプログラマにはこんな感じのが多いんだろ

311 :デフォルトの名無しさん:2009/12/13(日) 14:15:19
どうも先週くらいからクズ回答者にわざわざ突っかかっていく奴いるよなぁ。
言っただろ?このスレはこれこと繰り返してpart50まで来たんだと。
何十番煎じ(言っても無駄だし消えても沸いてくる)なんだから指摘厨は黙ってろ。

312 :デフォルトの名無しさん:2009/12/13(日) 14:16:24
>>311
お前みたいなのも含めてな。
何時まで馬鹿を指摘し続けなきゃならないんだ、俺は。

313 :デフォルトの名無しさん:2009/12/13(日) 14:17:10
>>312
お前のキンタマから精液出るまでじゃねーのw

314 :デフォルトの名無しさん:2009/12/13(日) 14:17:58
スレッドを使うメリットって何なんでしょうか。
順番に処理していくのじゃなんでだめなんですか?
100字ぐらいで説明出来ると助かります。

315 :デフォルトの名無しさん:2009/12/13(日) 14:18:47
>>311
また自分が見えてない棚上げ馬鹿がw
自分だけは神のような特権的立場だとでも思ってるのかこういう奴は。

っていうか、悪いけどお前さんが「質問者に突っ込みたいだけの馬鹿」と、
「クズな質問者を糾してる奴」の区別が付くだけの知性がないだけだから。

316 :デフォルトの名無しさん:2009/12/13(日) 14:20:04
実はここまで3人しかいない

317 :278:2009/12/13(日) 14:21:05
なんだか、私のレスで荒れさせてしまったようで申し訳ありません
とりあえず、設定は全て別のクラスを使って読み書きする事で解決しました。
ありがとうございました。

318 :デフォルトの名無しさん:2009/12/13(日) 14:22:07
>>317
もうくんなよ。

319 :デフォルトの名無しさん:2009/12/13(日) 14:24:21
>>318
謝ってるのにどうして水を差すの?馬鹿なの?死ぬの?

320 :314:2009/12/13(日) 14:24:23
出来れば3時ぐらいまでに回答が欲しいのですが・・・
よろしくおねがいします。

321 :デフォルトの名無しさん:2009/12/13(日) 14:25:02
>>320
一人でやってろよ

322 :デフォルトの名無しさん:2009/12/13(日) 14:25:03
ほら指摘厨
はやく314に答えてやれ

323 :デフォルトの名無しさん:2009/12/13(日) 14:25:13
>>319
本気でそう思うならひっぱんなよボケ


324 :デフォルトの名無しさん:2009/12/13(日) 14:26:19
>>314はどうみても自演だから。

325 :デフォルトの名無しさん:2009/12/13(日) 14:26:57
>>324
回答できない無能力者なら正直に言ってくれて構わんよ(´・ω・`)

326 :デフォルトの名無しさん:2009/12/13(日) 14:29:05
くだらない質問はいいが、くだらない議論はいらねえw

327 :デフォルトの名無しさん:2009/12/13(日) 14:30:59
>>314
1人より2人で仕事した方がいいよね

328 :デフォルトの名無しさん:2009/12/13(日) 14:33:20
何で突然静かになるんだよ。

329 :デフォルトの名無しさん:2009/12/13(日) 14:35:07
飽きたんだろ
普通飽きる

330 :デフォルトの名無しさん:2009/12/13(日) 14:35:11
質問に答えられないからです^^

331 :デフォルトの名無しさん:2009/12/13(日) 14:35:48
イッたからでしょう

332 :デフォルトの名無しさん:2009/12/13(日) 14:36:31
>>328
さっさと消えれば?
ここはあなたにとっても有意義な場所じゃないよ^^?

333 :デフォルトの名無しさん:2009/12/13(日) 14:37:11
>>328
死ね

334 :314:2009/12/13(日) 14:37:27
>>327
できればもうすこし詳しくお願いできませんか。

335 :デフォルトの名無しさん:2009/12/13(日) 14:38:11
できますん

336 :デフォルトの名無しさん:2009/12/13(日) 14:39:25
>>314
宿題スレ行けゴミ

337 :デフォルトの名無しさん:2009/12/13(日) 14:39:45
>>336
お前ゴミ

338 :デフォルトの名無しさん:2009/12/13(日) 14:40:31
>>339
うぜえ、さっさと消えろ屑

339 :デフォルトの名無しさん:2009/12/13(日) 14:41:15
>>334
ええ?凄く明快だと思うのですが。

340 :314:2009/12/13(日) 14:41:39
>>336
お前には聞いてない。

341 :デフォルトの名無しさん:2009/12/13(日) 14:42:14
そうそう聞いてない聞いてない

342 :デフォルトの名無しさん:2009/12/13(日) 14:42:36
聞いてませんね。

343 :314:2009/12/13(日) 14:42:56
>>339
出来れば50字以上あると嬉しいのですが・・・
あと20分もない・・・

344 :デフォルトの名無しさん:2009/12/13(日) 14:43:02
聞いてませんよ

345 :デフォルトの名無しさん:2009/12/13(日) 14:44:54
聞いてませんので

346 :デフォルトの名無しさん:2009/12/13(日) 14:45:53
>>343
いやあ字数を膨らますのはお宅の仕事だと思います

347 :デフォルトの名無しさん:2009/12/13(日) 14:46:29
1人より2人で仕事した方がいいよね
2人より3人で仕事した方がいいよね
3人より4人で仕事した方がいいよね
4人よりn人で仕事した方がいいよね


348 :314:2009/12/13(日) 14:46:32
>>346
そんなこと言わずどうかお願いします・・・


349 :314:2009/12/13(日) 14:46:45
>>346
そこをなんとか。
せめて30字ぐらいにはなりませんでしょうか?

350 :デフォルトの名無しさん:2009/12/13(日) 14:47:54
314が増えたw

351 :314:2009/12/13(日) 14:47:58
>>346
知らないならレスしないでください

352 :デフォルトの名無しさん:2009/12/13(日) 14:48:51
ワロタ

353 :349(=314) ◆C3mb2PReIs :2009/12/13(日) 14:49:35
>>346
ごめんなさい。
>>348>>351は偽物です。
>>349でよろしくおねがいします。


354 :デフォルトの名無しさん:2009/12/13(日) 14:50:24
さっさと失せろクズ


355 :314 ◆JE8BnO0L9c :2009/12/13(日) 14:50:53
>>353
そういうのはやめてください…

356 :pgr ◆JE8BnO0L9c :2009/12/13(日) 14:53:13
>>355
トリバレしてますけど。

357 :314:2009/12/13(日) 14:53:35
>>353>>355
今更酉付けても信用されませんよ。

358 :314 ◆C3mb2PReIs :2009/12/13(日) 14:54:20
あと7分しかない・・・
よろしくおねがいします。

359 :デフォルトの名無しさん:2009/12/13(日) 14:55:35
314#314

360 :314 ◆C3mb2PReIs :2009/12/13(日) 14:56:05
早くしろつってんだろ!

361 :デフォルトの名無しさん:2009/12/13(日) 14:57:13
3分間待ってやる

362 :314 ◆v8P3n.3jsQ :2009/12/13(日) 14:58:07
酉変えました。
あと2分以内に30字お願いします。


363 :314:2009/12/13(日) 14:58:50
トリバレしたので変えました。
結局ググりました。
お前ら使えない。

以上。

364 :314:2009/12/13(日) 14:59:41
あと1分です!!!
早くしてください!!!

365 :314:2009/12/13(日) 15:00:00
自己解決しました。
ありがとうございました。


366 :314:2009/12/13(日) 15:00:50
実はネタでした。

367 :デフォルトの名無しさん:2009/12/13(日) 15:01:00
>>365
ちょwwお前ww時間wwwwwwwww


368 :デフォルトの名無しさん:2009/12/13(日) 15:02:11
ぴったり3時に解決出来てよかったじゃねーか。

369 :デフォルトの名無しさん:2009/12/13(日) 15:04:06
面白くないよ

370 :デフォルトの名無しさん:2009/12/13(日) 15:04:23
回答者を馬鹿にする厨房は荒らしになったか。
プログラミングの能力は中級クラスでも精神年齢は幼稚園児なんだな

371 :デフォルトの名無しさん:2009/12/13(日) 15:05:23
中級?

372 :デフォルトの名無しさん:2009/12/13(日) 15:07:38
初級もいいところだろ

373 :デフォルトの名無しさん:2009/12/13(日) 15:08:52
いや俺が超上級で他が初級だから平均的には中級


374 :デフォルトの名無しさん:2009/12/13(日) 15:09:28
さっきから面白いと思って書き込んでるんだと思うと悲しくなってくる。


375 :デフォルトの名無しさん:2009/12/13(日) 15:10:36
泣け

376 :デフォルトの名無しさん:2009/12/13(日) 15:11:40
配列をそのまま公開するな、そしてListをそのまま返さずに、CollectionやReadOnlyCollectionでラップして返せと
MSのガイドに書いてあります

377 :デフォルトの名無しさん:2009/12/13(日) 15:12:22
お前ら面白いな
これからも頼むわ

378 :デフォルトの名無しさん:2009/12/13(日) 15:16:49
>>376
書いてあります
・・・で?
途中で送信しちゃったのか?

379 :デフォルトの名無しさん:2009/12/13(日) 15:17:50
>>376
前も言ったがそんなことは何処にも書いてありません

380 :デフォルトの名無しさん:2009/12/13(日) 15:20:25
かいてあるよーだばーか

381 :デフォルトの名無しさん:2009/12/13(日) 15:21:21
聞いてない聞いてない聞いてない

382 :デフォルトの名無しさん:2009/12/13(日) 15:26:01
>>347
プログラマなら

n人よりn+1人で仕事した方がいいよね

ぐらい書かないと・・・

383 :デフォルトの名無しさん:2009/12/13(日) 15:29:16
つまりこのスレの連中が全員でC#でアプリケーション作ればすごいものができる!

384 :デフォルトの名無しさん:2009/12/13(日) 15:30:26
じゃあ俺IO担当ね

385 :デフォルトの名無しさん:2009/12/13(日) 15:31:13
じゃあ俺煽るわ


386 :デフォルトの名無しさん:2009/12/13(日) 15:35:01
じゃあ俺は元請けのピンハネ担当ね

387 :デフォルトの名無しさん:2009/12/13(日) 15:35:32
じゃあ顧客役で俺は無茶な要求する

388 :デフォルトの名無しさん:2009/12/13(日) 15:36:55
相談室でやれ

389 :デフォルトの名無しさん:2009/12/13(日) 15:37:29
じゃあ俺途中で入院するバッチ担当!

390 :デフォルトの名無しさん:2009/12/13(日) 15:40:58
じゃあ僕は残業で工数喰い潰す派遣担当

391 :デフォルトの名無しさん:2009/12/13(日) 15:43:59
そして誰もいなくなった

392 :デフォルトの名無しさん:2009/12/13(日) 15:52:46
>>380
おまえは例のブログの奴か?
書いてねぇよボケ

393 :デフォルトの名無しさん:2009/12/13(日) 15:58:00
書いてあるというやつは URI を示すだけでいいのだ

394 :デフォルトの名無しさん:2009/12/13(日) 16:02:18
おまいらw

395 :デフォルトの名無しさん:2009/12/13(日) 16:02:31
例のブログってどんなの?

396 :デフォルトの名無しさん:2009/12/13(日) 16:07:43
yっw

397 :デフォルトの名無しさん:2009/12/13(日) 16:08:48
279からまともな質問ねえな

398 :デフォルトの名無しさん:2009/12/13(日) 16:12:27
>>397
文句ばっかりいってないで変える努力したら?
人間としてどうなの?

399 :デフォルトの名無しさん:2009/12/13(日) 16:16:59
>>395
List<T>を外部に公開するなとか書いてあるブログ

400 :デフォルトの名無しさん:2009/12/13(日) 16:22:27
ぐぐった

http://csharper.blog57.fc2.com/blog-entry-224.html
これか?

http://www.ailight.jp/blog/kazuk/archive/2009/04/19/27632.aspx
それともこっち?

両記事とも元ネタにしてるのはこれだろうけど
何言ってんのかあいかわらず良くわからん記事だ・・・
http://msdn.microsoft.com/ja-jp/library/ms182142.aspx

401 :デフォルトの名無しさん:2009/12/13(日) 16:23:42
XML ドキュメントについて聞きたいのですが
名前空間に対するドキュメントってどうやって書けば良いのですか。
Javadoc でいうところの package.html みたいなものがあるのでしょうか。

402 :デフォルトの名無しさん:2009/12/13(日) 16:24:00
結局何が正解なの?

public List<Hoge> getResult();

みたいなメソッドは書いて良いの?だめなの?

403 :デフォルトの名無しさん:2009/12/13(日) 16:27:02
>>402
教条主義的な議論はともかく、不特定多数が使うライブラリなら避けた方が賢明なのは
確かだとは思う。

privateやinternalなメソッドなら全然オッケーでしょう。
もちろん間違えて自分の足を撃っちゃう可能性が小さい限りにおいて

404 :デフォルトの名無しさん:2009/12/13(日) 16:27:20
>>402
イケメンの言うことが信じられないならとりあえずこっちを読んでみるといいよ。
FxCop作った側の人のCA1002に対するコメント
http://blogs.msdn.com/fxcop/archive/2006/04/27/585476.aspx

405 :デフォルトの名無しさん:2009/12/13(日) 16:31:26
池面って.........?

406 :デフォルトの名無しさん:2009/12/13(日) 16:31:31
>>402
継承するものだけ返値にList<Hoge>を使わないようにするだけ
かりに使ってもエラーが出るから現状大丈夫なら修正しなくても問題はない
それを大げさに意味もわからず誰かがのたまってるだけなのさ

407 :デフォルトの名無しさん:2009/12/13(日) 16:32:30
>>404
The first reason is that List<T> is designed for speed and for use as an internal implementation detail, whereas Collection<T> is designed for extensibility.

The second reason why you shouldn’t expose List<T>, is because it exposes too many members, many of which are not relevant in most situations.

Javaでも ArrayList とか TreeSet とかは外から見える場所で使うな、
List とか Set とかの実装を隠したやつで使えって言われたな。

408 :デフォルトの名無しさん:2009/12/13(日) 16:34:25
>>402
ダメ。
戻り値は IList とか Collection が正解

409 :デフォルトの名無しさん:2009/12/13(日) 16:35:20
>>404 >>407
英語だとなんでも正しいって思っちゃう症候群かな?

410 :デフォルトの名無しさん:2009/12/13(日) 16:36:53
継承しないしスピード一番!→List<Hoge>
糞遅くてもいいけど継承するよ→Collection<Hoge>

要するにケースバイケースって事

411 :デフォルトの名無しさん:2009/12/13(日) 16:38:01
じゃあList<T>に委譲するのはいいの

412 :デフォルトの名無しさん:2009/12/13(日) 16:38:26
>>409
お前どこの誰が書いてるブログかよーく見てから書いた方がいいぞ

413 :デフォルトの名無しさん:2009/12/13(日) 16:39:28
文字の結合にStringBuilderを使うかどうかと一緒の議論だなw
一括りにするから叩かれるんだよ

414 :デフォルトの名無しさん:2009/12/13(日) 16:40:43
MicrosoftのVisual Studio開発チームだな
それが信じられないなら、どこも信じられないんじゃないか

415 :デフォルトの名無しさん:2009/12/13(日) 16:41:23
>>410
継承うんぬんってのは、
List<Hoge> を公開しているクラスの実装が変ったときに
List<Hoge> 以外の実装が使えなくなっちゃう、ってこと?

ところで Collection<Hoge> ってそんなに糞遅いの?
内部ではどうせ List<Hoge> を使って
外部に出すとき new Collection<Hoge>( listHoge ) みたいにラップするだけだと思ってたんだけど。


416 :デフォルトの名無しさん:2009/12/13(日) 16:46:47
CA1002がどのパターンで出るかはやってみればわかる
List.ForEachとforeachの計測は@ITもやってたけど結構違ったよな


417 :デフォルトの名無しさん:2009/12/13(日) 16:51:48
言う程の手間じゃないんだし外部公開は Collection にしとけばいいと思うよ。
速度が本当に必要になってから天秤にかけりゃいいさ。


418 :デフォルトの名無しさん:2009/12/13(日) 16:55:25
というか、集合型を外部公開すると起動するかは、以前このスレで議論したじゃないか。
何を蒸し返してるんだ。

419 :デフォルトの名無しさん:2009/12/13(日) 16:56:23
外部公開するときどうするかは、

420 :デフォルトの名無しさん:2009/12/13(日) 16:57:49
>>418
以前とかいわれてもその時見てなかった。
結論どうなったの?

421 :デフォルトの名無しさん:2009/12/13(日) 16:58:04
>>420
>>410

422 :デフォルトの名無しさん:2009/12/13(日) 16:59:56
じゃあ普段はCollection、必要に応じてListってことね。

423 :デフォルトの名無しさん:2009/12/13(日) 17:00:21
いや逆だろw

424 :デフォルトの名無しさん:2009/12/13(日) 17:02:09
>>423
必要になってからCollectionにするんじゃおそすぎる。

425 :デフォルトの名無しさん:2009/12/13(日) 17:04:16
必要(継承の可否)かどうかは設計する次点で決まるだろ
必要になればそこも変えればいいだけ
変えわすれてもCA1002が出て教えてくれる

426 :デフォルトの名無しさん:2009/12/13(日) 17:06:53
変えれば良いってそのプロパティだか戻り値だか受けてるとこ
全部なおしてまわるのか

設計する段階で全部きまりゃいいけどそんなの綺麗事だから。

427 :デフォルトの名無しさん:2009/12/13(日) 17:10:39
CA1002の警告も必要に応じてOFFにしろってぐらいだから
基本はCollection<>使えなんじゃね?

428 :デフォルトの名無しさん:2009/12/13(日) 17:10:59
必要な時はBaseClassのとあるメソッドを継承するかどうかの変更時
それは引数が変わるのと同じぐらい全体としては大きな事
変更が必要なのは当たり前だろ
何をいってるんだ?

429 :デフォルトの名無しさん:2009/12/13(日) 17:14:01
なんか結局人それぞれなんじゃね?って気がする
ここらへんはまだJavaの方がコンセンサス取れてたな。

430 :デフォルトの名無しさん:2009/12/13(日) 17:15:50
public Collection<Hoge> getResult();
とかやってるの見ると
何がんばっちゃってるのこの人(プッ
って思えてくる

素人に多いよね

431 :デフォルトの名無しさん:2009/12/13(日) 17:19:38
>>429
そうは思えないけど。
っていうか、>>430みたいな人が自分で撃った銃弾に当たって死ぬタイプだ思う。
「自分に向けて銃を撃つ馬鹿なんていねえよ」とか何とか嘯きながら。

何が問題かわかってねえんじゃないのそもそも。

432 :デフォルトの名無しさん:2009/12/13(日) 17:19:46
>>430
気持ち良いですか?

433 :デフォルトの名無しさん:2009/12/13(日) 17:20:43
イキそうですって流れになるの?

434 :デフォルトの名無しさん:2009/12/13(日) 17:21:21
Collection<Hoge> を生で使うぐらいなら
MyCollection : Collection<Hoge> するけどな。


435 :デフォルトの名無しさん:2009/12/13(日) 17:23:11
>>431
Javaは実質全てのメソッドがvirtualみたいなもんだから
ArrayList をそのまま公開する理由はなかったよ。

436 :デフォルトの名無しさん:2009/12/13(日) 17:29:49
中身を回したりする可能性があるならList<Hoge>でいいんじゃね?
それ以外はCollection<Hoge>で

まぁBind以外はほとんど回して使うと思うがね

437 :デフォルトの名無しさん:2009/12/13(日) 17:39:06
よくみるIEnumerableで外に公開するのはどうなの?

438 :デフォルトの名無しさん:2009/12/13(日) 17:41:10
いいんじゃないの?
IEnumerable な操作だけしかしない/させないってことを表明してるわけだし。

もちろん出来ることが限定されるから後々困ることもでるだろうし
本当にそれでいいのか考えてからやるべきではある。

439 :デフォルトの名無しさん:2009/12/13(日) 18:23:43
>>430
例示のメソッドの戻り値なら配列でいい

>>437
逐次処理のために、LINQのソースやパイプラインに使う前提で作ることは良くある

440 :デフォルトの名無しさん:2009/12/13(日) 18:54:38
IEnumerableって一回列挙したら終わりだったリ状態が変わっちゃったりする場合も多いから
メソッドの戻り値や引数に使うのはいいけどプロパティの型をIEnumerableにするのはやめるべき

441 :デフォルトの名無しさん:2009/12/13(日) 19:00:12
VS2008の履歴にプロジェクトが登録されないのはなんでだろー


442 :デフォルトの名無しさん:2009/12/13(日) 19:06:46
>>440
気持ちいいですか?

443 :デフォルトの名無しさん:2009/12/13(日) 19:07:01
>>440
IEnumerator と勘違いしてない?
IEnumerable ならいいと思うんだけど。

444 :デフォルトの名無しさん:2009/12/13(日) 19:41:47
>>443
あるあるw

445 :デフォルトの名無しさん:2009/12/13(日) 21:04:30
コレクションへのアクセスに何か処理を入れたくなる可能性があるならListは使わない。
外部でコレクションに何をしてもかまわない、関与しなくてよいと言い切れるならListでもいい。
それだけのことだろ。

Collectionなら継承できるから後で何らかの処理を加えたりすることもできるってだけ。


446 :デフォルトの名無しさん:2009/12/13(日) 21:09:29
それってパブリックフィールドとプロパティの関係と全く同じだよ
もちろん考え方自体は間違ってないけど,パブリックフィールド禁止というならListも禁止にしないとおかしい

447 :デフォルトの名無しさん:2009/12/13(日) 21:10:41
Collectionも別に糞重いわけじゃない。
ただ、単なるListに比べりゃそれは遅い。
どんなコレクションでも単なる配列に比べりゃそれは遅い。
コレクションへのアクセスに最大限のパフォーマンスが必要なら選択肢は配列しかない。
まあListは配列と比べなきゃ十分速いが。


448 :デフォルトの名無しさん:2009/12/13(日) 21:15:15
内部の実装が変わったとしても極力外部に影響がないような設計にする、だっけ

449 :デフォルトの名無しさん:2009/12/13(日) 21:26:50
>>445
そもそも外部に公開するインターフェイスならIListにするだろ

450 :デフォルトの名無しさん:2009/12/13(日) 22:23:57
素のList<>を公開する人は何も考えなしにやってることが多いのは確か。

451 :デフォルトの名無しさん:2009/12/13(日) 22:27:45
foreachで回して使うのにList<>で公開しない奴も何も考えてないな。

452 :デフォルトの名無しさん:2009/12/13(日) 22:36:36
じゃあ結局どうすればいいんだよ

453 :デフォルトの名無しさん:2009/12/13(日) 22:38:08
Collectionで公開すればいいんだよ

454 :デフォルトの名無しさん:2009/12/13(日) 22:42:47
ライブラリとして公開するわけじゃないならなんでもいいと思うよ

455 :デフォルトの名無しさん:2009/12/13(日) 22:50:49
結局何なんだよ。
初めて2週間の素人にも分かるよう3行にまとめてくれ。

456 :デフォルトの名無しさん:2009/12/13(日) 22:51:55
List<string> s = new List<string>();


listBox1.Items.AddRange(s);


上記コードでlistBoxに項目を追加しようとしていますが
最も適しているオーバーロード メソッドには
無効な引数がいくつか含まれています。
とエラーが出てしまいます。
List<string>では追加できないのでしょうか



457 :デフォルトの名無しさん:2009/12/13(日) 22:54:16
ListBox.Items.AddRangeって引数はObject[]だろ
List<string>なんか入るわけない

458 :デフォルトの名無しさん:2009/12/13(日) 22:55:46
s.ToArray()したら入ると思うよ

459 :デフォルトの名無しさん:2009/12/13(日) 22:56:45
MyClass mc;

これってC++だと
MyClass *mc
と同じことか?

460 :デフォルトの名無しさん:2009/12/13(日) 22:57:19
>>455
『初めて2週間の素人』には関係の無い話題なので、
論点が理解出来るまではスルーしていて差し支え無い。

461 :デフォルトの名無しさん:2009/12/13(日) 23:00:11
ケチ!

462 :デフォルトの名無しさん:2009/12/13(日) 23:00:22
>>459
特定の言語(C#)上の概念を、別の言語(C++)の概念で十分な考慮無しに決めつけるのは危険な考え方だ。
まずはC#流の概念を理解してから比較して考えた方がいいよ。

直接的な答えとしては、そうでもあるし、そうでないとも言える。
ちなみにMyClass^ mc が一番近いと言っておこうか。

463 :デフォルトの名無しさん:2009/12/13(日) 23:04:47
デブで太っ腹の俺様に向かってケチだと

464 :デフォルトの名無しさん:2009/12/13(日) 23:06:40
うん

465 :デフォルトの名無しさん:2009/12/13(日) 23:09:05
>>457-458
ありがとうございます!

466 :デフォルトの名無しさん:2009/12/13(日) 23:13:34
>>462
MyClass^ mc
ってどういう感じなの
コードであったりするけど
調べても^だと検索できないからよくわからん

467 :デフォルトの名無しさん:2009/12/13(日) 23:16:40
^ の読み方で検索すればいいじゃない

468 :デフォルトの名無しさん:2009/12/13(日) 23:16:51
C++/CLIで取り入れられたハンドル型のこと>MyClass^ mc

469 :デフォルトの名無しさん:2009/12/13(日) 23:18:08
C#風にいうならガベージコレクタで管理されたポインタ

470 :デフォルトの名無しさん:2009/12/13(日) 23:20:14
event型の変数って初期化(Null)にできないの?
+=と-=だけじゃ無理だよね?

471 :デフォルトの名無しさん:2009/12/13(日) 23:22:28
なるほど

472 :デフォルトの名無しさん:2009/12/13(日) 23:24:59
>>470
騙されたと思って
public event EventHandler TestEvent = null;
って書いてみ

473 :デフォルトの名無しさん:2009/12/13(日) 23:26:26
本当に騙されるがな(´・ω・`)

474 :デフォルトの名無しさん:2009/12/13(日) 23:26:50
イベントハンドラは言語レベルでObserverパターンを実装したものだから、
その接続を本体側から強制的に破棄するようなコードの書き方は正直おすすめしかねるがな。
接続して来た側から自発的に破棄させることが望ましい。

475 :デフォルトの名無しさん:2009/12/13(日) 23:26:59
>>472
外部のクラスや継承クラスからは代入できないだろうが。
バカはレスするな。

476 :デフォルトの名無しさん:2009/12/13(日) 23:28:43
>>475
論外だな。そんな掟破りな使い方をしようとするほうがおかしい。

477 :デフォルトの名無しさん:2009/12/13(日) 23:30:27
>>475
典型的にアンチパターンだな死ねよ

478 :デフォルトの名無しさん:2009/12/13(日) 23:31:34
というか

>外部のクラスや継承クラスからは代入できない

これの為のeventキーワードだろ。
本末転倒に過ぎる。

479 :デフォルトの名無しさん:2009/12/13(日) 23:31:59
>>475
お前から死なねばならぬようだぜ兄ちゃん。

480 :デフォルトの名無しさん:2009/12/13(日) 23:35:15
>>475の人気に嫉妬

481 :デフォルトの名無しさん:2009/12/13(日) 23:45:11
質問です。C#3.0、.NET3.5
http://dobon.net/vb/dotnet/graphics/animegif.html
ここを参考にして
gifアニメをフォームアプリで表示しているんですけど
透過の背景が砂嵐のように乱れるんです。
ビルドするたびに砂嵐も変化して、
インストーラでインストールしても
PCごとに表示が乱れたり、乱れなかったりばらばらなんです。
原因知ってる人いませんか?

gifアニメ表示は推奨されていないのでしょうか?

482 :デフォルトの名無しさん:2009/12/13(日) 23:45:39
>>478
その為、ってのはちょっと違う気もするけどね。
イベントはあくまでイベントという概念であってデリゲートとは別物だから。

483 :デフォルトの名無しさん:2009/12/13(日) 23:45:42
つーか472は初期化って言われたからコンストラクタの時の初期化だと思ったんだろ。
質問の仕方からして悪りぃ。

484 :デフォルトの名無しさん:2009/12/13(日) 23:50:00
>>481
そりゃあ、透過画像で透過部分の背景が定義されてなかったら、
合成結果だって未定義になるだろ?(結果、砂嵐発生)
したがって、画像全体で未定義の部分が残らないようにすればいい。

485 :デフォルトの名無しさん:2009/12/13(日) 23:50:59
Object型とジェネリックってどうちがうのだ?
Object型→なんでも入る
ジェネリック→なんでも入る

何がどう違う

486 :デフォルトの名無しさん:2009/12/13(日) 23:52:03
>>485
Object → なんでも入ってOK
ジェネリック → なんでも入ったら困る

487 :デフォルトの名無しさん:2009/12/13(日) 23:52:27
>>485
List<T>使わないでArrayListでプログラム書いてりゃ嫌でも分かるよ

488 :デフォルトの名無しさん:2009/12/13(日) 23:56:26
一人の人間に集団でレスつけてボコボコにするのが今のトレンドなのか?

489 :デフォルトの名無しさん:2009/12/13(日) 23:58:10
C#で、他に起動してある特定のアプリウィンドウのタイトルテキストを変更したいのですが、
APIでその動作は可能ですか?

490 :デフォルトの名無しさん:2009/12/13(日) 23:58:17
いいえ、初心者バーカというのが今のトレンドです。

491 :デフォルトの名無しさん:2009/12/13(日) 23:59:27
>>489
FindWindowかEnumWindowsでハンドルとってきてWM_SETTEXTとか使えばOK

492 :481:2009/12/14(月) 00:00:20
>>484
無知ですみません。
透過部分はその親コントロールの描画になるわけではないのでしょうか?

Formの背景を
http://dobon.net/vb/dotnet/graphics/lineargradientbrush.html
を参考にしてグラデさせてます。
pictureboxの背景をtransparentにし、gifを表示しています。

ボタン関係もすべて手作りしていて透過png(静止画)を使ってますが
透過部分は背景のフォームのグラデがしっかり見えて砂嵐は起こりません。

493 :デフォルトの名無しさん:2009/12/14(月) 00:03:26
settingsに設定を保存しているのですが、
並べ替えは可能でしょうか。

設定が増えてきて見辛いので、項目毎にするために並べ替えたいです。

494 :デフォルトの名無しさん:2009/12/14(月) 00:06:04
>>493
コメント欄に適当な数字でも入れてコメントでソートするとか。
しかし、そんなもの並び替えたいと思うかね普通は。

495 :デフォルトの名無しさん:2009/12/14(月) 00:11:03
>>494
コメント欄とはどれのことですか?
名前・型・スコープ・値 しか見当たりません。

>しかし、そんなもの並び替えたいと思うかね普通は。
単純に見辛くないですか?

496 :デフォルトの名無しさん:2009/12/14(月) 00:14:28
>>495
あーごめん、普段settingsなんて使わないから
文字列リソースと頭がゴッチャになってた。

まとめたいのなら、文字通り何かの型にまとめるべきかもね。

497 :デフォルトの名無しさん:2009/12/14(月) 00:15:13
メソッドを作る際、インスタンスメソッドとstaticメソッドのどちらにしたらよいか毎回迷うんですが、一般的な判断基準があれば教えてください。

498 :デフォルトの名無しさん:2009/12/14(月) 00:17:42
>>497
インスタンスの値を必要とするならインスタンスメソッド。
そうでないならstaticメソッド。
例外はfactoryメソッドや比較用メソッド、だな。

499 :デフォルトの名無しさん:2009/12/14(月) 00:22:49
class X{
int a,b,c,d;//ほかにもいっぱい変数とかある
void func() //a,b,c,d・・・のどれかを使うならstaticじゃない、使わないならstatic
}

こんなんでいいよ

500 :デフォルトの名無しさん:2009/12/14(月) 00:23:48
メンバ変数を使うなら(メソッド間で変数を共有)インスタンスメソッド

引数だけで解決するならsatic。

だけど、

TestClass test = new TestClass();
test.Method1();
>>497
test.Method2();
TestClass.Method3();
test.Method4();
みたいに使うならわざわざMethod3をstaticにする必要ないと思ってる。
俺の個人的な意見。

適切なサブクラスをnewして返すみたいなCreateメソッドを
ファクトリークラス作らずに基本クラスに実装するならstatic

501 :500:2009/12/14(月) 00:24:49
>>497の位置が変なところにきた。
まあ気にするな。

502 :デフォルトの名無しさん:2009/12/14(月) 00:27:59
C#って予約語を除けばすべて日本語で記述可能なんだな。
予約語自体を日本語に書き換える方法ってあるだろうか
「if」を「もし」とか

503 :デフォルトの名無しさん:2009/12/14(月) 00:29:49
>>502
いやー、たのむから識別子は半角英数字でお願いしますお願いしますorz

504 :デフォルトの名無しさん:2009/12/14(月) 00:31:19
もし (x> 0)
{}
または
{}
こんなソースが書きたいのかお前は。

公開 空虚 実行()
{
 戻る;
}

面白そうだな。

505 :デフォルトの名無しさん:2009/12/14(月) 00:32:45
>>502
なでしこ使え

506 :デフォルトの名無しさん:2009/12/14(月) 00:33:31
オッサンにはぴゅー太の日本語BASICの悪夢の再来に思えるぞ

507 :デフォルトの名無しさん:2009/12/14(月) 00:34:11
>>502
コンパイラの前段階の処理に追加すればできなくはない

508 :481:2009/12/14(月) 00:43:06
>>481ですが >>484さま以外でも
492の疑問に答えてくれる方いませんか><

509 :デフォルトの名無しさん:2009/12/14(月) 00:45:39
なんか更新してみたらえらい伸びてるなw

510 :デフォルトの名無しさん:2009/12/14(月) 00:59:13
>>488
1・2人が粘着して叩いてるだけだろ。スルーしとけ

511 :デフォルトの名無しさん:2009/12/14(月) 01:08:31
>>508
回答ではなく、単なる思い付きだけど
gifって透過部分にも何らかの色が設定されてるよね?

もし透過部分の色を同じ色に統一してあるのなら、その色をMakeTransparentで指定したら
上手くいったりしないかね。

512 :デフォルトの名無しさん:2009/12/14(月) 01:10:31
>>495
settingsファイルをXMLエディタで開いて直接編集


513 :デフォルトの名無しさん:2009/12/14(月) 01:16:34
XMLって何?使えるとすごい便利?

514 :デフォルトの名無しさん:2009/12/14(月) 01:18:21
なんだよそのアラレちゃんみたいなの

515 :デフォルトの名無しさん:2009/12/14(月) 01:27:21
>>513
便利

516 :デフォルトの名無しさん:2009/12/14(月) 01:32:42
settingsのVS組み込みエディタがあまりにも使い物にならなくて、
データ保持用クラスにデータ読み書き用のstaticメソッドまで一式自作してしまった俺が通りますよ。

517 :デフォルトの名無しさん:2009/12/14(月) 01:37:02
>>516
staticで実装するかどうかはともかく(普通は設定値を保持してるクラスのインスタンスメンバとして実装すると思うけど)、
まあそっちが普通だと思うけどね。

settigsはコントロールのプロパティとかちょこっとしたものを保存するにはいいけど、
設定値とかに使おうと思うと結局面倒で柔軟性がない。

518 :デフォルトの名無しさん:2009/12/14(月) 02:42:36
標準のSettingsクラスは初期化されるのがapp.configだから、ユーザコードからコントロールしづらくていかんな

519 :デフォルトの名無しさん:2009/12/14(月) 03:58:43
複数行あるテキストデータの、行を指定して、その行のデータを置き換えるにはどうしたらいいでしょうか?

520 :デフォルトの名無しさん:2009/12/14(月) 04:23:37
>>519
そのデータはどこに格納されてるの?
テキストファイル?

521 :デフォルトの名無しさん:2009/12/14(月) 08:48:24
>>489
特定のアプリの作者にそういうAPIを公開してもらう

それでなきゃマルウェア

522 :デフォルトの名無しさん:2009/12/14(月) 08:58:13
Settingsは定義ファイルをテキストエディタで編集しようとするんじゃなければ、
iniファイルより使いやすいものなんだがな

523 :デフォルトの名無しさん:2009/12/14(月) 09:27:10
VSのエディタって使いづらすぎるよな…
ちゃんとインテリセンスまで効く代替のいいエディタってない?

524 :278:2009/12/14(月) 09:29:42
ない。

525 :デフォルトの名無しさん:2009/12/14(月) 09:45:39
>>523
作ってMSにマークされるなりヘッドハントされるなりしてみたら?

526 :デフォルトの名無しさん:2009/12/14(月) 09:46:44
まぁ無理だな。

527 :デフォルトの名無しさん:2009/12/14(月) 09:48:57
何でVimEmuが出ないんだ?

528 :デフォルトの名無しさん:2009/12/14(月) 09:50:10
>>278
なぜか誰も答えているやつがいないので今頃回答を書いてみるが、
通常はデータを必要とする場所(例えばメインのフォームとか)でインスタンスとして持たせればいい。
オレの場合、オプションダイアログで設定を一括で変更する形式でデフォルトに戻すボタンもあるので
・現在の状態(Current)
・ダイアログでの変更前の状態(Prev)
・アプリケーションのデフォルト(Default)
という形で、それぞれアプリのデータを表すクラスにそれ自身の方でstatic変数として持たせている。
シリアライザ、デシリアイザはXMLSerializerを使って独自に実装している。

app.configを使ってるなら当然その流儀に従うことになるな。


529 :デフォルトの名無しさん:2009/12/14(月) 09:51:09
方→型

530 :デフォルトの名無しさん:2009/12/14(月) 10:50:17
理由なきオレオレ流儀

531 :デフォルトの名無しさん:2009/12/14(月) 11:21:14
なんでMSのアプリって全然カスタマイズ効かないんだろ
あのエディタはほんとひどい

532 :デフォルトの名無しさん:2009/12/14(月) 11:26:13
え、、、、やり方知らんのか

533 :デフォルトの名無しさん:2009/12/14(月) 11:43:07
>>532
じゃあ聞くけど
半角スペース、改行記号、タブを可視化するにはどうするの?
任意の条件(正規表現などにマッチする文字列)で強調表示するにはどうするの?
n×mマスの長方形にコピー&ペーストするにはどうするの?
アウトラインの一覧を表示するにはどうするの?
行番号を任意の形式で表示するにはどうするの?
キーボードショートカットを任意に変更するにはどうするの?

534 :デフォルトの名無しさん:2009/12/14(月) 11:50:47
聞かなくていいよw
ストレス溜め込んで胃潰瘍で死んでろ

535 :デフォルトの名無しさん:2009/12/14(月) 11:55:10
>>533
普通にVisual Studioのスレで聞いてくれ。
蛇足ながら知ってる範囲で答えると、
>n×mマスの長方形にコピー&ペーストするにはどうするの?
Altキーを押しながらマウスでドラッグ
>アウトラインの一覧を表示するにはどうするの?
Ctrl+J、クラスビュー、オブジェクトビューなどを使用する
>キーボードショートカットを任意に変更するにはどうするの?
オプション-環境-キーボード

536 :デフォルトの名無しさん:2009/12/14(月) 11:57:02
空白の可視化は編集→詳細

ホントしょうもないな。
検索能力ゼロだな。
死んだ方がいい。

537 :デフォルトの名無しさん:2009/12/14(月) 11:59:49
スレチって一言言ってあげるだけでいいのに。

538 :デフォルトの名無しさん:2009/12/14(月) 12:02:09
全然カスタマイズできないってのが
全然(俺流)カスタマイズできないだからさらにイテェ

犬糞かぶれとかマジでこんな感じだよね
職場にもいるけどマジ死んで欲しい

539 :デフォルトの名無しさん:2009/12/14(月) 12:02:39
マジマジうるさい。

540 :デフォルトの名無しさん:2009/12/14(月) 12:04:42
俺色に染まれ(キリッ

541 :デフォルトの名無しさん:2009/12/14(月) 12:05:59
無理してMSのエディタ使わなくていいじゃん。
マゾなの?ドMなの?

542 :デフォルトの名無しさん:2009/12/14(月) 12:09:47
もういいよ

543 :デフォルトの名無しさん:2009/12/14(月) 12:09:50
Emacsバインディング使ってるだけで迫害されるorz

544 :デフォルトの名無しさん:2009/12/14(月) 12:17:52
test

545 :デフォルトの名無しさん:2009/12/14(月) 17:04:23
DataGridViewで、一番右のカラムをDataGridViewの端に常にくっつけておきたいんですがどうすればいいですか。


546 :デフォルトの名無しさん:2009/12/14(月) 17:16:43
FILLだったかいう指定

547 :デフォルトの名無しさん:2009/12/14(月) 17:17:00
インターフェースとポリモーフィズム
なかなか面白そうだと思うけど自分でどんなクラスを使えれば有効活用できるかわからん
.netフレームワークに入ってるやつらが優秀すぎて自分であれこれクラス作る必要性があまりないから
せっかく覚えた文法知識があまり役に立たないな。

548 :デフォルトの名無しさん:2009/12/14(月) 17:19:28
自分がライブラリだとかフレームワークを作る側にでもならないと、
そういうのはわからんよね。

549 :デフォルトの名無しさん:2009/12/14(月) 17:29:38
>>547
それなりの規模にならないと真面目にクラス設計する必要ないしな。
業務システム作る、なんてことになると嫌でもそこらへんの必要性痛感すると思うよ。


550 :デフォルトの名無しさん:2009/12/14(月) 17:40:11
>インターフェースとポリモーフィズム

型にはめたり使い回しの効くようなガチガチの設計でないとそこまで真剣には使わないわな…


551 :デフォルトの名無しさん:2009/12/14(月) 17:53:11
まあ後々のためにお勉強として小さなプログラムもガチガチ設計して作ってみるってのも
良いと思うよ。

個人でWCFとかWFとか覚えようと思ったらそりゃオーバースペックな設計でもするしかないし。

552 :デフォルトの名無しさん:2009/12/14(月) 18:23:49
質問です。
Formアプリで、デザイナにてTextBox1をForm1に貼り付け、
TextBox1の幅をForm1の幅に追従するように、
TextBox1.AnchorをTop,Left,Rightにします。
ビルドするとデザイナがリフレッシュされ再描写されるのですが、
TextBox1の幅がすごく伸びます。何回戻しても伸びます。
ときには幅を元に戻してるときにVSが落ちます。
VSのバグなんでしょうか。
VS2008です。.NET3.5です。

553 :545 :2009/12/14(月) 18:23:59
dataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView1.Columns[2].Resizable = DataGridViewTriState.False;
一番端のを要素2だとするとこんな感じでOKでした。
どうもありがとうございました。

554 :デフォルトの名無しさん:2009/12/14(月) 18:50:17
>>552
デザイナのことを言っているのかアプリ自体のことを言っているのかが不明。
デザイナ上のプロパティの設定と、イベントハンドラで書いてるユーザー定義のプロパティ変更がバッティングしてるんじゃない?

555 :デフォルトの名無しさん:2009/12/14(月) 18:51:33
>>552
同じことやってみたがおきないぞ

デザイナじでも実行時でも
OSとVS2008のSPと化の情報はどうなんだろ?

俺はVISTA SP1の VS2008SP1だけど

556 :デフォルトの名無しさん:2009/12/14(月) 20:06:31
C#.NETの質問です。
ARGB形式をRGB形式に直して、
色を設定したいのですが、
setPixelv関数がRGBのみ対応で困っています。
どのようにすればいいでしょうか?


557 :デフォルトの名無しさん:2009/12/14(月) 20:09:03
エスパー出番だぞ…

558 :デフォルトの名無しさん:2009/12/14(月) 20:11:59
ARGBをRGBに直すって何だよ
アルファ値切り捨てるだけ?

559 :デフォルトの名無しさん:2009/12/14(月) 20:13:58
突然ですが質問をさせてください。
環境はWindowsXPでVisual studio 2008 Professionalを使っています。

現在、サーバーにあるmysqlのデータベースを読み込む、といったことをしようとしているのですが先に進むことができません。
どこで躓いているかというと、サーバーエクスプローラにて、接続の追加でサーバーとの接続を作ろうとしているのですが
そのデータソースの選択で、[Mysql Database]の項目がでてこず、先に進めません。
(ググってみたところ、Mysql Databaseの項目で接続するようだったので)
以前、Express Edition を使用して、コードにて接続していたときは
特に問題がなかったのでmysql側には問題はないと思われます。
そのままコードで接続すればいいという話なんですが、
今回はサーバーエクスプローラでつなごうと思っています。

非常に幼稚な質問と文章ですが、ご教授願いないでしょうか。



560 :デフォルトの名無しさん:2009/12/14(月) 20:15:10
>>558
そうです。切り捨てるだけなんですが、なんかできないんですよ。


561 :デフォルトの名無しさん:2009/12/14(月) 20:17:43
>>560
どういうコード書いてるのかちょっと貼れよ

562 :デフォルトの名無しさん:2009/12/14(月) 20:22:07
SetPixelVのCOLORREFって0xBBGGRRだろ
↓じゃ駄目なのかな

Color c = //省略
(uint)(c.R | c.G<<8 | c.B<<16)

563 :デフォルトの名無しさん:2009/12/14(月) 20:23:24
全くC#関係ないw
GDI+かWPF使えよ

564 :560:2009/12/14(月) 20:33:53
皆様返答ありがとうございます。
一応動作検証したら動きました。
もっと賢い方法が無いか確かめてみます。
しかしなんでC#はARGBなんでしょうかね。

565 :デフォルトの名無しさん:2009/12/14(月) 20:36:55
いや普通ARGBだから
ARGBだとちょうど32ビットになるので効率がいい
わざわざアルファを削る意味がない

566 :デフォルトの名無しさん:2009/12/14(月) 20:43:56
固有のフィールドを使ったりするもの→インスタンスメソッド
そういうものを使わないけどクラスに関係あるもの→staticメソッド

567 :560:2009/12/14(月) 20:45:50
>>565
親切にありがとうございます。
そういう意味ですか。

やりたかった事は、たとえばあるキーを入力すると、
スクリーン領域に一時的に赤四角なりを表示する機能を付けたかったのですが、
デスクトップのデバイスハンドルを取得して、
先ほどのSetPixelVに放り込んでループしてみても、
思うような線や四角形が描けません。

キー入力周辺はグローバルフックを利用して、
他アプリのキー入力の乗っ取りをしているので、
キー入力機能は問題なく実装されているのですが、
その手の画像処理系のところで苦戦しています。

568 :デフォルトの名無しさん:2009/12/14(月) 20:47:45
面白い冗談だ

569 :デフォルトの名無しさん:2009/12/14(月) 20:49:35
俺だったらキー押してる最中だけ真っ赤なツールウィンドウ表示するようにするわ
他アプリ書き換えるなんて面倒臭い

570 :560:2009/12/14(月) 20:53:19
>>569
それ賢いですね。思い浮かびませんでした。
つまり何らかのオブジェクトを
ユーザが動かせない固定オブジェクトにして、
デスクトップに指定座標をポイントとして表示してやって、
自分の都合のいいタイミングで消すと・・・。
其の方が圧倒的に早いですね。ありがとうございます。

571 :デフォルトの名無しさん:2009/12/14(月) 21:00:30
>>560がデスクトップに線を引きたいって事を言っているのか、他のアプリに線を引きたいと言っているのか
自身の画面に線を引きたいと言っているのかオレにはわからんのだけど、オレが理解出来てないだけ?

572 :560:2009/12/14(月) 21:05:42
>>571
言葉足らずなので追加しますと、
最終目標としてはクライアント領域に線を引くことを、
更に別アプリが閉じたとしても線を引きたいのですが、
現在いきなりそこまで求めていると失敗に終わりそうなので、
単純にスクリーン領域に線を引くことに挑戦しています。

573 :デフォルトの名無しさん:2009/12/14(月) 21:14:29
http://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_01/csharp30_01_02.html

このページで、19時以降のみ見せるメニューを追加とかいって
ItemA("項目4", 実行メソッド, () => DateTime.Now.Hour>=19)

とかやってるけど、これってラムダ式使う必要あるの?三つ目のbool型デリゲートでなくただのbool型の変数を引数にすりゃいいだけじゃないの?
なんでラムダ使ってるのかkwsk

574 :デフォルトの名無しさん:2009/12/14(月) 21:15:26
>>571へのレスで>>572なんだから、オレが理解できてないんじゃないと思ってOK?

575 :560:2009/12/14(月) 21:19:12
>>574
はい、私の言葉足らずです。
現在、デスクトップ領域に表示してみたところ、皆さんのお陰で美味い具合に行きました。
今度はウィンドウを閉じてもクライアント領域で表示できているようにできないか、
挑戦してみようと思っております。


576 :デフォルトの名無しさん:2009/12/14(月) 21:19:41
>>573
王様が裸で歩いていても裸だと言ってよいのは子供だけと寓話にもあるだろ。

577 :デフォルトの名無しさん:2009/12/14(月) 21:20:31
>>573
匿名メソッドとラムダ式の「例」だからだな。
実際にはこんな所でラムダ式を使う意味なんて皆無だろう

578 :デフォルトの名無しさん:2009/12/14(月) 21:26:04
>>575
そのクライアントって他のアプリのクライアント?

579 :デフォルトの名無しさん:2009/12/14(月) 21:27:40
うざいな。何がききたいの?

580 :デフォルトの名無しさん:2009/12/14(月) 21:29:34
3サイズ

581 :デフォルトの名無しさん:2009/12/14(月) 21:30:23
>>579
だから>>571の内容だよ
>>572みたいなとんちんかんな内容じゃイラっと来るだけだろうが

582 :560:2009/12/14(月) 21:30:39
>>578-579
いや、デスクトップ座標への画像表示はもうできたので、
他アプリのクライアントへの画像表示をする予定です。
これは自分でやってみて無理なら質問します。
説明が遅れてすみませんでした。

583 :デフォルトの名無しさん:2009/12/14(月) 21:30:46
何がおもしろいんだこのキチガイは

584 :デフォルトの名無しさん:2009/12/14(月) 21:31:26
>>581
理解できないなら黙ってろ。

585 :デフォルトの名無しさん:2009/12/14(月) 21:33:17
>>581
お前のバカさ加減にイラっとくる

586 :デフォルトの名無しさん:2009/12/14(月) 21:35:43
わかったよ、黙ってるよ

587 :デフォルトの名無しさん:2009/12/14(月) 21:36:38
どうせ答えられもしないだろうしな

588 :デフォルトの名無しさん:2009/12/14(月) 21:38:52
>>573
メニューItemsNの構築はプログラム開始時に1回だけなんだから、
bool型の変数にすると、プログラム開始時刻が指定された時間内だったかどうかの判定になる。

そうではなく、メニューItemsNから実際のメニューを構築・表示するコードが別にあって、
メニューを表示するときに時間内かどうかの判定をするために、ラムダ式にしているのだろう。

589 :デフォルトの名無しさん:2009/12/14(月) 21:39:35
ほんじゃ>>560じゃなくエスパーさんに質問
>>今度はウィンドウを閉じてもクライアント領域で表示できているようにできないか、
って何をしようとしているのか説明してくれ。


590 :デフォルトの名無しさん:2009/12/14(月) 21:42:25
小型スクリーンショットじゃね?

591 :デフォルトの名無しさん:2009/12/14(月) 21:43:13
お前ら仲いいな

592 :デフォルトの名無しさん:2009/12/14(月) 21:44:52
>>589
再描画のことだろ。
エスパーできないなら黙ってたほうがいい。

593 :デフォルトの名無しさん:2009/12/14(月) 21:45:47
ふつう、スクリーンカッターって言う罠。

594 :デフォルトの名無しさん:2009/12/14(月) 21:50:27
>>593
どこの田舎もんだよ

595 :デフォルトの名無しさん:2009/12/14(月) 21:51:32
田舎も都会も関係無いのだよ
なにかコンプレックスでもあるのかねw

596 :デフォルトの名無しさん:2009/12/14(月) 21:53:28
罵り合いなら他行きなさい。

597 :デフォルトの名無しさん:2009/12/14(月) 21:54:11
フルボッコされて、虚勢のつもりなんだろうな。

598 :デフォルトの名無しさん:2009/12/14(月) 21:57:04
なんか最近このスレにもWin32APIスレと同じような奴が巣食いているのね

599 :デフォルトの名無しさん:2009/12/14(月) 22:01:28
同じ会社の奴とか?w

600 :560:2009/12/14(月) 22:01:32
すみません。また質問です。次はコード載せておきます。

Form2 f2 = new Form2();
f2.FormBorderStyle = FormBorderStyle.None;
f2.SetDesktopBounds(x, y, 1, 1);
f2.BackColor = cr;
f2.Show();

かなりコードを端折りましたが(800ステップぐらいあるので・・・)、
単純にマウスクリックした時にフォームを色を変えて表示させました。
しかし表示されるフォームの高さと幅が1になりませんし、
デスクトップ上で表示される位置も滅茶苦茶。
マウスクリックしたところの座標を取得するために、
別関数でControl.MousePositionを利用し、其の値を保存して、
上記の関数に代入しています。

なぜマウスクリックした位置を基準に表示されないのでしょうか。

601 :デフォルトの名無しさん:2009/12/14(月) 22:04:35
必要な所だけ削るんだな。

602 :デフォルトの名無しさん:2009/12/14(月) 22:09:07
>>600
マウスのイベントを受け取ったウィンドウを基準に座標は入ってくるから、
デスクトップ座標に変換が必要

603 :デフォルトの名無しさん:2009/12/14(月) 22:09:14
フォームの最小値は MinSize だかで決まってる。

604 :デフォルトの名無しさん:2009/12/14(月) 22:10:24
>>559
何使ってるか知らんが、データプロバイダの追加に失敗してんじゃないの
てか、スレチ

605 :デフォルトの名無しさん:2009/12/14(月) 22:17:47
よそ行けよ

606 :デフォルトの名無しさん:2009/12/14(月) 22:22:44
悔しそう・・・

607 :デフォルトの名無しさん:2009/12/14(月) 22:27:55
そうだね悔しいね

って何が?

608 :デフォルトの名無しさん:2009/12/14(月) 22:34:49
C#でリアルタイム処理するのは
System.Windows.Formsのタイマーを利用しt
極力時間を短くして実行させまくればいいの?もっといい方法ある?

609 :デフォルトの名無しさん:2009/12/14(月) 22:37:13
OSがリアルタイムOSじゃないなら期待しない方がいい

610 :デフォルトの名無しさん:2009/12/14(月) 22:37:28
別スレでfor使って無限ループさせりゃいいんじゃね

611 :デフォルトの名無しさん:2009/12/14(月) 22:41:01
フォームアプリケーションで,UIをフリーズさせることなくできるだけ頻繁にUIスレッドで処理をしたいなら
Application.Idleイベント

612 :デフォルトの名無しさん:2009/12/14(月) 22:48:32
拡張メソッドって
thisが引数なの?
それとも引数はないの?

int型の拡張メソッド作ろうとしたら
10.add(3);
みたいになるけど、これは引数はint型?それとも本当はthis int x,int yってなってるから二つ?
どっち!?

613 :デフォルトの名無しさん:2009/12/14(月) 22:52:25
>>612
単に add(x, y) を x.add(y) と書けるようにするだけの構文糖衣。
両社に区別ない。

てか、そもそも、C++ の this->Method() だって、実体は Method(this) よ。
コンパイル結果的には。

614 :560:2009/12/14(月) 22:54:43
>>601-603
なかなか一筋縄にはいかないので、
一生懸命原因をいろいろ調べた結果、
任意指定でウィンドウを左隅に初期設定していないと、
そこからマウスクリックした位置との相対座標が狂うというものでした。
サイズに関しては、最大値と最小値を同一に設定すれば、
美味いこといけました。ありがとうございます。


615 :デフォルトの名無しさん:2009/12/14(月) 22:55:57
ぜんぜんわかってないな・・・。

616 :デフォルトの名無しさん:2009/12/14(月) 22:58:20
じゃあお前がちゃんと説明しろや!
エスパーさんよ!

617 :560:2009/12/14(月) 22:59:44
ちなみに先ほどは触れませんでしたが、
最初からクリックした位置がデスクトップ座標になるように組んでいましたので、
其の点は問題ないかと。念のため。

618 :デフォルトの名無しさん:2009/12/14(月) 23:17:27
>>616がキチガイ過ぎて久々にワロタw

619 :デフォルトの名無しさん:2009/12/14(月) 23:55:26
>>608
残念。それが一番まずい方法だ。
ウィンドウ制御のタイマーは不確定要素が多く、精度があげられない。
最低限専用のスレッドを用意して、System.Thread/System.Time系で頑張れ。

620 :デフォルトの名無しさん:2009/12/15(火) 00:03:15
ゲーム系だとWinFormsのApplication.Idle内でPeekMessageを使って
ウィンドウメッセージを監視しつつループをぶん回すってのはよく見る

621 :デフォルトの名無しさん:2009/12/15(火) 00:05:21
System.Timers.Timerも微妙に罠があって、
IDEからコントロールとしてフォームに貼り付けると、
勝手にSynchronizingObjectが設定されてしまう。

// timer1
this.timer1.Enabled = true;
this.timer1.SynchronizingObject = this;


622 :デフォルトの名無しさん:2009/12/15(火) 00:05:51
あとスレッドの中でぶん回す時にThreadSleepとか使うかも知れんがこれは十分気を付けないと1mSecのWaitかけたつもりでも15mSecとかまたされちゃうので注意

623 :デフォルトの名無しさん:2009/12/15(火) 00:06:02
それほどでもない

624 :デフォルトの名無しさん:2009/12/15(火) 00:08:04
stringの特定の場所の文字かえられない

string s="abcdefg";
s[3]='k'; //"abkdefg"

コンパイルできない。読み取りはできる。どうすればいい?

625 :デフォルトの名無しさん:2009/12/15(火) 00:09:29
>>621
それは罠とは思わんなあ。
そういう動作を望まないなら、わざわざデザイナ使わないでしょ。

「UIスレッドと同期してイベント発火しますよ」って明示するため以外に
あんな回りくどいことする理由は何もないんだから。


626 :デフォルトの名無しさん:2009/12/15(火) 00:11:33
作り直す
Substring二回をConcatするのが手っ取り早いな
StringBuilder使ってもいいけど

fixedすると書き換えられるがこれって動作保証されてるんかねぇ

627 :デフォルトの名無しさん:2009/12/15(火) 00:13:19
>>626
だめ。
C#にconstポインタがないからいじれるけど、Stringの中身はimmutable

628 :デフォルトの名無しさん:2009/12/15(火) 00:13:41
ジェネリックだのなんだのが追加されたせいで完全に劣化クラスで存在価値がなくなってるクラスとかあると思うんだが
こういうクラスって削除されないの?hashtableとかDictionaryに比べて使う価値あるの?

629 :デフォルトの名無しさん:2009/12/15(火) 00:15:52
silverlightでは非ジェネリックタイプのコレクションは省かれてるね。

630 :デフォルトの名無しさん:2009/12/15(火) 00:16:18
質問

Bitmap.MakeTransparent()って解除する方法ありますか?

631 :デフォルトの名無しさん:2009/12/15(火) 00:20:28
ない

632 :デフォルトの名無しさん:2009/12/15(火) 00:20:40
.NET1.1から3.5に移行しなきゃならないときとか
クラス消しちゃったら、その辺全部ビルドエラーになるけど?
ソースいちいち全部書き直してテストするのか君は。

633 :デフォルトの名無しさん:2009/12/15(火) 00:22:03
>>631
ありがとうございます

634 :デフォルトの名無しさん:2009/12/15(火) 00:25:05
どういたしまして

635 :デフォルトの名無しさん:2009/12/15(火) 00:28:06
>>632
そんな臭いソースのために仕様ずるずる引きずるよりビルドエラーにしちゃったほうがいいね
どうしても臭いソース使いたい人のための救済措置でビルドオプション付けるとかね
Obsoleteとかで中途半端にやるより基本使えませんというスタンスのほうが安全と思う

636 :デフォルトの名無しさん:2009/12/15(火) 00:31:27
>>635
業務だったらそんなこと言ってられんだろ

637 :デフォルトの名無しさん:2009/12/15(火) 00:33:59
>>636
むしろ業務こそそうすべき

638 :デフォルトの名無しさん:2009/12/15(火) 00:40:26
>>637
お前古いCOBOLのシステムとか見たこと無いのか?
どこからも参照されてないはずなのに削除すると
バグる謎のフラグとか、誰も理解できないけどなぜか動いてるコードが腐るほどあるぞ

639 :デフォルトの名無しさん:2009/12/15(火) 00:43:57
うーん言っちゃ悪いけど>>638みたいな人がいわゆる「おまじないプログラミング」
をするんだなと思う。

hoge(); //何故だかわからんが削除すると動かない

640 :デフォルトの名無しさん:2009/12/15(火) 00:45:48
>>638
反論になってないなw
1.1で参照されてないのに削除したらバグるフラグがあったらどうするんだって?
メモリーぶっこわしてるだけだろw

641 :デフォルトの名無しさん:2009/12/15(火) 00:46:14
//hoge(); //何故だかわからんが削除しても動いた

642 :デフォルトの名無しさん:2009/12/15(火) 00:46:18
>>638
あるあるwww

643 :デフォルトの名無しさん:2009/12/15(火) 00:51:54
技術者としては信じられないんだけど、>>638 みたいなこと言うやつって実際いるのよね。

644 :デフォルトの名無しさん:2009/12/15(火) 00:52:48
>>622
それ、MSDNのどこに書いてある?
オレもC#で精度のよいSleepはどうするべきか考えているところ。
いい情報があると助かります。

645 :デフォルトの名無しさん:2009/12/15(火) 00:53:02
つうか保守業務やったことない奴がわいてるな
このご時世時間なんか満足にとれんことも多いよ

たぶん>>638だってきれいに作り直してテストする時間があればそうしたいにきまっている
つうか、みんなそうだろう・・・・

それを知らないというんであればよっぽど恵まれている環境だろうから 逆にうらやましくはあるけど

646 :デフォルトの名無しさん:2009/12/15(火) 00:56:59
プログラマって馬鹿なの?
スレタイも読めないのか?
仕事の愚痴はブログにでも書いとけよ
ガキか

647 :デフォルトの名無しさん:2009/12/15(火) 00:57:36
>>645
そういう臭いコードの保守をすることがあるのは事実として
それが1.1のハッシュテーブルを使用禁止にする問題とどう関係する?
基本的に禁止、ビルドオプションで救済、これunsafeと同じようなものだが問題あるの?
どうせ「おまじない」に頼るなら3.5にした時点でメモリー状況変わっておかしくなるよw

648 :デフォルトの名無しさん:2009/12/15(火) 00:59:29
>>644
とりあえず自分がやってる方法

APIで無理やりタイマの精度をあげる

ストップウォッチで計測開始
WaitOneで止めてみる
計測終了

APIでタイマの精度を元に戻す

今ん所はこれでCPUの使用率上げずにそこそこの精度は出てるかな
もちろんほかのサービスとか全部切った上でだけど

もっと精度必要なら何と言えばいいのかわからんけど、スリープとかなんか使わずに経過時間ごとに処理をして祖霊が今またループさせるとかそんな感じ

どっちかっていうと底辺な感じだからもっとレベル高いのがこのスレには多いと思うからあとはそっちにまかせるw

MSDNつうか、SLEEPのライブラリの説明が指定した時間以上で発生するかんじだったはず
であとはOSの分解能とかに依存するんだったような気がしたけどどこにあったかは忘れた

説明下手糞すぎてすまん


649 :デフォルトの名無しさん:2009/12/15(火) 01:01:02
インターフェースやクラスを継承してなくてもただ単に同じメソッドがあっただけでもdynamicを利用すれば
ポリモーフィズムみたいなことができるけどこれもポリモーフィズムっていうの?

class A{
public void func(){//バーカと表示}
}

class B{
public void func(){//アーホと表示}
}

dynamic d=new A();
d.func();
d=new B();
d.func();

こんな感じ

650 :デフォルトの名無しさん:2009/12/15(火) 01:02:15
>>649
そういうのはduck typingという。
オブジェクト指向スクリプト言語の世界では語り尽くされている。

651 :デフォルトの名無しさん:2009/12/15(火) 01:15:26
昔C#で作ったアプリを起動すると
EntryPointNotFoundという例外で強制終了してしまうのですが、
これを回避するにはどうしたらいいでしょうか?
よろしくお願い致します。

652 :デフォルトの名無しさん:2009/12/15(火) 01:26:59
Main関数がないから付け足す

653 :デフォルトの名無しさん:2009/12/15(火) 01:41:22
factory methodってどんなときにつかうの

654 :デフォルトの名無しさん:2009/12/15(火) 01:56:48
>>635
あり得ないだろそんな判断。
問題があるクラスならObsoleteにするって判断はあり得るけど。
ってか既に正式に存在するクラスを消せとか本気で思ってるわけ?
ちょっと信じられないんだけどな。

あとHashtableはDisctionaryに対する利点あったりするぞ。
それは単一書き込みと複数読み取りがスレッドセーフになってること。
それだけのためにDictionaryの代わりにHashtableを使いたいことがある。
まあ.NET4ではConcurrentなディクショナリがやっと追加されるから、
そうなったら本当に要らなくなるけどな。
でもそれは削除していいってことじゃない。


655 :デフォルトの名無しさん:2009/12/15(火) 01:56:59
気が向いたとき

656 :デフォルトの名無しさん:2009/12/15(火) 01:58:58
簡単に下位互換性放棄するってどんな糞ライブラリだってことだな

657 :デフォルトの名無しさん:2009/12/15(火) 02:01:05
>それは単一書き込みと複数読み取りがスレッドセーフになってること。
この性質はキャッシュ的な機能を実装する際に非常に重要。
もっとも、.NET2.0になってしばらくの間この仕様は怪しくなったりもしたがw


658 :デフォルトの名無しさん:2009/12/15(火) 02:05:32
>>653
オブジェクトを使う側がサブクラスを意識せずに
共通のメソッドを使う場合、FactoryMethodって呼ばれるデザパタを使うのさ。
サブクラスオブジェクトの初期化処理がほとんど同じ場合には
new があちこちに分散しなくて済むっていうすばらしいメリットがある。
Db接続のIDbConnectionとかIDbCommandなんていい例だと思うがね。

MicroSoftが型付DataSetとDataAdapter作ったことで
その変のクラスが勝手にSqlDbConnectionなんかになっちゃって
何やってんだMSって思ったが。

659 :デフォルトの名無しさん:2009/12/15(火) 02:06:47
IdbConnectionとかからむのはどっちかっていうとAbstractFactoryだけどな。


660 :デフォルトの名無しさん:2009/12/15(火) 02:08:20
ほんとのデザパタのFactoryMethodそのものはそれほど使い道なかったりもする。


661 :デフォルトの名無しさん:2009/12/15(火) 02:09:39
>>654
削除なんてどこにも書いてない
基本的に使用禁止といっている
上位バージョンに移行して、どうしても使いたい人はビルドオプションで使えるようにすれば

662 :デフォルトの名無しさん:2009/12/15(火) 02:17:54
C#で作ったexeって必要なDLLさえありゃXPやVISTAならどんなWindowsでも動くのか?
zipにmscorlibやSystem.Windows.Formsを同封しとけばいい?

663 :デフォルトの名無しさん:2009/12/15(火) 02:20:17
クラス全部に優劣持たせてビルドオプションでどの範囲使えるのか決めるのか?
C#のIDEがVSだけだと思うなよ。

実際に使うと警告出るプロパティとかメソッドあるけどね。
推奨されていませんって。
やるならその程度でいいと思う。

まあ実際コレクション作るときにObjectModel.Collection知らずに
いまだにIEnumerableとIEnumeratorガリガリ実装してる人いるけどね。

664 :デフォルトの名無しさん:2009/12/15(火) 02:20:28
無茶言うな。

665 :デフォルトの名無しさん:2009/12/15(火) 02:22:09
>>662
>XPやVISTAならどんなWindowsでも動くのか
XPやVISTAって言ってるのに「どんなWindowsでも」ってなんだよw

666 :デフォルトの名無しさん:2009/12/15(火) 02:23:53
>>663
柔軟な思考出来ないなあ
Obsoleteに変わる属性を用意して、それが付与されている場合に
VSがエラー出す振る舞いにすればいいだろ

667 :デフォルトの名無しさん:2009/12/15(火) 02:24:26
例えば上で出てきたような理由でHashtable使いたい奴はオプションで変えるのか?
一個でもそういうのあったらもう何もチェックされなくなって意味ないし、
個別にオプションはさすがにやりすぎだと思うし、
せいぜいObsoleteレベルだろう、エラーはやりすぎ。


668 :デフォルトの名無しさん:2009/12/15(火) 02:26:52
じゃあ今度4になってまたそういうクラスが出てくるわな。
そのたびにいちいちビルドエラーになるのか?
そういうのはコード解析の範疇だろう。


669 :デフォルトの名無しさん:2009/12/15(火) 02:28:24
つうか好みの話ギャーギャー言ったところで 今MSの仕様これなんだから こすうるしかない
でいいんじゃないの?



670 :デフォルトの名無しさん:2009/12/15(火) 02:30:54
じゃあそういう意見をMSに言って実装してもらいなさいw
もともと>>628の必要ないクラスは削除しないの?
っていう提起から始まった話題だ。
削除はしないほうがいいって結論で終止符打とうか。

671 :デフォルトの名無しさん:2009/12/15(火) 02:31:19
デリゲート使えばポリモーフィズムみたいなことができるな

class A{
public Action<int> func;
}

A.func= ラムダ式とかAnonyデリゲートとか
A.func();

A.func=違うもの
A.func();

これはすごいな

672 :デフォルトの名無しさん:2009/12/15(火) 02:32:38
>>671
使い道がイマイチ思い付かないんだが・・・・

673 :デフォルトの名無しさん:2009/12/15(火) 02:32:45
え?それってデリゲートそのものだろ?

674 :デフォルトの名無しさん:2009/12/15(火) 02:32:58
安易に削除とか考えるのは小学生レベルだな

675 :デフォルトの名無しさん:2009/12/15(火) 02:33:24
>>669
まあそういう話になるんだよねw

>>670
誰も削除しろって主張してないし
そもそも論点そこじゃないw

676 :デフォルトの名無しさん:2009/12/15(火) 02:49:33
>>666
Obsoleteの警告を/warnaserrorでエラーにするのはダメか?

677 :デフォルトの名無しさん:2009/12/15(火) 02:52:02
>>672
if文やswitch文を消せる。まぁそれだけならインターフェイスを使ってもできるが
たくさんクラス作らなくてもいい利点とかがある。

678 :デフォルトの名無しさん:2009/12/15(火) 02:57:33
ふと疑問に思ったんだが
Form1:Formで
Form1.Loadイベント時になんらかの処理を行いたい場合って
Form1.OnLoadをoverrideするのと
Form1_LoadメソッドをAddHandlerするのって
どっちが推奨されるんだろう。

679 :デフォルトの名無しさん:2009/12/15(火) 02:57:47
>>676
現状そういう対処が現実的だね

680 :デフォルトの名無しさん:2009/12/15(火) 03:02:10
>>672
積極的に使うようなものじゃないと思うけど
mshtmlとかでDOM扱う時に簡素に書けそうね
オレは使わないけど

681 :デフォルトの名無しさん:2009/12/15(火) 03:06:04
多態ってswitch文と置き換えられるから便利って説明されるけど
本質的に多態じゃないとできないことってあるの?

682 :デフォルトの名無しさん:2009/12/15(火) 03:14:55
object.ToString();

WriteLineメソッドの引数はObject型だけでいいね!

683 :デフォルトの名無しさん:2009/12/15(火) 05:26:22
SendInputって組み合わせ技できましたか?
AとB同時押しとかw

684 :デフォルトの名無しさん:2009/12/15(火) 05:37:31
なんで「w」をつける必要がある

685 :デフォルトの名無しさん:2009/12/15(火) 06:45:22
>>678
ガイドラインに従うなら派生クラスではオーバーライド
まあ、Form1みたいな使い捨てクラスなら好きにすればいいと思うよ
(デザイナ使うとイベントになるし)

>>683
スレ違いw

686 :デフォルトの名無しさん:2009/12/15(火) 08:10:40
どうでもいいけどObsoleteの処置に文句あんならMSに言え。
ここでどーよ?どーよ?言ってもかわんないから。

687 :デフォルトの名無しさん:2009/12/15(火) 08:36:56
演算子とメソッドの違いってなんだ

2+3の+は演算子で
add(2,3)はメソッド

なんか変な書き方をするメソッドが演算子なのか?

688 :デフォルトの名無しさん:2009/12/15(火) 08:51:28
>>687
メソッドはオブジェクトに紐付いてるから

2+3
2.add(3)

がどっちかっていうと等価


689 :デフォルトの名無しさん:2009/12/15(火) 10:38:52
>>687
プログラミング的に見ると、
演算子は組み込み型の場合は関数呼び出しじゃなくて1命令にコンパイルされたりするとか、
+ と * で優先順位がついてたりするとかが差。
非 static で virtual なメソッドはまたちょっと変わってくるけど。

数学的に見るとあんまり差はない。
中置記法してるだけ。

690 :デフォルトの名無しさん:2009/12/15(火) 10:45:11
言葉遊びに忙しいな、お前らって。

691 :デフォルトの名無しさん:2009/12/15(火) 10:51:57
>>690
情報工学というのは、すべからく言葉遊びさ。

692 :デフォルトの名無しさん:2009/12/15(火) 10:56:37
「すべからく」の誤用

693 :デフォルトの名無しさん:2009/12/15(火) 11:05:41
いや、あってる。「すべからく」というのは誤用されがちな言葉で間違えて「all」の意味で使ってしまうことが多いが、
本来は「must be」だ。
で、691の場合はどちらの意味で当てても意味は通る。

694 :デフォルトの名無しさん:2009/12/15(火) 11:06:22
言ってるそばから遊びだすなよw

695 :デフォルトの名無しさん:2009/12/15(火) 11:14:42
一夜にして香ばしい議論が・・・・

696 :デフォルトの名無しさん:2009/12/15(火) 14:06:28
C#からJavaやJavaからC#って比較的楽に乗り換えできるものなんでしょうか?

697 :デフォルトの名無しさん:2009/12/15(火) 14:09:50
>>696
文法や書き方、プログラムのしての性質にはある程度共通性があるが、
その他は全く違う。
持っていけるのは自分の頭だけだな。

片方を知っていれば、もう片方は勉強はしやすいと思う。

698 :デフォルトの名無しさん:2009/12/15(火) 14:10:24
>>696
うん

699 :デフォルトの名無しさん:2009/12/15(火) 14:11:20
うん。

C# -> Java は、言語仕様よりアプリケーションフレームワークのコツを学ぶのが大変。

Java -> C# は、フレームワークがやってくれてたところをどうするか考えるのが大変。

700 :デフォルトの名無しさん:2009/12/15(火) 14:11:28
>>697
文法は違和感がないかな

ASP.NETとかはちょっと独特の所あるんで戸惑った

701 :デフォルトの名無しさん:2009/12/15(火) 14:12:50
Javaは関数ポインタやデリゲートがないよな
どうすんだよ

702 :デフォルトの名無しさん:2009/12/15(火) 14:18:23
こういう細かいことを言う奴がいるけど、あんまり気にすんな。
関数ポインタなんてそもそも使わないし、Delegate は使いたければ CGLIB みたいのもあるし。

703 :デフォルトの名無しさん:2009/12/15(火) 14:31:06
delegateといえば汎用delegateが出来てから自分で定義する事が少なくなったな

704 :デフォルトの名無しさん:2009/12/15(火) 14:39:05
C#はリファレンスやサンプルが多いから良いな。
VB.NETでだいぶプログラムが書けるようになったし移行しようかな

705 :デフォルトの名無しさん:2009/12/15(火) 14:49:12
>703
使い捨てならどうせ同じような名前になるしな。大文字と小文字変えただけみたいな。

706 :デフォルトの名無しさん:2009/12/15(火) 15:01:59
関数ポインタを使わないワロタ
たしかに使わないと不可能なことは何もないが
使わなかったら本来20行程度で済むものが40行くらいに膨れ上がったりソースコードぐちゃぐちゃになるだろ・・・
そりゃちっちゃいプログラムなら恩恵少ないだろうが
何千行もあるソ−スコードで関数ポインタを使えば多少見やすくなる場所でもまったく使わないで書くなんてすごすぎる。
goto文があるからifもforもいらないつって全部gotoで書くくらいばかばかしい

707 :デフォルトの名無しさん:2009/12/15(火) 15:04:02
ごめん、関数ポインタてどんなやつ?
使い道ってあるの?

708 :デフォルトの名無しさん:2009/12/15(火) 15:12:36
大企業同士で大げさにわいわいやって読むのも嫌になるような
巨大な仕様書を毎回でっち上げるJava陣営と比べて、
.NET Framework/C#はお互いに必要とするものを必要最小限のコストで追加していってるから
使う側は理解しやすいと言えるんじゃないかと思う。
LINQなんかは最たるものだ。

709 :デフォルトの名無しさん:2009/12/15(火) 15:15:55
クエリ、ラムダ式、イテレーター、イベント
どれも便利

710 :デフォルトの名無しさん:2009/12/15(火) 15:23:34
関数ポインタはもともとC/C++の考え方で、C#ではdelegateで使う。

つまり、関数ポインタうんぬん言ってる奴は、よくわかってないバカってこと。

711 :デフォルトの名無しさん:2009/12/15(火) 15:36:52
C++/CLIでdelegateを作ってみると両者の関係が良く分かる。
gcnew MyDelegate(関数ポインタ, this)
でデリゲートの出来上がり。

javaの場合はinterfaceを使ったObserverパターンで対応。
C#では内部クラスが外部クラスのthisを持たないから、
同じことをしようとするとめんどくさくなるな。


712 :デフォルトの名無しさん:2009/12/15(火) 15:42:29
SendInputの複合技の件について

713 :デフォルトの名無しさん:2009/12/15(火) 15:43:32
APIスレ行け。

714 :デフォルトの名無しさん:2009/12/15(火) 15:44:30
>>708
仕様変更に対する姿勢は結構違うよね。JavaとC#は。
それぞれ一長一短だと思ってはいるけど。

細かい文法の違いはあるけど他言語と比べりゃ殆んど一緒だよね。
だから >>699 に一票だな。


715 :デフォルトの名無しさん:2009/12/15(火) 15:47:46
INotifyPropertyChangedからプロパティの変化の通知を受け取るクラスを作りたいんですが
IWeakEventListener以外の方法ありますか?

716 :712:2009/12/15(火) 15:49:46
SendInputの件については、他スレで質問してきました。

>>714
俺はJAVAしか開発現場でやったことないけど、
JAVAとC#を比較するほうが間違ってると思う。
大本からしてJAVAは環境に依存しないのが売り。
それに対して、C#はマイクロソフト製品しか使えないが、
フレームワークの概念があまり無いが、.NETが優れているため、
開発にかかる時間が大幅に削減されるというメリットが。
そもそもマイクロソフト製品しか使わないくせに、
JAVA言語で組んでくれとかいうやつらもいる。
さらに、なぜかユーザインタフェースはC#で作っているという。
何がしたいのかなぞなんだが、上の方が決めたことなので逆らえない。
結局は上が決めたことが採用されるという悲しい実態。

不毛な論議だと思うが、なんでそんなに真剣なのwwww

717 :デフォルトの名無しさん:2009/12/15(火) 15:51:14
>>716
かわいそうに・・・・
日本語も不自由になっていらっしゃる・・・・

718 :712:2009/12/15(火) 15:52:31
>>717
日本語以前に、JAVAとC#を比較するお前の頭のほうが不自由。

719 :デフォルトの名無しさん:2009/12/15(火) 15:54:47
>>718
まぁそうピリピリすんなよ?

>>382は回答つくといいね

720 :デフォルトの名無しさん:2009/12/15(火) 15:54:57
>>715
言ってる意味がよく分からん
WeakEvent使わないのなら普通にイベントに+=すればいいんじゃね?

721 :デフォルトの名無しさん:2009/12/15(火) 15:57:57
JavaとC#の比較なんてするのが当りまえだろ、競合製品なんだから。
何を言ってるんだ。


722 :712:2009/12/15(火) 15:58:05
言語仕様がどうかとかほざいて真剣に悩む開発者は数いないし、
そのレベルで悩む開発者が、「乗り換え難しいですか?」なんか言わないだろ。
質問がナンセンスだと思う。
質問者の癖に偉そうでなんだが、JAVAと比較されたので単純にむかついた。

723 :デフォルトの名無しさん:2009/12/15(火) 16:01:58
この人どうしちゃったの?

724 :デフォルトの名無しさん:2009/12/15(火) 16:01:59
結局宗教論争か

725 :デフォルトの名無しさん:2009/12/15(火) 16:02:57
今時言語に愛情注いでる人ってLL界ぐらいにしかいないと思ってたが・・・
>>712はそんなにJavaが好きなのか。

726 :デフォルトの名無しさん:2009/12/15(火) 16:03:06
>>722
なんでそんなゆがんだ考え方になってるかわかんないけど
ひとそれぞれだ

興味があるだけでもいいじゃないか
いろんな言語でいいPGかける人口が増えてくれれば単純にそれでいいと思う


727 :デフォルトの名無しさん:2009/12/15(火) 16:03:44
デリゲートをプログラマが最初に使うであろう場面ってたとえばなに?

728 :デフォルトの名無しさん:2009/12/15(火) 16:04:24
XXって難しいですよね〜
とか
YYってどうやるんでしたっけ?

ぐらいの雑談でマジギレ出来るのがプログラマ

729 :デフォルトの名無しさん:2009/12/15(火) 16:04:55
>>727
イベント

730 :デフォルトの名無しさん:2009/12/15(火) 16:05:06
>>727
コールバックの実装じゃね?
説明するときはソートの順番変更をよく引き合いにだすよ。

731 :デフォルトの名無しさん:2009/12/15(火) 16:05:12
フォームにボタンを貼り付けてダブルクリック一発

732 :デフォルトの名無しさん:2009/12/15(火) 16:06:40
俺はマルチデリゲートを使うシーンを知りたいな

733 :デフォルトの名無しさん:2009/12/15(火) 16:07:26
イベントじゃないの?

734 :デフォルトの名無しさん:2009/12/15(火) 16:08:56
>>727
たとえば分業の時
自分の担当じゃない部分をデリゲート1文入れておけば
他者がそのデリゲートに自分で書いた関数を突っ込んで使う
自分で使うときも使い回しできそうな部分以外をデリゲートにしておいてテンプレートとして使ったりも出来る

735 :712:2009/12/15(火) 16:10:06
>>725
「基本的に言語はツールなんだから何だってやれよ」っという考え方ですが、
「この言語とこの言語はどちらが扱いやすいですか」的な質問は、
会社でもよくされる言われなれてることなので不愉快なだけ。

736 :デフォルトの名無しさん:2009/12/15(火) 16:12:31
俺はいくら仕事とはいえBrainfuckで開発してねって言われたらマジギレしますが。

まあカルシウムとろうね。



737 :デフォルトの名無しさん:2009/12/15(火) 16:14:17
C#は扱いやすいから人気出てんのに何いってんのこの人
楽して良い効果上げるのはエンジニアの基本なんだが

738 :712:2009/12/15(火) 16:18:24
>>737
それは単に.NETが優秀なだけであって、
C#という言語が優秀なわけじゃないだろ。
第一、言語に貴賎は無いしな。

C#に関しては開発者が少ないから、仕事が回ってくるだけ。
需給率の問題。現状教育してまでC#で作る必要は無いが、
其の中でもC#を勉強していますって人がいたら、
即効で仕事に使われるのは事実で、
そういう意味で人気があるだけ。

市場を把握しろよ。

739 :デフォルトの名無しさん:2009/12/15(火) 16:18:31
>>735
であるからこそ一般社会でもFAQであり、
このスレでも質問される可能性が高いわけだろ?
まあカリカリすんな。

740 :デフォルトの名無しさん:2009/12/15(火) 16:19:10
いいからそろそろ消えてなくなれよ。

SendInput() の使い方もわかんないやつが、何言ったって説得力皆無。

741 :712:2009/12/15(火) 16:20:31
>>739
そもそも俺が今作ってるもので、
使ってる言語はC#なんだけどね。
そもそもC#でしか作れないものじゃないから、
別に何の言語でもいいんだけど。

ちょっとカリカリしたが、
JAVA言語はしばしば死語として、
.NET系の連中に叩かれることがあるから、
その辺で敏感なのかなぁとか。

742 :712:2009/12/15(火) 16:22:00
>>740
いやJAVA言語はWin32API関数使わずに自分で組むんで・・・。
ごめんな、説明不足で。

743 :デフォルトの名無しさん:2009/12/15(火) 16:22:06
関数ポインタとデリゲートの違いの最大のメリットは関数ポインタに関数をいくつでも追加出来て1行で全部実行できるようになることだろう。

744 :デフォルトの名無しさん:2009/12/15(火) 16:22:13
>>738
>それは単に.NETが優秀なだけであって、
>C#という言語が優秀なわけじゃないだろ。

それでいうとJAVAのフレームワークが優秀なだけでJAVA言語が
というようになるわけだが…

C#の開発者が少ないというのはちょっと・・・・
まぁ思い入れがあるのはいいと思うけど栄養偏るの良くないとおもうよ

745 :712:2009/12/15(火) 16:24:25
>>744
>それでいうとJAVAのフレームワークが優秀なだけでJAVA言語が
というようになるわけだが…

其の通りだと思うよ。
そもそも開発者とか気取ってるけど、
言語とか開発環境とかフレームワークとかいう、
「道具」を使ってるだけだろ。
というか俺は其の程度の仕事しか回されない。

746 :デフォルトの名無しさん:2009/12/15(火) 16:24:48
C#の開発者少ないとか言ってる人はさすがにそろそろ周り見た方がいいと思う。
この業界で食ってるのならなおさら。

747 :デフォルトの名無しさん:2009/12/15(火) 16:26:16
いい加減名前外せよ
うぜえ

748 :デフォルトの名無しさん:2009/12/15(火) 16:27:02
論理破綻してて見苦しいなぁ。
こういうバカがC#使うから、C#自体がバカにされるんだな。

749 :デフォルトの名無しさん:2009/12/15(火) 16:27:05
>>747
一応はずすが、お前みたいな無能な奴が煽るからだろ。


750 :デフォルトの名無しさん:2009/12/15(火) 16:27:06
>>738
>C#に関しては開発者が少ないから、仕事が回ってくるだけ。
>需給率の問題。現状教育してまでC#で作る必要は無いが、
>其の中でもC#を勉強していますって人がいたら、
>即効で仕事に使われるのは事実で、
>そういう意味で人気があるだけ。

あほか。
言語で仕事が決まるのは一番低層だけだ。


751 :デフォルトの名無しさん:2009/12/15(火) 16:27:49
上層(笑)のひとちーっすw

752 :デフォルトの名無しさん:2009/12/15(火) 16:28:08
>>748
はぁ?
C#自体が馬鹿にされることは無いと思うが。
俺はC#は言語として新しいし注目してる。
馬鹿にされるとしたらそれを使って書いてるお前じゃね?

753 :デフォルトの名無しさん:2009/12/15(火) 16:28:33
>>712はあれっしょ。会社でなんかあったんでしょ。察してやれよアホども。

754 :デフォルトの名無しさん:2009/12/15(火) 16:29:45
ウゼェ
ここ何スレだっけ?
>>712他所で質問したんならさっさとそっち行けよ


755 :デフォルトの名無しさん:2009/12/15(火) 16:30:28
>>754
何言ってるのこの人。
お前以外の奴らが優秀だからここでレスして質問してるんだよ。

756 :デフォルトの名無しさん:2009/12/15(火) 16:30:35
>>712は女かもしれん
と勝手に想像した

757 :デフォルトの名無しさん:2009/12/15(火) 16:32:40
>>755
>>716


758 :デフォルトの名無しさん:2009/12/15(火) 16:33:28
その他スレでお前の質問にレスついてんべ?

759 :712:2009/12/15(火) 16:33:32
すまないが、途中から俺、全然レスしてないんだが。
俺の投稿で不愉快被った連中すまない。

先ほどの件だが、SetKeyboardStateで調べればいいだけらしい。
みんなありがとう。

760 :デフォルトの名無しさん:2009/12/15(火) 16:33:58
ID無い板は色々便利だな。

761 :デフォルトの名無しさん:2009/12/15(火) 16:34:21
>>743
そうなのか?

762 :デフォルトの名無しさん:2009/12/15(火) 16:48:52
そろそろ、年の瀬だな

まあ、とりあえず思ったこと書くと、
名前もまともに書けないものを擁護しているのは滑稽だな>JAVA

763 :712:2009/12/15(火) 16:51:16
全部俺が悪いんだよ。
ネットワークケーブルで首括るから許してくれよ。

それじゃーな。アホども。

764 :デフォルトの名無しさん:2009/12/15(火) 17:09:29
最後の方しか読んでないのでよくわからんけど
SendInputのかわりにSetKeyboardState?
同じスレッドじゃないと使えないものと、別プロセスで使うのが主なもので代わりになるのか。
まあ同じプロセス内なら何とかなるけど、それじゃそもそもSendInputには至らないしなあ

765 :712:2009/12/15(火) 17:16:46
最後にもう一言。
ここ全然使えないわ。
もう来ないよ。

766 :デフォルトの名無しさん:2009/12/15(火) 17:24:45
はいはい、常にだれかに頼って生きてなさいね。

767 :712:2009/12/15(火) 17:57:57
>>766
すみませんが、私は投稿してません。

SendInputに関してですが、フラグとかその辺の入れ方がどうもおかしいみたいでして、
その辺の理解を深めて使用していきたいと思います。
それに入力の個数を入れて、配列を放り込んでやったらいけそうな気もします。
最初に常に入力個数一個しか指定してなかったので駄目駄目だったわけですが。

ありがとうございました。以後このコテははずしますので反応しないようにしてください。


768 :デフォルトの名無しさん:2009/12/15(火) 18:07:20
何人の712がいたんだか

769 :デフォルトの名無しさん:2009/12/15(火) 18:10:18
712人いる!

770 :デフォルトの名無しさん:2009/12/15(火) 18:12:07
712.Dispose();

エラー:オブジェクトインスタンスが…以下略

771 :デフォルトの名無しさん:2009/12/15(火) 18:14:08
Arashi[] arashi = new Arashi[712];
arashi[0]= () => Console.WriteLine("最後にもう一言。ここぜんぜんつかえないわ。もうこないよ");
arashi[0]();

772 :デフォルトの名無しさん:2009/12/15(火) 18:19:25
わしのあらしは712まであるぞ

773 :デフォルトの名無しさん:2009/12/15(火) 18:23:03
ポリモーフィズムすごいな。
配列やポリモーフィズム使えば理論上はifやswitchをまったく使わなくても複雑な条件分岐をするプログラムが組めるな。

774 :デフォルトの名無しさん:2009/12/15(火) 18:27:28
だってお!w

775 :デフォルトの名無しさん:2009/12/15(火) 18:27:55
>>773
それはすげぇ・・・

776 :デフォルトの名無しさん:2009/12/15(火) 18:28:59
>>773
そういうのをState/Strategyパターンという。
ただし、C#の場合はイベントハンドラを活用して動的に切り替えることで、
Stateパターンで必須となるクラス分けすら必要なくなる。

その分そのクラスがクソ長くなるけどな。

777 :デフォルトの名無しさん:2009/12/15(火) 18:38:58
>>776
なんだ。せっかく大発見したのにすでに研究されつくして名前もついてたのか。残念。

778 :デフォルトの名無しさん:2009/12/15(火) 18:40:25
>>777
逆に考えるんだ

そのパターンに自分で気づいたのはスゲェと


779 :デフォルトの名無しさん:2009/12/15(火) 18:50:58
誰でも思いつくパターンに名前をつけたのがGoF

780 :デフォルトの名無しさん:2009/12/15(火) 18:56:58
連投しまくってるやつがいるな
返しのレベルですぐわかる

781 :デフォルトの名無しさん:2009/12/15(火) 19:07:17
誰にでも思い付くかもしれないけど(だからそもそもパターンになったわけだし)
名前を付けて共通言語化したのはよくやったと思うけどねえ。


782 :デフォルトの名無しさん:2009/12/15(火) 19:37:47
C#でリボンを使いたい場合、VisualStudio2010を待つか、
MSとライセンス契約を結んでWPFのコンポーネントを取得するか、
どちらかになるのでしょうか。

783 :デフォルトの名無しさん:2009/12/15(火) 19:57:37
http://www.codeproject.com/KB/toolbars/WinFormsRibbon.aspx

こんなんでも使えば?

784 :782:2009/12/15(火) 19:59:18
サードメーカーのもあるんですね。
ありがとう。ライセンスを確認したり、検討してみます。

785 :デフォルトの名無しさん:2009/12/15(火) 20:37:58
ガベージコレクションなしのC#がほしいなぁ

786 :デフォルトの名無しさん:2009/12/15(火) 21:00:45
>>712のレスが気持ち悪すぎてさすがにNGしたわ

787 :デフォルトの名無しさん:2009/12/15(火) 21:28:10
>>785
無理
C#の言語仕様はGC前提だからGCがないと言語仕様を満たせないのでC#とは呼べない

788 :デフォルトの名無しさん:2009/12/15(火) 21:42:37
GCなしってのはメモリ管理を完全に自分で行うってことかな
組み込みとかだとそういうのの方がいいような気もするけど
最近はそうでもないんだろか

789 :デフォルトの名無しさん:2009/12/15(火) 21:45:18
だったら組み込みJAVA使えばいいじゃん?

790 :デフォルトの名無しさん:2009/12/15(火) 22:17:11
JAVAは言語が汚いからあんまり使いたくないな

791 :デフォルトの名無しさん:2009/12/15(火) 22:19:04
え?C#は綺麗?
へえ
そうなんだ

792 :デフォルトの名無しさん:2009/12/15(火) 22:21:27
C#は言語仕様は汚いけどソースは綺麗だな
Javaはその逆

793 :デフォルトの名無しさん:2009/12/15(火) 22:21:43
そう思わないなら反例を出せよ

794 :デフォルトの名無しさん:2009/12/15(火) 22:22:41
何の反例?

795 :デフォルトの名無しさん:2009/12/15(火) 22:24:53
まーた >>712か。

796 :デフォルトの名無しさん:2009/12/15(火) 22:26:55
言語が汚いってどういうこと?

ソースが汚くなりやすいとか?

797 :デフォルトの名無しさん:2009/12/15(火) 22:26:57
俺じゃねえよ

798 :デフォルトの名無しさん:2009/12/15(火) 22:32:11
まぁ読みやすさ、書きやすさではC#の方がJavaより上だな

799 :デフォルトの名無しさん:2009/12/15(火) 22:34:07
は?なんのギャグ?

800 :デフォルトの名無しさん:2009/12/15(火) 22:35:40
なんで712は常駐してんだ?

801 :デフォルトの名無しさん:2009/12/15(火) 22:36:26
>>798
実行速度もな

802 :デフォルトの名無しさん:2009/12/15(火) 22:41:03
補助の多い言語が一番いいですよ
C++の補助が充実してるならよろこんでそちらを使いますよ

803 :デフォルトの名無しさん:2009/12/15(火) 22:44:15
宗教論争が好きな人たちですね

804 :デフォルトの名無しさん:2009/12/15(火) 23:05:00
たけしの何とか医学で俺も含めて家族全員が認知症だった
家族のためにC#でなんとかしようと思う

805 :デフォルトの名無しさん:2009/12/15(火) 23:29:55
なんでVC++の補完と整形はC#のそれに比べてあまりにお粗末なんだろう
同じ会社が作ってるのに…
とくに整形

806 :デフォルトの名無しさん:2009/12/15(火) 23:34:58
歴史のある韓国に整形は任せた方がいいのかもな

807 :デフォルトの名無しさん:2009/12/15(火) 23:41:31
1日で200進むってアホかおのれら

808 :デフォルトの名無しさん:2009/12/15(火) 23:53:31
フォームアプリにカスタムコントロール貼り付けてその中でGPUを使った処理を書きたい場合
XNAを使えばいいの?

809 :デフォルトの名無しさん:2009/12/15(火) 23:56:33
>>808
それならWPFでいいんじゃね?

810 :デフォルトの名無しさん:2009/12/16(水) 00:01:07
XNAはあくまで30fpsとか60fpsで再描画繰替えすようなの向けだから
単にGPU使いたいだけなら>>809
ゲームならXNA貼り付けもあり。

811 :デフォルトの名無しさん:2009/12/16(水) 00:09:23
ゲームではなくて、音声波形処理がCPUで間に合わないのでGPUを使ってみようと考えてるんです。
WPF調べてみますthx


812 :デフォルトの名無しさん:2009/12/16(水) 00:31:39
そんな奇特な用途は全くWPFの守備範囲外
専用のSDKが必要だけど普通はC++用だろうからC#では無理

813 :デフォルトの名無しさん:2009/12/16(水) 00:35:56
しかし、そもそもオーディオの波形処理ってそんなに重いのかな。
たかだか40kHz-16bit-2chだし、Win95の時代でも普通にソフトシンセが軽く動いてたのを
思うとそうでもない気もするけど。

まあもちろん処理内容次第なんだろうけど・・・

814 :デフォルトの名無しさん:2009/12/16(水) 00:46:06
using System;
とかかくときusing のあとインテリセンスが自動にならないんだけど・・・
Ctrl+K,Lを押さないとダメ。System.とうつと表示されるんだけど自動インテリどうやんの?

815 :デフォルトの名無しさん:2009/12/16(水) 00:48:29
マルチスレッドでだめならそんなわけのわからないものに手をだすより
ネイティブコードで書いてみるべき

816 :デフォルトの名無しさん:2009/12/16(水) 00:49:10
>>814
そもそも using を手で書くことなんてまずないだろ

817 :デフォルトの名無しさん:2009/12/16(水) 01:01:42
C#のスレッドのタイマーで特定のスレッドだけとめる方法ないですか?
スリープすると、すべてのスレッドがとまって困っています。

818 :デフォルトの名無しさん:2009/12/16(水) 01:26:03
>>814
自動じゃないけど、Ctrl+[Space]じゃダメ?

819 :デフォルトの名無しさん:2009/12/16(水) 01:28:21
>>817
止まらないよ。
デバッガで止めてるだけじゃないのか?


820 :デフォルトの名無しさん:2009/12/16(水) 01:47:20
>>819
ほんまだ。
デバッガでは正常に動くのに普通に起動して使用するとハングる。なぜwww

821 :デフォルトの名無しさん:2009/12/16(水) 02:22:14
そりゃプログラムがなんかポカやってんだろう。
どんなのか見んと何も分からんが。


822 :デフォルトの名無しさん:2009/12/16(水) 02:33:30
自作したMyArrayクラスの100個の配列をつくる

MyArray[] a =new MyArray[100];
for(int i=0;i<100;i++){
a[i]=new MyArray();
}

これをforeachに書き換えるにはどうやる?
foreach(int i in a)
a[i]=new MyArray();

ってやってもうまくいかない

823 :デフォルトの名無しさん:2009/12/16(水) 02:49:24
aの要素の型はMyArrayだからforeach使うならこうだけど
foreach(MyArray m in a)
foreachの中ではこれができなくなるよ
a[i]=new MyArray();



824 :デフォルトの名無しさん:2009/12/16(水) 02:53:57
>>816
そうなの?usingされてない名前空間のクラスを使うときどうすんの

825 :デフォルトの名無しさん:2009/12/16(水) 04:27:44
>>816
使いたいクラスを入力してShift+Alt+F10かマウスオーバーで「選択した項目をバインドする」と追加される。

タイプ数的には「us[Space]sy[Ctrl+Space];」の方が少ないし、正確なクラス名覚えて無くても大丈夫だけど
usingのためだけに一々ファイル先頭に行く必要がなく、思考を中断させられない というのは大きい。

826 :デフォルトの名無しさん:2009/12/16(水) 04:45:10
その使いたいクラスの名前が長くて入力するのが面倒だったり正確に覚えてなかったりする罠

827 :デフォルトの名無しさん:2009/12/16(水) 05:07:42
>>826
あるある。
というか名前空間と同じ文字列がクラス名にも入ってたりすることが往々にしてw

828 :デフォルトの名無しさん:2009/12/16(水) 09:13:01
>>824
クラス名を先に打つ。
その行、エラーになるけど、打ったクラス名の上で Ctrl+ .
もしくは、右クリックして「競合の解決」。

829 :デフォルトの名無しさん:2009/12/16(水) 09:14:51
Shift+Alt+F10
ショートカット初めて知ったわ

830 :デフォルトの名無しさん:2009/12/16(水) 09:33:54
その前に長いクラス名覚えられん・・・

831 :デフォルトの名無しさん:2009/12/16(水) 10:24:09
変数名とかに日本語を使うのってやっぱりマズいですか?
麻雀用語とかの対応する英語が無い単語の場合、ローマ字で変数名とか要素名書いてたんですが
シンボル名にユニコードが使えるわけだし以下みたいにしたいです。

enum 待ち { 嵌張, 辺張, 両面, ... };

多分非日本語圏の人と共同作業するとかライブラリ化する場合こういうのだと辛そうですが・・・

832 :デフォルトの名無しさん:2009/12/16(水) 10:26:25
便乗だけど、C#でenumってどうやって使うの?

C++みたいに
enum apb{ a, b, c, d};
って宣言して、
array[a]とかできなくて困ってる

833 :デフォルトの名無しさん:2009/12/16(水) 10:29:23
>>832
そーゆー使い方はあんまりしない
専らフラグとか状態変数に使うと思う。

array[a] みたいなのだったら Dictionary 使うか
自前のクラスで indexer 作るか
素直にプロパティにする方がいいんじゃない?
配列の添字で中身を区別するなんてのはちょっとC言語時代に先祖返りしてる気が。

834 :デフォルトの名無しさん:2009/12/16(水) 10:30:19
>>831
2バイト文字は使えても使わないのがお約束
コーディング規約は会社にもよるし自分で決めたコーディング規約に従うなら
使っても構わないと思うけどね

835 :デフォルトの名無しさん:2009/12/16(水) 10:31:17
>>831
日本でしか使わないなら日本語使えばいいじゃん。
特に enum 名は日本語によくする。

>>832
なんか enum の使い方として今一だと思うけども・・・
やりたい場合は (int) で整数にキャスト効くからそれでやればいい。

C の fopen(filename, "w"); みたいに、意味不明なフラグ文字列使わなくても、
File.Open(filename, FileMode.Write) みたいに書けるってのがもともとの意義なんだが。

836 :デフォルトの名無しさん:2009/12/16(水) 10:32:04
>>834
>2バイト文字は使えても使わないのがお約束
これなんで?

837 :デフォルトの名無しさん:2009/12/16(水) 10:32:20
>>834
いささか古いお約束だなぁ。
会社で禁止って言われて内なら2バイト文字をためらう理由、いまどきないぞ。

838 :デフォルトの名無しさん:2009/12/16(水) 10:34:13
>>836
C の時代の名残じゃね?
大昔は、SJIS の2バイト目に \ 相当の文字コードが入ってて苦労したし。
近代に入ってからも、C/C++ の場合、あるコンパイラなら Unicode 通るけど、
他の環境に移植するときに泣いたとかよくあったし。

C# でそういう心配要らないから。

839 :デフォルトの名無しさん:2009/12/16(水) 10:34:15
OSSならともかく普通に日本の会社に納品するなら日本語もありだと思うけど
昔の慣習でなかなかそうもいかないって場合もあるだろね。

あと海外に外注するとかなってくると厳しいだろな。

840 :デフォルトの名無しさん:2009/12/16(水) 10:36:26
>>836
C#「でしか」開発しないならいいけど
他のプログラミング言語だと使えなかったり、コンパイラが対応してなかったり。
>>838が言ってるようなことも起きたりするから
2バイト文字で変数つけちゃう癖がつくと他の言語を扱う時に困る

841 :デフォルトの名無しさん:2009/12/16(水) 10:37:09
まぁユニコードの問題もあるし使わないほうが別の言語に移行した時も問題なく動くだろうし

VBとかなら日本語変数使ってるのもあるけど・・・
もう2バイト使わないのに慣れちゃってるから日本語変数が逆に見にくい

842 :デフォルトの名無しさん:2009/12/16(水) 10:38:21
>>833
>>835
C++厨では普通だけどC#ではそーいうもんなのか
配列の代わりにDictionary使って
パフォーマンスが落ちることはない?
挿入も参照もO(1)だからメモリ食うぐらいかな?

843 :デフォルトの名無しさん:2009/12/16(水) 10:40:23
今後は識別子にユニコードが使える言語増えてくるだろうし
ゆくゆくは日本語変数は普通、なんて時代もくるかもね。

実際日本語だとおそろしく保守しやすいしな。
チーム辞書のメンテもほぼ不要になるし。

844 :デフォルトの名無しさん:2009/12/16(水) 10:41:05
日本語変数名使いたくない理由は
古くからの習慣・他言語との兼ね合い・インテリセンスが使いにくくなる
の3つだけかなぁ。
C# だけで見ると使わない理由はない。

>>840
.NET な時点で大丈夫だろ。

他の言語に移るときに苦労するってのは確かにあるんで、強くは言えないけども・・・

>>841
そういう「慣れちゃってるから」って理由なら、
日本語使ってみればすぐ慣れると思うよ。


845 :デフォルトの名無しさん:2009/12/16(水) 10:41:07
某ゲーム会社に勤めてたときに新人募集でサンプルプログラムの提出してもらったんだが
VS2005のプロジェクトでなCだったんだけど日本語変数だけで書かれてて吹いたなぁ
しかも、その日本語のワードが「文字列」なのか「変数」なのか「コメント」なのかがぱっとみでわかりにくいんだよね
色付いてるから見えるのかも知れんがわし色盲なもんで・・・てへ

846 :デフォルトの名無しさん:2009/12/16(水) 10:42:20
>>842
パフォーマンスはあきらかに落るよ。
Dictionaryの場合は一々ハッシュ取るからO(1)でも定数部分で損する。
それが嫌なら普通にプロパティ使う。
array[a], array[b] じゃなくて object.a, object.bにすればいいじゃない。



847 :デフォルトの名無しさん:2009/12/16(水) 10:42:29
>>842
クラスの外側から見える位置ではまず array[enumValue] なんてやらない。
内部では、パフォーマンスのこと考えて普通にやる。
その場合はだから、array[(int)enumValue] でできる。

848 :デフォルトの名無しさん:2009/12/16(水) 10:42:46
確かに日本語変数名の方が可読性は上がると思う
後から英語にしようと思えばリファクタもあるわけだし

849 :デフォルトの名無しさん:2009/12/16(水) 10:45:38
ただなんかこう日本語変数名見ると
どうしても「だせぇ・・・」って思ってしまう自分がいる。
あれはなんでなんだろうね・・・
プログラミングを秘儀にしておきたいって感情がちょっとあるからなんだろか。

850 :デフォルトの名無しさん:2009/12/16(水) 10:46:37
>>846
あーなるほど
object.aなら可読性も変わらないですね

>>847
公開しない部分ではキャストしてC++の感覚でやることもあるんですね

851 :デフォルトの名無しさん:2009/12/16(水) 10:47:20
もうこれからは間を取ってアラビア語変数名にしようぜ

852 :デフォルトの名無しさん:2009/12/16(水) 10:49:35
英語が苦手なプログラマの場合は日本語の方が可読性あがるんかもね
英語の仕様書とかしかないもの使う機会が多いから英語の変数名の方が見やすいな

>>849
英語の中に日本語が混じってると違和感がある
言語自体が日本語なら日本語変数でいいんじゃねーか

>>851
全然間をとれてない件
間をとってハングル語を変数名にだろ!

853 :デフォルトの名無しさん:2009/12/16(水) 10:51:37
間かそれw

自分の体験だと、ユニットテストのテストメソッド名を日本語にすると
すばらしくわかりやすかった。命名に全然悩む必要なかったのもよかった。

854 :デフォルトの名無しさん:2009/12/16(水) 10:54:08
変数名とかメソッド名を考える時間って結構思考停止してるよなw
勝手に名前つけてくれる機能きてくれー

855 :デフォルトの名無しさん:2009/12/16(水) 10:55:22
>>852
英語が苦手っていより、日本の業務システムなんかだと業界用語が多発するじゃない。

そういう対応する英語が無いようなのって
結局「DoujiShiwakeZenjitsuKigenn」「TanitsuShiwakeKigen」みたいに直でローマ字にするか
「DjShiwaPrevLimit」「TanShiwaLimit」とかの中途半端に略したのにするとか
なんかしっくりこない対応しかないよね。

こういうのの場合は日本語で直で書けたら楽だと思う。




856 :デフォルトの名無しさん:2009/12/16(水) 10:56:07
>>854
int型 i1,i2,i3,i4...
int型配列 ia1[],ia2[],ia3[]
って連番にすれば悩まないよ!

857 :デフォルトの名無しさん:2009/12/16(水) 10:57:02
foo, bar, buz とか
hoge, hage, huga も忘れないであげてください。

レビュワーにぶんなぐられてもしらないけど!

858 :デフォルトの名無しさん:2009/12/16(水) 11:03:18
いただきハンガリアン

859 :デフォルトの名無しさん:2009/12/16(水) 11:04:55
俺なら一個Enum受け取ってその配列から値を返す関数作っておわりかな
中身はSwitchでも数値系にキャストして使うんでもどっちでもいい


860 :デフォルトの名無しさん:2009/12/16(水) 11:07:59
>>858
君がエロゲス好きなのはよーく分かった

861 :デフォルトの名無しさん:2009/12/16(水) 11:26:30
C#に関する質問です。
Formのタイマーを使っているのですが、
ウィンドウが途中で固まってボタン押下できなくなったり、
キー入力を受け付けなかったりするのですが、
何か対抗策はあるでしょうか。
スレッドなどは使いたくありません。

862 :デフォルトの名無しさん:2009/12/16(水) 11:28:19
オレも変数名やenumに日本語を使うのは反対だな。
ソースコードは英語(ベース)、コメントは日本語で書けば視認性もよくなるし。
(海外向けに公開するときはコメント込み英語で書くこともあるが……)

それにenumやメンバ変数に<summary></summary>を付けておけば
マウスでポイントすると意味がわかるので、そっちの方が便利じゃね?
識別子だけ日本語の単語にするより長文を入れられるし。

>>859
そういうのはenumの各値を整数の即値で初期化してしまえばいいじゃん。
ちょっと不恰好だが(int)でキャストして使う。

863 :デフォルトの名無しさん:2009/12/16(水) 11:29:45
>>861
それはタイマーの問題じゃないような気がする。
Application.DoEvents() でなんとかしのぐしかないかな・・・。

864 :デフォルトの名無しさん:2009/12/16(水) 11:31:35
>>861
タイマーのハンドラの中で何をしているのかによる。
時間のかかる処理をしていれば、当然固まる。

865 :デフォルトの名無しさん:2009/12/16(水) 11:34:28
>>862
>それにenumやメンバ変数に<summary></summary>を付けておけば
>マウスでポイントすると意味がわかるので、そっちの方が便利じゃね?
>識別子だけ日本語の単語にするより長文を入れられるし。

変数名が日本語だとポイントするまでもなく意味がわかるってメリットもあるよ。
長文読むまでもなく内容が理解できるかもしれないしね。

結局究極的にはどっちもどっちなんだろうなと。
プロジェクトリーダの趣味にしたがいますよ私は。


866 :デフォルトの名無しさん:2009/12/16(水) 11:37:40
>>861
スレッドを使わずにプログラムを走らせるってどうやってるんだ!
ぜひとも俺に教えてくれ!

867 :デフォルトの名無しさん:2009/12/16(水) 11:44:42
>>865
>変数名が日本語だとポイントするまでもなく意味がわかるってメリットもあるよ。
むしろそれくらいしか利点がないような気が。

VB6やMS Accessでシステムを作ってた時代、識別子を日本語にしてたこともあったけど、
SQLが混じり始めるとてんでダメなったりして逆に不便を感じたので
こういった開発環境でも識別子には半角英数字以外は使わないことにしている。

まあ過去の感傷だと思うやつもいるかもしれないけどな。

868 :デフォルトの名無しさん:2009/12/16(水) 11:47:17
日本語変数を避ける人は、MenuStripをデザイナで編集したときいちいちNameプロパティを置き換えるんかな

869 :デフォルトの名無しさん:2009/12/16(水) 11:47:50
>>866
あげあしとってやるなよ。
明示的に自分でスレッド作りたくないってことでしょ。

870 :デフォルトの名無しさん:2009/12/16(水) 11:48:39
>>868
それはちょっと本質的な話とは違うんでないかね


871 :861:2009/12/16(水) 11:50:00
ありがとうございます。
一回押しだということ利かないぐらい内部処理してるので、
長押しするとタイマーが中止する処理を作っておきました。

872 :デフォルトの名無しさん:2009/12/16(水) 11:52:19
>>871
それなんか根本的に問題あるからヤバくないか?

873 :デフォルトの名無しさん:2009/12/16(水) 11:54:39
インテリセンスでみげもが使えるようにならない限り、日本語識別子は入力効率が悪すぎる

>>868
普通はリソース使うから、そもそも日本語が混入したりしない

874 :デフォルトの名無しさん:2009/12/16(水) 11:58:57
>>873
デザイナで「ファイル」ってメニューを追加すると、そのままでは
private: System::Windows::Forms::ToolStripMenuItem^ ファイルToolStripMenuItem;
ってなるんだが。


875 :デフォルトの名無しさん:2009/12/16(水) 12:00:23
あ、>>874はC++/CLIでやった場合のになってたが、多分C#でも同じ

876 :デフォルトの名無しさん:2009/12/16(水) 12:03:14
C#でもなるよ
いちいち英語になおしてるけど、日本語変数名は名前考える時間が短くなっていいなあ、とは思う。

877 :デフォルトの名無しさん:2009/12/16(水) 12:03:41
最初は File で作っておいて、あとでリソースで書き換える、ってことだろ。
MUI なアプリなら、ままある作り方。

878 :デフォルトの名無しさん:2009/12/16(水) 12:04:41
標準項目の挿入とか使わないのか。
まあ余計なもん多くて削る作業が多いけどな。

879 :デフォルトの名無しさん:2009/12/16(水) 12:10:06
使わないなぁ。業務アプリだと、あんなメニューあてはまらないし。

880 :デフォルトの名無しさん:2009/12/16(水) 12:12:26
リソースで書き換えるの意味がわからん
Textは日本語のまま残して(Name)書き換えるんだろ?

881 :デフォルトの名無しさん:2009/12/16(水) 12:16:08
そもそも日本語が混入しない状況で使ってる人は答える意味が無いでしょ。
元の人は、日本語が入ったときに書き換えるか聞いてるんだから。

882 :デフォルトの名無しさん:2009/12/16(水) 12:20:13
>>880
そっちの方がわからねよ。
Textを各国版に書き換えないといけないだろ。
Control名(Name)は当然半角英数字。

ちなみにテキストリソースを多国語化するのはめっちゃ簡単。
この辺はVisual Studio様様だわー。
他の開発環境じゃあなかなかここまではいかん。

883 :デフォルトの名無しさん:2009/12/16(水) 12:21:42
書き換えるよ。もし、日本語が入ったら。

884 :デフォルトの名無しさん:2009/12/16(水) 12:25:05
たしかにインテリセンスでmigemoが使えるようになったら
何の躊躇もせずに日本語変数使うわ。

国際化は正直やる必要ないときはやらんでいいと思う。


885 :868:2009/12/16(水) 12:29:22
回答ありがとう
書き換える人が多いみたいね
「いいや日本語なら日本語で」なんて考えてしまうオレは少数派のようだ

886 :デフォルトの名無しさん:2009/12/16(水) 12:30:27
ニュートラルを日本語にして、リソースでタイ語対応してるウチは特殊だ(笑

887 :デフォルトの名無しさん:2009/12/16(水) 13:16:43
日本語が通らない環境も多いから、どう乗り切るかっていう自分なりの解決策を
普段から考えておくのもプログラマーの技能の内。そういう訓練はしておいて損はない。
変数名に使えそうな英単語をたくさん知ってるとか、そういう知識も地味に役に立つ。
入力途中でいちいち考えたり悩んだりしてると思考が止まって能率が落ちる。

888 :デフォルトの名無しさん:2009/12/16(水) 13:22:49
開発の初期段階で用語集とか作ればいいよ。

889 :デフォルトの名無しさん:2009/12/16(水) 13:32:31
昔は辞書も手放せなかったな
途中からCD-ROMの辞書になり
今はネットで検索だ

それでも名前考えるのは苦労するな。似た意味で微妙に違う単語が多いしつい同じような変数名になっちゃうし。

890 :デフォルトの名無しさん:2009/12/16(水) 13:37:12
その辺はコーディング規約の話であって、言語の話ではないわな。

891 :デフォルトの名無しさん:2009/12/16(水) 14:28:14
そだね。用語集は日本語だろうが英語だろうがチーム内で命名ルールがぶれないよう
普通作るもんだしな。

あと多バイト文字がとおらない環境ってのは今後なくなっていくんじゃないの?


892 :デフォルトの名無しさん:2009/12/16(水) 15:48:01
>>887
英単語は自分で考えるより、まず.NETのソースから引っ張ってくることが多いなぁ
名前のノリも合わせておいた方が第三者が使いやすいだろうという配慮で

893 :デフォルトの名無しさん:2009/12/16(水) 15:53:05
まあ普通にある程度の部分は.netの名前付けに準拠するよね
ウチはどっかにあったマイクロソフトの名前付けとかのガイドラインを参考にしてる



894 :デフォルトの名無しさん:2009/12/16(水) 16:49:08
エラーが発生したら、そこだけ無視して次の処理に移行できるコードを、
TryやIf文を使わずに作ることって可能ですか?

895 :デフォルトの名無しさん:2009/12/16(水) 16:50:43
うん

896 :894:2009/12/16(水) 16:53:22
ありがとうございます。
今後の参考にします。

897 :デフォルトの名無しさん:2009/12/16(水) 16:59:42
on error resume next


898 :デフォルトの名無しさん:2009/12/16(水) 20:31:27
なんか似た役割の変数で
名前のネタがつきたときに
アルファベットの後に日本語入れてるのは自分ぐらいですねそうですね

899 :デフォルトの名無しさん:2009/12/16(水) 20:42:20
C#で
二重ループを使っているのですが、
二重ループでは遅いので、
より高速に全パターンをつぶしたいと思っています。
どのような方法がありますか?

900 :デフォルトの名無しさん:2009/12/16(水) 20:44:15
二重ループをそれ以上速くする、なんてのは無理だろ。
ループの中でやってる処理を見直したら?

901 :デフォルトの名無しさん:2009/12/16(水) 20:46:47
0〜99までループするのに
for(i=0; i<100; i++)
ってやるのと
for(j=0; j<10; j++)
for(i=0; i<10; i++)
ってやるのと
そんなたいそうな差があるとは思えんがのぅ。

902 :デフォルトの名無しさん:2009/12/16(水) 20:49:58
常識的に考えてアルゴリズムや実装に問題があります

903 :デフォルトの名無しさん:2009/12/16(水) 20:50:51
ループの中見直す以外はないよなぁ。
処理の内容によっちゃアルゴリズム見直しでループを途中で脱出したりできるかもしれないけど
どんな処理してるかわからんことにはにんともかんとも。

904 :899:2009/12/16(水) 20:50:56
ありがとうございます。
無理っぽいんですね。
頑張ってループ内部処理を見直します。


905 :デフォルトの名無しさん:2009/12/16(水) 20:51:40
for(j=0; j<10; j++)
 for(i=0; i<10; i++)
   処理 i, j



for(i=0; i<10; i++)
 処理 i, 0
    :
 処理 i, 9

も、大して変わらんだろうし・・・。

906 :デフォルトの名無しさん:2009/12/16(水) 20:52:01
マシンスペック上げてみるとかどう?

907 :デフォルトの名無しさん:2009/12/16(水) 20:52:39
何この低レベルな回答の流れ

908 :デフォルトの名無しさん:2009/12/16(水) 20:52:54
無理っていうかfor文そのもののコストが表に出てくることなんかまずありえない
ループの中の処理の方が遥かに桁違いに重い

909 :899:2009/12/16(水) 20:53:54
>>903
ループの処理としては、
GetPixelを使って高さ幅、共に350ピクセルの範囲の色を1ピクセル単位で取得しています。
したがって、350*350の色を取得することになり、非常に時間がかかります。

910 :デフォルトの名無しさん:2009/12/16(水) 20:55:16
論外だ
GetPixelとSetPixelは非常に遅いことで有名
LockBitsでポインタ使ってアクセスする

911 :デフォルトの名無しさん:2009/12/16(水) 21:05:33
したがって?何がしたがってなんだ?たかが9万ちょっとがそんなに大きな数字か?
黎明期じゃあるまいし

912 :デフォルトの名無しさん:2009/12/16(水) 21:07:33
Linqって別にvar使わないとできないわけじゃないよね?

913 :デフォルトの名無しさん:2009/12/16(水) 21:14:55
>>909
結局のところ、>>910ってことだな。
ループの中の処理が重い。


914 :デフォルトの名無しさん:2009/12/16(水) 21:15:11
匿名クラスを使わない限りは。

915 :デフォルトの名無しさん:2009/12/16(水) 21:16:40
>>911
その文の「したがって」のどこが変なのだ?
したがってが掛かるのは
>350*350の色を取得することになる
であり、(その結果)非常に時間がかかります。
だろ。

なんでもかんでも見下してかかるのは良くないなぁ。

916 :デフォルトの名無しさん:2009/12/16(水) 21:26:54
例のいちゃもん小僧だろうからスルーしてあげなさい

917 :デフォルトの名無しさん:2009/12/16(水) 21:30:48
>>909
ttp://daisy64.blogspot.com/2009/01/getpixel.html
こんなん見つけたけど、これで解決かな。

918 :899:2009/12/16(水) 21:51:41
ご回答くださった方ありがとうございます。
なんなく色を取得することができました。


919 :デフォルトの名無しさん:2009/12/16(水) 22:38:08
>>917
あ、やっぱりunsafeのが速いんだ

920 :デフォルトの名無しさん:2009/12/16(水) 22:49:00
>>918
もういないと思うけど、本質的にO(n^2)かかる問題なら無理
問題によってはO(n logn)にできる場合がある
アルゴリズムの勉強をしろ

921 :デフォルトの名無しさん:2009/12/16(水) 22:49:51
今回はそんな話だったっけ?

922 :デフォルトの名無しさん:2009/12/16(水) 23:16:58
>>921
ちがうよな。煽りでもなんでもなく。

923 :デフォルトの名無しさん:2009/12/16(水) 23:56:51
たぶん O記法を覚えたばっかりで
使ってみたかったんだろう。とエスパー。

924 :デフォルトの名無しさん:2009/12/17(木) 00:09:44
どんな大規模で複雑に見えるプログラムも実は単純な機能の組み合わせでしかない。
基本的な文法さえわかっていればひとつひとつゆっくりみていけばどんな長いコードも解読可能。

925 :デフォルトの名無しさん:2009/12/17(木) 00:10:51
精神病院に帰れよ

926 :デフォルトの名無しさん:2009/12/17(木) 00:35:21
>>924
でっていう

927 :デフォルトの名無しさん:2009/12/17(木) 00:39:03
>>926
最近PG覚えたてなんだ・・・知ったかだから許してやってくれ

928 :デフォルトの名無しさん:2009/12/17(木) 00:43:24
前もひどかったが、スレの質が一段と下がってないか?

929 :デフォルトの名無しさん:2009/12/17(木) 01:01:08
単純なバイト配列の処理の場合だと、
unsafeの効果は実はほとんどなかったすることもある。


930 :デフォルトの名無しさん:2009/12/17(木) 03:43:29
unsafeとか使うやつは行け沼
クラスには使えないからね。ゴミ。

931 :デフォルトの名無しさん:2009/12/17(木) 03:45:35
unsafeは他のプロセスにアタッチするようなときに便利だったわ

932 :デフォルトの名無しさん:2009/12/17(木) 03:59:26
なんでC言語とC++では配列の宣言が
int num[];
みたいだったのにC#では
int[] num;
になってるんだろうな。Cって名前ついてるわりには全然似てないよね。
まるで海賊版を出して金儲けしてる中国人だ。

933 :デフォルトの名無しさん:2009/12/17(木) 04:09:27
int[]型というオブジェクトがあるのと
int型の変数がメモリに並んでるのでは全然違うだろ
同じ記法にされたら紛らわしいわ

934 :デフォルトの名無しさん:2009/12/17(木) 04:11:51
オブジェクトだって結局メモリになきゃいけないんだから同じだろ!
C#はオブジェクトをメモリじゃない場所に配置でもしてるのか?

935 :デフォルトの名無しさん:2009/12/17(木) 04:25:11
a.fieldと書けるか書けないかでは大差だろ

936 :デフォルトの名無しさん:2009/12/17(木) 04:54:19
>>934
それはcharとfloatがどっちもメモリにあるから同じ物、と言ってるようなもんだぞ
中身(使い方)が違うからわざわざ区別してんのに

937 :デフォルトの名無しさん:2009/12/17(木) 05:14:08
unsafeが制限きついのだけが残念だ。

int a[5][3][6];
int** p;
とかやってなんかかなり複雑なポインタ遊びができないなんて。
実用性はともかくパズル的な遊びができて楽しかったのにな。

938 :デフォルトの名無しさん:2009/12/17(木) 05:47:56
>>934 みたいな奴うぜえな。
知らないで逆切れとか。

939 :デフォルトの名無しさん:2009/12/17(木) 05:59:15
アルゴリズムを考えてくれるプログラムのアルゴリズムを考えよう

940 :デフォルトの名無しさん:2009/12/17(木) 06:11:04
>>939
つ 停止性問題

941 :デフォルトの名無しさん:2009/12/17(木) 08:49:28
>>940
「バグのないプログラム」問題ってのもあるよなw
情報工学の勉強しましょうってことですね。

942 :デフォルトの名無しさん:2009/12/17(木) 08:58:04
デリゲートはオーバーロードみたいなことできないの?
mydelegateっていうデリゲート型変数があったとして
mydelegate("あいうえお");

mydelegate("あいうえお",13);
は違う動作をする、みたいな

943 :デフォルトの名無しさん:2009/12/17(木) 09:03:35
できない

944 :デフォルトの名無しさん:2009/12/17(木) 09:34:37
それぐらい公式読めよ

945 :デフォルトの名無しさん:2009/12/17(木) 10:34:20
チャートコントロールを使いのですがASPフォームが作成できません。どうすれば作成できますか?
基本的なものはダウンロード済みです

946 :デフォルトの名無しさん:2009/12/17(木) 12:09:24
WinForms用もあるだろ

947 :デフォルトの名無しさん:2009/12/17(木) 18:56:28
C言語だと関数の引数に
func(const int x)みたいにconstを書いてたけどC#はconstみたいなのないの?

948 :デフォルトの名無しさん:2009/12/17(木) 19:03:19
ない。FAQ、ぐぐれ

949 :デフォルトの名無しさん:2009/12/17(木) 20:13:08
目覚まし時計みたいの作りたい。


プログラムは常に時間を監視して
20時になった瞬間音を鳴らす

これってどうやる?
無限ループつくってthread.sleep(1)とかやって
if(DateTime.Hour=!DateTime.Now.Hour)
音を鳴らす();
みたいにやればいいの?

950 :デフォルトの名無しさん:2009/12/17(木) 20:17:53
>>949
言っちゃ悪いけどセンスないな。

目覚ましなんかにmsオーダーの正確さなんか普通不要だから
タイマー使ってポーリングすりゃいいんだよ。

あと、そういうプログラムなら休止状態からでも自動復帰して目覚ましが鳴るように
OSのタスクスケジューラもうまく使ってね。

951 :デフォルトの名無しさん:2009/12/17(木) 20:28:26
えっ?

952 :デフォルトの名無しさん:2009/12/17(木) 20:41:35
Timerイベントを噛ますだけで良いような気がする

953 :デフォルトの名無しさん:2009/12/17(木) 20:51:03
タスクスケジューラ使うんだったら待つ必要なくね

954 :デフォルトの名無しさん:2009/12/17(木) 21:07:04
>>953
タスクスケジューラは秒単位のスケジューリングは無理。
当たり前じゃん。

だから5分前ぐらいに起動するようにしといて、後は普通にポーリングが基本。

955 :デフォルトの名無しさん:2009/12/18(金) 00:49:32
C#はC++に比べて遅いな。
同じ方法で計算させたらC#で0.012秒かかったのがC++だと0.003秒だった。
たった0.009秒の違いしかないけどなー。ガベージコレクションが原因か?

956 :デフォルトの名無しさん:2009/12/18(金) 00:52:11
>>955
ものによっちゃC++の9割くらいのスピード余裕で出るんだけどね。
(意外と、数値計算は早い)
class の new がやたらと多いと確かに遅くなる。


957 :デフォルトの名無しさん:2009/12/18(金) 01:04:20
ボトルネックになるのは大概DBアクセスとかファイルアクセスとかポストバックとかで
C#部分が遅くて気になることってあんま無いな。
ゲームとか何か壮大なもの作ってるの?

958 :デフォルトの名無しさん:2009/12/18(金) 01:12:52
C#で作ってできたexeファイルは実は機械語そのままではなく、JITコンパイラとかいうのが翻訳を行ってるの?
C#のJITコンパイラはどのフォルダにあるの?

959 :デフォルトの名無しさん:2009/12/18(金) 02:02:17
>同じ方法で計算させたら
どんなコードか見ないと何も言えない。
C++とかネイティブなコードと.NETのコードでは、
パフォーマンスの特性がだいぶ違うから。
ネイティブなコードに慣れたやつがC#で書くと
遅い書き方になってることも結構ある。


960 :デフォルトの名無しさん:2009/12/18(金) 03:34:31
起動に時間がかってるっことが多いな。
実行時間を計るときに、ロジックの一部だけを測るとほぼCの9割は出るが、
起動から終了までではかると差が大きくなる。
あとメモリを食うせいかフォーム系のアプリで、
新しいフォームや暫く使ってないフォームを開くと、
ページングや再読み込みが発生して体感速度を遅くしている。

961 :デフォルトの名無しさん:2009/12/18(金) 03:42:53
Windows Formsがうんこすぎるのは確か.

962 :デフォルトの名無しさん:2009/12/18(金) 07:18:48
listviewで簡単なスクリーンキーボードを作ろうと思っているのですが
listviewのアイテムをクリックしたときにウィンドウににフォーカスが当たらないようにするにはどうすればよいのでしょうか?

963 :デフォルトの名無しさん:2009/12/18(金) 08:14:00
日本語が苦手なら英語でもいいよ

964 :デフォルトの名無しさん:2009/12/18(金) 08:16:36
今日不思議なクラス設計を見た例えだけどAData.cs、AMethod.cs
継承も何もしていないしAMethodクラスの中にADataがクラス変数としているんだぜ・・・


965 :デフォルトの名無しさん:2009/12/18(金) 08:33:14
>>963
listview easy screen keyborad create
listview item click window forcas no! ?

966 :デフォルトの名無しさん:2009/12/18(金) 09:14:49
>>964
それがどう不思議なのか詳しく

967 :デフォルトの名無しさん:2009/12/18(金) 10:04:37
シリアルの受信で質問があります。
相手は16進のデータを送って来るのですが、受信側はString(文字列?)で受け取っています。
受信したStringデータを10進にしてデータを計算を加えテキスト出力したいのですがどうやればいいでしょうか?
以下ソースが現在まで出来ている部分です。出来れば以下ソースをベースに教えて下さい。

/* シリアル通信モジュール */
private void SetRecieveData(string dataString)
{
/* テキスト出力 */
this.textBox2.Text += (dataString + "\n");

}
private delegate void RecieveDataDelegate(string recieveData);
private void serial(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
string recieveData;

RecieveDataDelegate recieve = new RecieveDataDelegate(SetRecieveData);
try
{
recieveData = serialPort1.ReadLine(); /* base */

}
catch (Exception ex)
{
recieveData = ex.Message;
}

Invoke(recieve, recieveData);

}

968 :デフォルトの名無しさん:2009/12/18(金) 10:10:21
送信側がどういうエンコードしてるのか知らねぇのに分かるわけねーだろ
Convert.FromBase64Stringでも使っとけ

969 :デフォルトの名無しさん:2009/12/18(金) 10:19:33
>>968
すみません。
送信側はアスキーコードを使っています。

970 :デフォルトの名無しさん:2009/12/18(金) 10:26:40
今時アスキーって

971 :デフォルトの名無しさん:2009/12/18(金) 10:28:33
Parse?


972 :デフォルトの名無しさん:2009/12/18(金) 10:37:59
16進と言いつつバイナリだったりするかもしれんな

973 :967:2009/12/18(金) 10:41:13
皆さんレス有難う御座います。

>>971
Parses使用して解決しました。
ありがとう御座います。


974 :デフォルトの名無しさん:2009/12/18(金) 11:53:08
>>965の放置にワロタ

975 :デフォルトの名無しさん:2009/12/18(金) 13:20:51
だって普通にリアクションに困るじゃん

976 :デフォルトの名無しさん:2009/12/18(金) 13:35:40
スプレッドで表作ってるんですがSortRowsやSortColumnで並び替えを行った後に
ActiveCell.RowSpanやActiveCell.ColumnSpanで結合処理って出来ないんですか?
どちらも並び替えを行わなければきちんと動くのですが
並び替えをした後だと反応ないし、する前だと並び替え時に解除されてしまいます。

977 :デフォルトの名無しさん:2009/12/18(金) 13:40:58
スレ違い
サポートに電話して聞け

978 :デフォルトの名無しさん:2009/12/18(金) 13:58:40
リアクションとか置いといていいので教えてくださいorz

979 :デフォルトの名無しさん:2009/12/18(金) 15:45:04
なんでKeyValuePair<T1, T2>は守られてるのー
継承させてよぉq( ゚д゚)pブー

980 :デフォルトの名無しさん:2009/12/18(金) 15:50:32
Tuple使え

981 :デフォルトの名無しさん:2009/12/18(金) 16:26:23
>>980
それ4.0からじゃないか?

982 :デフォルトの名無しさん:2009/12/18(金) 16:26:54
それもstaticで継承出来ないだろ…

983 :デフォルトの名無しさん:2009/12/18(金) 16:29:21
自分で書いたらいいじゃん

984 :デフォルトの名無しさん:2009/12/18(金) 17:32:57
>>979
それ構造体だから

985 :デフォルトの名無しさん:2009/12/18(金) 21:09:12
初級者がC#を勉強するのに定評のある本といったらどんなものがありますか?

レベル的には本格的ではないんですがC/C++を以前すこしかじったことがある程度です(授業で半年間
C/C++のプログラムを習い、課題を提出した程度です)。

986 :デフォルトの名無しさん:2009/12/18(金) 21:11:54
>>966
AMethod.start(AData adata);
とかやらないと使えない
クラス変数にいれるならまだしもいれもしない

>>985
C/C++が使えるならノリでクラスとか調べながらやればできると思うよ


987 :デフォルトの名無しさん:2009/12/18(金) 21:13:09
授業だけだったらオブジェクト指向ノータッチでしょ
C#の絵本レベルじゃね

988 :デフォルトの名無しさん:2009/12/18(金) 21:24:27
本気で半年CとC++触ったんなら、相当組めるようになるはずだけどな。
単位欲しい(ソースコピーでもいっか)>>>>プログラム覚える
なんだろうな。
学生のプログラムの授業なんかなんの役にも立たないよな。と経験論。

989 :デフォルトの名無しさん:2009/12/18(金) 21:28:53
俺はとりあえずリファレンス本買ってとりあえず書き始めたな
マイコミのVisualC#2005ってやつ
でいくつか動く物作って限界が見えてきたところでオライリー買って
本格的に突っ込んだ勉強始めた
たぶん最初にオライリー読んだら挫折してた

990 :985:2009/12/18(金) 21:52:03
レスありがとうございます。
ご指摘のあったとおり授業で習ったC/C++に関しては
課題用の短いプログラムを書けるようになった程度です。
クラスに関しても基本的なつくりを学んだだけで継承とかに関しては
ほとんど触れていません。

C#のプログラムを勉強するにあたりできればプログラムの流儀や
書き方の癖(いい意味で)を勉強したいと思っています。

そういうポイントやTIPSを学べるC#用の本はありますか?

991 :デフォルトの名無しさん:2009/12/18(金) 22:13:04
そういえば、近くの図書館にO'Reillyのが2冊あったな
初めての〜とプログラミング〜

992 :デフォルトの名無しさん:2009/12/18(金) 22:38:07
全然アプリ作った事ないけどプログラミング作法とかデザパタ
の解説サイトをめぐるのが好きです

993 :デフォルトの名無しさん:2009/12/18(金) 22:43:22
プログラム書こうぜ。

994 :デフォルトの名無しさん:2009/12/19(土) 03:45:17
マスでも書いてろ

995 :デフォルトの名無しさん:2009/12/19(土) 07:53:09
□□□□□□
□□□□□□
□□□□□□
□□□□□□
□□□□□□
□□□□□□

996 :デフォルトの名無しさん:2009/12/19(土) 07:59:29
そこは黒四角にすべきだったよ

997 :デフォルトの名無しさん:2009/12/19(土) 10:25:57
C言語やC++だとポインタで低Lvなメモリ操作できたから
スタックやヒプといった概念が重要だったけど
C#だとガーベジでメモリはプログラマが管理できないしポインタもunsafeじゃないと使えないから
スタックやヒープといった重要じゃないんだろうか。

998 :デフォルトの名無しさん:2009/12/19(土) 10:30:00
構造体を有効活用するには必要
その辺の知識が無いなら常にクラスを使うべき

999 :デフォルトの名無しさん:2009/12/19(土) 10:31:19
どっちにしても重要だよ。


1000 :デフォルトの名無しさん:2009/12/19(土) 10:35:33
ふらっとC#,C♯,C#(初心者用) Part51
http://pc12.2ch.net/test/read.cgi/tech/1261186507/

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

211 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)