[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 12/07 23:51 / Filesize : 174 KB / Number-of Response : 788
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part45



1 名前:デフォルトの名無しさん [2008/01/21(月) 19:35:37 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
c++厨の嵐はスルー汁。

前スレ
C#, C♯, C#相談室 Part44
pc11.2ch.net/test/read.cgi/tech/1194956418/

その他テンプレ>>2-5くらい

42 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:49:30 ]
>>40
actとBindが何をしたいのか説明しないとわからんよ。
なにやらループしてるように見える。

43 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 15:29:16 ]
Action<int> act = n => Bind(sumShower, n);

Action<int> act = n => Bind(sumShower, n)(n);

44 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 18:32:34 ]
>>42
やりたいのは、関数型言語で言うところのカリー化です。束縛(Bind)じゃないですね。
勘違いしていて、またおかしな名前をつけてしまいました。

>43
あー、なるほど。引数が一つ足りないんですね。やってみたら動きました。
ありがとうございました。

45 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 20:06:30 ]
C#のジェネリックプログラミングを詳しく解説してある本あったら教えてください

46 名前:デフォルトの名無しさん [2008/01/26(土) 20:08:12 ]
プログラミングMicrosoft .NET Framework 第2版 (マイクロソフト公式解説書): ホーム: ジェフリー リッチャー,Jeffrey Richter,吉松 史彰

47 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 20:51:18 ]
>>44
>関数型言語で言うところのカリー化です。

それは部分適用のことをカリー化と呼んでる気がする。

C++界隈ではbindって呼んでるし別にbindでもいいと思うけどね。

参考)
ttp://vader.g.hatena.ne.jp/wata_d/20080123/1201078733


48 名前:デフォルトの名無しさん [2008/01/27(日) 19:18:27 ]
googleでC#の情報を効率よく検索するには
どうしたらよいでしょうか

検索時に ○○ VC# などと検索しても
#が検索対象にならんのですわ

49 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:21:31 ]
VC#じゃなくてC#ならおk

50 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:22:50 ]
>>48
c int
c# int
検索結果をくらべてみよう。
vc# は認識されないが、c#はgoogleが認識する。

それにしてもMSのネーミングセンスひどいよな。
".NET" のノイズが入らない検索方法があったら知りたい。



51 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:23:26 ]
>>49
おおぅ
これはすばらしい。コロンブスの卵でした

52 名前:デフォルトの名無しさん [2008/01/27(日) 19:55:08 ]
アプリケーションの発行 って何に使うの?

53 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:59:32 ]
前は +"C#" で検索してたけど、
最近は C# で絞れるんだな。

54 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:57:14 ]
それ系の Web サイトや blog やってる人は、ことごとく csharp という
キーワードを入れておくってのを、みんなでやればいいかも。

55 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:58:27 ]
>>50
COM とかもアレだな。

56 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:03:13 ]
COMって時々聞くけど知っとくべきもん?
今のところまったく経験なし

57 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:07:28 ]
DirectX を生で使うつもりがあるなら。

58 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 00:13:24 ]
Officeやシェルなどに手を出す必要があれば。

59 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 00:34:36 ]
ExcelもCOM

60 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 00:35:14 ]
IE コンポーネントブラウザ作ったり



61 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 00:57:45 ]
次期バージョンで遅延バインディングが入るらしいね

62 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 01:39:08 ]
COM楽しいよ
シェルの深みに嵌まってる
半分溺れかけてるとも言えるけど(;´Д`)

63 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 01:55:50 ]
>>61
マジで?

64 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 02:15:18 ]
>>63
blogs.msdn.com/charlie/archive/2008/01/25/future-focus.aspx
unsafeみたいに,書く人に罪悪感を与えるような構文でいいねw

65 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 14:01:32 ]
Formatで-を出すことはできるけど、+はだすことできないですかね?

66 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 14:22:23 ]
ToString("+0;-0;0")
string.Format("{0:+0;-0;0}", x)

67 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 14:31:05 ]
>>66
ありがとう!!

68 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 17:18:49 ]
this.を普段書かない方に質問です。

staticなプロパティと非staticなプロパティとで、命名規則って変えてますか?
変えている場合は、どういう違いをつけていますか?

今は非staticな方に_を付けていますが、どうもしっくりこなくて・・・


69 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 17:24:41 ]
しっくりも何も命名ガイドライン的にアウトじゃん。
たぶんメンバ変数のことだろうけど、それでいいんじゃね?
俺はthis付ける派だけど。

70 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 17:38:50 ]
>たぶんメンバ変数のことだろうけど
違います



71 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:22:59 ]
じゃアウトだよ

72 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:28:05 ]
_つけてpublicだったりしてるの? >プロパティ

73 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:44:04 ]
普通はstaticなプロパティなりフィールドなりって
staticであることが意味的に明らかな場合が多いから、タグで区別する必要性は感じないな。

というか、今までインスタンスメンバと混同するような状況になったことが
たぶん一度もないと思う。

結論。
それってそもそも設計が変なんじゃないの?

74 名前:68 mailto:sage [2008/01/29(火) 18:45:28 ]
>>69
>しっくりも何も命名ガイドライン的にアウトじゃん。
どこのガイドラインですか?
(C/C++で禁止になっていること・MSではPascalにしてくれとなっていることは知っています)
仕様上禁止だというのであれば、ソースをお願い致します。

>>72
メソッド内で、staticか非staticか見た目で判別できないじゃないですか
そのプロパティが定義されているクラス内でのことなので、publicかどうかは関係ないです…

75 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:50:31 ]
判断できなくて困るほどでかいクラスを書かない

76 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:51:37 ]
仕様上なんて誰も言ってない
命名ガイドラインには沿っていないって話だろ。
「ガイドライン」の意味分かる?
msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpgenref/html/cpconpropertynamingguidelines.asp

77 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:53:22 ]
>>76
アナタC++のソースでハンガリアン記法とかやっちゃう人ですね

78 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:54:15 ]
>そのプロパティが定義されているクラス内でのことなので、publicかどうかは関係ないです…

多分基本的な語彙について、話が噛み合ってない気がする

79 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:57:01 ]
>>77
(゚д゚)ハァ?

80 名前:68 mailto:sage [2008/01/29(火) 19:31:00 ]
>>75
自作クラスばかりで構成されたアプリでは問題になっていないのですが、
既存のライブラリorフレームワーク上のクラスを継承した時に問題になるんです。

>>76
階層をもう少しのぼってよく読んでみたらいいと思います



81 名前:68 mailto:sage [2008/01/29(火) 19:40:19 ]
いっぱい釣れたので、今日のところは帰ります。

82 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:40:20 ]
>>80
具体例をあげてみたら?

83 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:48:28 ]
メインのFormのメソッド呼びたいとき、

・static void Mainが書かれてるクラスにFormのインスタンスを取得するメソッドを書く
・シングルトンにする

どっちが一般的なの?

Dispose Finalizeパターンとシングルトンって相性悪そうだけど、
Program.GetForm()とか書くのも気持ち悪い・・・

あ、複数ウインドウ出さないアプリの前提で回答よろ

84 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 20:03:33 ]
program.csってあんまりいじらないんじゃね?
その前提なら
1)Form.ActiveForm
2)Application.OpenForms[0]
3)
static Form1 frm1;
public Form1()
{
 Form1.frm1 = this;
}
public static Form1 MainForm
{
 get{return frm1;}
}


85 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 20:07:54 ]
>>84 thanks
シングルトンにはしないほうが良いという結論でいいかな?
Form以外(XNAのGameクラスとか)でも使えるのは3かな

86 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:55:01 ]
どのみちFormには依存するだろ

87 名前:86 mailto:sage [2008/01/29(火) 21:57:37 ]
>>85
書き込んでから理解した
忘れてくれ

88 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:17:39 ]
いいものみつけた
download.microsoft.com/download/f/2/7/f279e71e-efb0-4155-873d-5554a0608523/CLRInsideOut2008_01.exe
winsiggen.exe便利……かな?

89 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:23:23 ]
こわくてクリックできない

90 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:24:36 ]
記事は
msdn.microsoft.com/msdnmag/issues/08/01/CLRInsideOut/default.aspx?loc=jp

日本語版記事にはダウンロードリンクがないんで
末尾のja削ってenにすると出てくるが



91 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 15:27:24 ]
Marshal.AllocHGlobal()やMarshal.ReAllocHGlobal()の引数でサイズを指定するところはなんでIntPtrなんだろうか?
AllocHGlobal()にはintで指定するのもあるけどReAllocHGlobal()はIntPtrだけだし
intかlongが自然に思うんだけれど

92 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 15:41:33 ]
size_t は int/long じゃないぜ

93 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:34:33 ]
それが何か?

94 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:05:03 ]
あほの俺が推測すると、64bit環境で2GB以上確保するため

95 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:47:10 ]
>>91
メモリを確保するんだから、native intである必要があるだろ。

96 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:01:20 ]
ありませんよ

97 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:06:24 ]
CLIのnative int型をC#で表現してるからIntPtrになってるだけでしょ。
int32, int64, native int の中で一番自然なのはnative intだと思う。

98 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:03:10 ]
>>88
これすげえ
Cのヘッダから自動生成してくれる

99 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 02:09:45 ]
>>97
うん でもさ、IntPtrのままじゃ演算できなくて結局intからキャストしてたり
SizeOfの返り値がintだったりと他の部分との整合性が取れてない点を不自然に思ってる
インターフェースがint/longでもいいし、もしくはIntPtrでもいいけどそれで演算できてたらよかったと思ってる

100 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 09:14:53 ]
LinqのIQueryableのProvider実装してる人いる?
ブログとかでやってる人の見たけれどなんかめんどくさそう・・・



101 名前:デフォルトの名無しさん [2008/01/31(木) 20:25:20 ]
C#でどこまでが言語仕様でどこからがライブラリか
という区別がよくわかりません.たとえば foreach
は予約語ですが,IEnumerable とか IEnumerator は
単なる識別子です.yield のように reserved word
ではないけど contextual keyword だというような
ものもあり,そのあたりのあいまいさが使っていて
美しくないというか・・・・

その辺をすっきりと理解して使いたいのですが,
どのような本を読めばいいのでしょうか?

102 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:45:02 ]
標準クラスライブラリは言語仕様の一部

103 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:15:59 ]
仕様が知りたいんなら仕様書読めばいいだろ

104 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:09:48 ]
っていうか別に区別しなくていいじゃん

105 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:11:43 ]
>>101
C#はCLSに基づく言語だから、C#の仕様自体がCLIの仕様を包摂している。
つまり、IEnumerableなしではC#は成立し得ない。

106 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:12:29 ]
>>101
JISで仕様の日本語訳出てるから、それ読めばいいと思うよ。

107 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:17:13 ]
foreachについては,必要なメソッド(GetEnumerator()とか)のシグネチャさえ合えばいいのであって
IEnumerableやIEnumeratorを実装している必要はないんだけどね

108 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:35:50 ]
らしいな。

109 名前:デフォルトの名無しさん [2008/01/31(木) 23:46:32 ]
gnuのC#って今どのくらい使えるようになってるの?
なんかググっても全然出てこないんだけど

110 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:50:59 ]
mono は gnu じゃない



111 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:03:43 ]
mono以外に知らんの?

112 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:04:41 ]
>>110
Portable.NETってのがあるんだよ

113 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:14:46 ]
こんなものがあったのか・・・

114 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:16:00 ]
monoと比べると随分と停滞してるがな。

115 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:00:40 ]
IntPtrからbyte配列を取るとき、Marshal.Copyでコピーしますが、unsafeを使わずに
IntPtrから直接配列として操作することって出来ませんか?
結構Marshal.Copyでのロスが大きくて無視できないし、折角C#を使うんだから
出来ればポインタは使いたくないので…

116 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:01:51 ]
無理です。

117 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:04:59 ]
コピーしない方法ならあるよ

118 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:08:52 ]
>>116
やっぱり無理ですか…
やっぱりポインタ使うしかないのか orz

>>117
Marshal.Read*とかでしょうか?
さすがにこれをループするのはコピーするより重そうですが…

119 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:18:21 ]
byte配列の長さは一定?

120 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:26:46 ]
>>119
Bitmapなので変わる可能性はあります。



121 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:28:03 ]
>>120
すいません、抜けてました orz
複数のBitmapを扱うので、という意味です。

122 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 08:50:42 ]
無理かな
byte[]とbyte*ってメモリレイアウトもたぶん違うから
byte[]→byte*なら可能ではあるんだが


123 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 12:42:17 ]
インデクサ付けた構造体でラップすれば?
実装はunsafe使って

124 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 13:06:50 ]
>>122
マネージ→アンマネージは出来てもアンマネージ→マネージが出来ないと言うことですかね?

>>123
ちょっとその方法試してみます。

125 名前:762 mailto:sage [2008/02/01(金) 14:02:36 ]
struct ByteArrayPtr : IList<byte> {
private IntPtr ptr; private int length;
public unsafe byte this[int index] {
 get { return ((byte*)(void*)this.ptr)[index]; }
 set { ((byte*)(void*)this.ptr)[index] = value; }
}//あとは省略
こんな感じか
byte限定じゃなくてジェネリックにしたくなるけど(T*)がコンパイル通らないね

126 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:14:38 ]
where T: struct

127 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:22:14 ]
>>126
(・∀・)ニヤニヤ

128 名前:デフォルトの名無しさん [2008/02/02(土) 15:00:12 ]
C#でSpreadを使ってコーディングをしてるんですが、
バインディングソースからデータをバインドさせて、
文字列を表示しているセルがいくつかあり、
そのセルの文字列を組み合わせた文字列を表示したいセルがあるのですが、
どうも、表示されません。
設定としては、組み合わせた文字列を表示するセルのFormulaプロパティに
CONCATENATE(A1,B1)と入れているだけです。
他に何か設定が必要なのでしょうか?
よろしくお願いします。

129 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 15:12:30 ]
>>125-126
structに制限しても無理
Tがマネージドな型を含む可能性があるから

130 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 18:43:10 ]
>>107
どういうこと?
implementしなくてもOKってこと?



131 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 18:44:17 ]
>>128
SQLでとってくれば?

132 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 19:04:55 ]
>>130
class EnumerableObject : object {
public EnumerableObject GetEnumerator() { return this; }
public bool MoveNext() { return false; }
public object Current { get { return null; } }
}
このクラスのインスタンスに対してforeach使ってみるといいよ。
これはバグじゃなくてちゃんとした仕様。List<T>なんかはこれを利用して
IEnumerableを実装する構造体をその型のままで返してIEnumerableへのボクシングを避けてる。

133 名前:132 mailto:sage [2008/02/02(土) 19:08:43 ]
間違い
IEnumerable→IEnumerator

134 名前:デフォルトの名無しさん [2008/02/03(日) 13:37:23 ]
前スレにてTableAdapterのことを質問したものですが
また質問させてください。

TableAdapterのdeleteやupdateでDBのTableを更新する時に
SQLSerServerで外部キーを設定して連鎖参照整合性制約を使うことって出来ますか?
例えば二つのTableのある列を外部キーで関連付けして
同じ文字列のある行をdeleteしたりupdateしたりすることが出来ますでしょうか。
どうも上手くいかないんです。

もう一つ。
TableAdapterの更新処理はASP.NET上でしか
動作してくれませんよね?
例えば、普通のWindowsアプリケーションのプロジェクトを作成して
そこにDataSet作ってTableAdapterを作成して
DBの更新処理をするってのは出来ないですよね?

135 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 14:39:35 ]
ネイティブのexeからC#で作ったDLLを呼び出したいんだけど、
手っ取り早いやり方は具体的にどんな感じになるんでしょ?

開発環境はVisual Studio 2008 Express Editionです。

136 名前:デフォルトの名無しさん [2008/02/03(日) 14:43:23 ]
>>135

アセンブリをCOM参照可能にして呼ぶ。

137 名前:135 mailto:sage [2008/02/03(日) 14:46:38 ]
>>136
thx!

138 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:14:42 ]
C++で言うベクターってC#で言うと何?

139 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:17:16 ]
List<T>

140 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:17:31 ]
list



141 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:47:24 ]
C++のVectorがC#のListだとすると
C++のListはC#だと何になる?

142 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:49:23 ]
ごめん自己解決したw

可変長配列 vector<T> List<T>
双方向リスト list<T> LinkedList<T>






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<174KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef