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


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

C#, C♯, C#相談室 Part52



1 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 10:15:52 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part51
pc12.2ch.net/test/read.cgi/tech/1233757615/

Visual C# 2008 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

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

247 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 00:00:32 ]
セグメントエラーです。。。

248 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 00:37:30 ]
C#はC言語の標準関数を使えないんだろ。
ぼろい言語だな。.Netでしか通用しないノウハウだな。

C++ならC言語のノウハウは生かせるから、VC++やC++Builderで、MFCやVCLの知識は無いけども、
イベントハンドラにC言語のコードを差し込んで、単にGUIの画面を借りるだけのスタイルで、
普段コマンドプロンプトのプログラムしか作らない俺でも、Windowsプログラムを作れたぞ。

249 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 00:49:14 ]
釣りたいならもっと勉強してから出直してきな

250 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 01:10:24 ]
>>243>>248 は逆に、C/C++ への皮肉だと思う。


251 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 01:14:24 ]
C#でC言語の標準関数を使った事がある俺は神か

252 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 01:14:35 ]
ある意味釣られたってわけだなw

253 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 01:17:50 ]
ああ、msvcrt*.dllの関数も呼べるよな

254 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 01:39:12 ]
C++人はマネージ拡張C++に手を伸ばせば同じことができるし、
VB6人やMS-Office VBA人は差分学習ですぐにVB.netやれるし、
(中途半端に似ててかえって混乱するとかいうのはデマ)
.Netしか通用しないノウハウのC#を学習する意味不明。

255 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 01:42:37 ]
C互換ライブラリとかどこかにあったりしないかな。
C.StdIO.Printf() とか用意してある



256 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 01:42:57 ]
第二段来ました

257 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 02:07:22 ]
>>254
ところがどっこい。
.NETのサンプルがC#だけで出て来る例というのがよくあるため、
VBの人もC++の人もC#のサンプルを見て自分の言語に移す羽目に。

ここから蛇足。一昔前だったら、Cで書かれたWinAPIのサンプルを
VBへ移したり、C++ならクラスでラップしてみたりしていたわけで、
時代が移ってもやっていることに変わりはないのさ_| ̄|○

258 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 02:09:54 ]
しっ、話しかけちゃいけません!

259 名前:デフォルトの名無しさん [2009/04/19(日) 02:10:41 ]
>>254
じゃあdelphiしか選択肢がないな

260 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 02:14:42 ]
kylixってどこいったん?

261 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 03:24:35 ]
>>257
要は君はコピペグラマってこと?
だったら.NETの問題っていうより君自身の問題なんじゃないの?

普通はサンプルの考え方を拝借することはあってもコードをそのまま引っ張る
なんてしないよ。

262 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 03:47:00 ]
そりゃそうだ。だいたい、C#に癖のある構文なんてそんなに無いから、
サンプルを理解するくらいなら特にC#の知識を持ち合わせていなくても問題ないだろう。

もっとも、VB.NETやC++/CLIからもうちょっと手を伸ばせばC#にも手が届くだろうとは思う。
手が届くというだけではC#を学習する理由にはならないから、254への答えでは無いけどな。

263 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 08:38:49 ]
>>239が一瞬HLSLに見えた

264 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 08:53:42 ]
あんな見え見えの構ってちゃんの相手してやるんなら>>239に答えてやればよかった
もういないだろうけどscanfの引数は取得したい値を格納する変数のポインタを入れなきゃだめだよん

265 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 10:09:38 ]
一章とかでscanf()してる入門書とかあるからなあ



266 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 10:47:06 ]
いまだにCやるときはscanfを使う俺
なんで一行読み込みがgnuのgetlineしかねーんだよ・・・標準で作れよ
メモリ確保こわい

って感じ

267 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 18:12:40 ]
fgets して sscanf するのが面倒だから
getopt に頑張ってもらうか適当な設定ファイル読ませるようにしちゃうなぁ。

つか C# 関係ないな。

268 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 02:23:31 ]
たまに使うVC++でgetline()を使おうとして、「あれ?」と思う俺。

269 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 11:37:48 ]
Collection系(例えばQueue)でロックされた状態で処理を行いたいとき

1.lock(独自のロックオブジェクト)
2.lock(対象.SyncRoot)
3.Queue.Synchronized(対象)

とか考えられるんですが

使い分けの方法がわからない
1・・・コレクションだけではなくその他の変数やオブジェクトもロックしたいときにまとめて一回でやりたいから使うかなと
2、3 この違いは一体何なのか教えてほしいです。

そして Queue.Synchronized でMSDN調べたら
同期されている (スレッド セーフな) Queue ラッパーを返します
とありますが、型が同じということだけはわかりますがこれはコピーされたオブジェクトなのかそれとも元の本体そのものなのか・・・

予想すると
3のラッパーはオブジェクトのディープコピーをかえしてきて読み取り専用的に扱う
削除なんかは3の操作ではできないから1,2の方法を使って要素を削除したり

こんな考え方でいいのでしょうか?




270 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 21:40:44 ]
>>269
.Net Reflector

271 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 22:08:11 ]
ソース公開されてるからReflector使わんでもええやん

272 名前:デフォルトの名無しさん [2009/04/21(火) 05:09:56 ]
ReflectorとReflectionは違うものですか?

273 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 05:15:22 ]
>>272
うん

274 名前:デフォルトの名無しさん [2009/04/21(火) 05:20:35 ]
ツールか。新しい機能かとオモタ

275 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 08:45:40 ]
>>269
どっちかっていうと1.2.が似てて、3.が違うよ
3はクラスメソッドがスレッドセーフになったコレクション。
Dequeue()やEnqueue()はスレッドセーフで実行できるけど、
列挙処理中はSyncRoot等でロックしないと別スレッドでの変更に対応できない

あとラッパーっていうのは元のオブジェクトに
新しい機能をかぶせるテクニックの総称だから元の本体だね
削除も普通にできる



276 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 08:49:30 ]
object ICollection.SyncRoot
{
get
{
if (this._syncRoot == null)
{
Interlocked.CompareExchange(ref this._syncRoot, new object(), null);
}
return this._syncRoot;
}
}

277 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 11:09:13 ]
説明ありがとうございます。

>>275
列挙している間に別スレッドからの追加・削除処理が入る場合は基本ロックが必要そうですね・・・
そこまで処理速度が必要そうなわけでもないので、ひとまずロックさせて使ってみようと思います。

>>276
結局は内部で専用のロックオブジェクトを提供してくれているだけという感じでしょうか

278 名前:デフォルトの名無しさん [2009/04/21(火) 13:29:20 ]
Shared code , Shared source といった類のキーワードでgoogle先生に聞けば以前はあっさり見つかっていたのに・・・
どこにいったんだろう?
VisualStudioのライブラリソースコード表示の説明リンクを次から1の直下に張り付けておいたら良いと思う。
誰か場所知っていたらリンク張って欲しいです。

>>277
実はソースコードみた方が圧倒的に正確だしてっとりばやい、凄い単純な実装なんで。
www.microsoft.com/downloads/details.aspx?FamilyID=8c09fd61-3f26-4555-ae17-3121b4f51d4d&DisplayLang=en
とりあえず VisualStudio からではないですが、ソースコードです。
ダウンロードしてgrepして探してみてください。

279 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 18:40:07 ]
条件によって異なる複数の変数(string或いはint)を
配列化して(一列に並べて)、各変数に代入するメソッドを変数の個数だけ実行したいのですが、
デリゲートを使うとオーバーロードできないため、Object型を渡して判別するという事も考えたのですが納得できません。
unsafeのポインタを使うべきなのでしょうか。

280 名前:279 mailto:sage [2009/04/21(火) 18:52:28 ]
すみません。具体的に言うと
foreach (string tmp in bufStr)
{
str = DataTypeCheck(tmp);

if (str == null)
{
//・・ここでメソッドを呼び出してそれぞれ代入
}
else if (str == "case1")
{
//・・代入する変数のリストを作成
}
else if (str == "case2")
{
}
}
データ(string[])は以下のようになっており
case1
a
b
case2
・・・
この場合はa,bをcaseに応じた変数に格納します。

281 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 19:23:47 ]
具体的といいつつ酷く分かりづらいな
Func<T>でも使えばいいんじゃね
privateなメソッドなら型制約とかもいらんっしょ

282 名前:279 mailto:sage [2009/04/21(火) 19:53:25 ]
>>281
説明下手で、すみません。
ググりましたが、おそらくお察しの通りです。
感謝いたします。m(_ _)m

283 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 19:00:44 ]
Dispose()のCLRにマネージされていないデータを解放するという説明を読んで思ったのだけど、
CLRにマネージされてるかどうかってのはつまりどういう事なの?

284 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 19:12:25 ]
ざっくりいってIDisposableがマネージド、IntPtrがアンマネージド

285 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 19:23:50 ]
>>283
C++なんかだと、COMやスマートポインタを使って、リファレンスカウンタで生存管理をしているんだが
この方式だと、参照がなくなると同時に解放処理がされる。
対して、ガベージコレクタを使った.NETでは解放処理はメモリーが尽きたとき。
で、C++では参照がなくなると同時に解放処理を行う事を前提に組んであるケースが多いんだ。
だからC++の場合ちゃんとリファレンスカウンタで管理されているファイルシステムオブジェクトなどはこのタイミングでClose処理もされるのでCloseを忘れていても大丈夫
アンマネージをラップしたクラスを作るとこれが問題になることがある、これ明示的に開放する関数がDisposeだよという意味。
あくまでもラップした先のオブジェクトの解法、ラッパ事態はマネージドなので、ガベージコレクタで解放される。
たとえば.NETでStream系のオブジェクトでこれを忘れていると、Closeしわすれているとガベージコレクタで回収されるまでOpenされっぱなし。



286 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 19:42:28 ]
>>283
CLRの関与していないところで確保したもの。主にWin32ハンドルとか。

287 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 13:27:12 ]
IntPtrにAPIで取得したハンドルなんかもIntPtr.Zeroとかやった方が
いいんですかね…。基本的にマネージド以外の方法で取得したものは
全て何かしらの処理を加えた方がいいんでしょうか。

288 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 13:35:57 ]
意味が分からん
アンマネージドリソースの解放ってのはIntPtr.Zeroを変数に代入することじゃないぞ
CloseHandleとかDeleteObjectとかのAPI関数呼び出しのことだぞ
処理した方がいいかどうかじゃない、必要な手順で解放する必要がある
もちろんシステムグローバルな値とかでその必要が無いものもあるがな、ウィンドウハンドルみたいな

289 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 14:14:38 ]
請求書捨てても借金ちゃらにならない感じ

290 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:32:21 ]
あとIntPtrを生で使うんじゃなくてSafeHandle使え

291 名前:デフォルトの名無しさん [2009/04/23(木) 22:37:01 ]
VisualStudio2008のツールボックスで使われているみたいな、プッシュピンで表示/非表示を切り替えられるGUIは、.
Netの標準コントロールとしては提供されていないのでしょうか?
市販コントロールには似たようなものがあるようなのですが。
よろしくお願いします。

292 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:48:19 ]
標準には無い

293 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 23:42:08 ]
オレそれ市販の買おうか真剣に悩んでる。
devexpressの試用版DLしたとこ。

294 名前:デフォルトの名無しさん [2009/04/24(金) 00:05:34 ]
>>292,293
残念です。Microsoftも便利な部品はどんどん使えるようにして欲しいですね。

295 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 00:11:37 ]
>>294
どんどんしてるんだけど、今、SilverlightとかASP.NETとかの優先順位がむちゃくちゃ高いから、
VS風ドックコントロールは、ちょっとやそっとの要望あっても当分後回しになると思う。




296 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 08:36:28 ]
>>287
API直接操作するなら、APIの仕様通りに使わないとアカンで
マネージド側の特徴もちゃんと考慮して、アンマネージドの処理がアンマネージドの仕様に合うように。

297 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 09:05:35 ]
【知的財産】中国:ITソースコード強制開示強行へ・制度を5月に発足…国際問題化の懸念 [09/04/24]
anchorage.2ch.net/test/read.cgi/bizplus/1240524654/

298 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 16:20:35 ]
質問ですが、Flashのムービークリップの様に、
同じ性質を持ったオブジェクトの中にオブジェクトを上限なく動的に入れる方法はありませんか?

299 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 16:29:21 ]
List<T> じゃあかんの?

300 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 16:32:52 ]
表示上のオブジェクトという話かな?XAMLでどうよ。


301 名前:298 mailto:sage [2009/04/26(日) 16:56:29 ]
>299-300
ありがとうございます。そこまで複雑な事ではないです。

302 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 17:06:03 ]
じゃあどういうことよ、なのよ

303 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 17:09:44 ]
int[] array = new int[999999];
とでもやって多めに確保しとけ

304 名前:デフォルトの名無しさん [2009/04/26(日) 17:11:07 ]
>>301
むしろ>>298の説明のほうがそれいじょうに複雑なことではあります

305 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 18:35:03 ]
Compositパターンのことを言ってるんじゃないの?



306 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 18:35:51 ]
「コンポジットパターン」と言いたいんじゃないかな?
ということで、これでぐぐってみてください。

307 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 08:52:01 ]
このスレはやさしいエスパーが多いな

308 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 00:51:39 ]
FormBorderStyle.Noneにして標準のタイトルバーとか表示させないで独自のものを表示したりしています。
タスクバーの右クリックでのシステムメニューは下のURL等を見て表示できるようになったんですが、最小化などが無効になったままです。
これは何かメッセージを処理したりすれば有効にさせることなど出来るのでしょうか?
最大化などもFormのWindowStateをNormalのまま最大化らしくふるまうように無理くりやっています。

もしくはこんな風な独自のウィンドウを作る時の従うべき方針などあれば是非是非エロイ人

309 名前:308 mailto:sage [2009/04/28(火) 01:11:26 ]
さーせん、const int WS_MINIMIZEBOX = 0x20000;
とかをCreateParamsのStyleに追加したら最小化も表示されたっす。


310 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 01:39:19 ]
Graphicsに任意のControlを描画することって出来ます?
var webControl=new WebControl()
webControl.Draw(graphics);
みたいな感じで。


311 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 01:44:28 ]
Excel 2003 vbaの関数をC#から呼んでるんですが
実行時にvba内のブレークポイントで処理を止めるには
どうしたらいいんでしょうか。

312 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 02:05:10 ]
>>310
でやってみていかがでしたか?

313 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 18:41:06 ]
public partial class Form1 : Form
{
[DllImport("libmecab.dll")]
extern static int mecab_new2(string arg);
[DllImport("libmecab.dll")]
extern static string mecab_sparse_tostr(int m, string str);
[DllImport("libmecab.dll")]
extern static void mecab_destroy(int m);

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
int mecab = mecab_new2("");
string s = mecab_sparse_tostr(mecab,textBox1.Text);
mecab_destroy(mecab);
textBox2.Text = s;
}
}

これがXPでは動くのだけど、Vistaでは動かない。

mecab_sparse_tostr(mecab,textBox1.Text); で
System.AccessViolationException はハンドルされませんでした。
Message="保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。"
がでる。
意味がわからない。なぜ?

314 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 18:51:15 ]
そのメカブってどこからもってきてんのよ

315 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 18:55:02 ]
これ。
mecab.sourceforge.net/libmecab.html




316 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 18:55:19 ]
オレも何かメカブそば食いたくなったわw

317 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 18:58:36 ]
実はVista x64版だったというオチ、とか

318 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 20:04:16 ]
>>317
それはさすがに大丈夫だった。
また、Mecabインストール時についてくるEXEは、普通に動きます。

319 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 20:06:30 ]
とりあえずpInvoke行って宣言正しいかみてこようず

320 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 20:37:13 ]
>>313
いま実際に動かしてみた
返値がStringだとマーシャラがギブアップするみたい
IntPtrで受けてMarshal.PtrToStringAnsiとかで文字列変換すべし

321 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 21:21:30 ]
ref string でもいけそうな気がする。

322 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 21:28:24 ]
返値にrefは使えない

エラーが出る原因だけど、あくまで推測レベルだが
返値にStringを指定した場合UnmanagedType.BStrならSysFreeStringが、
それ以外ならLocalFreeだかCoTaskMemFreeだかが自動的に呼び出されたはずなんで
メモリ周りの保護の強化との兼ね合いと思われる

323 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 22:10:13 ]
>>320 >>322
ありがとう。XP、Vista両方動いた。


324 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 09:23:57 ]
DataGridviewって動的列つかったCross集計もできないし機能ショボスギですね 代わりにMSレポートのマトリックス使ってますが将来DataGridviewにGrapeCityのGridみたいな機能が付加されることはないでしょうか

325 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 11:46:10 ]
高機能すぎると独禁法が面倒なんだ



326 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 14:35:30 ]
コンポーネントは機能が少ないほど良い。

327 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 19:31:39 ]
×コンポーネントは機能が少ないほど良い。
○コンポーネントは機能が洗練されているほど良い。

328 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 21:23:18 ]
>>326機能ゼロが最高だよね。

329 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 21:52:40 ]
せめてAlt+F4で終了する機能ぐらいはつけてくれ

330 名前:デフォルトの名無しさん [2009/04/30(木) 22:54:12 ]
ListView を View == Details で使っていて、
選択された行をタブ区切りでクリップボードに転送してみようと思っているのですが
簡単な方法もしくは、一般にListViewからクリップボードへの定型的なやり方ってありますか?

331 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 23:02:53 ]
1パターンしかないと思うが 細かい差異はあるかも知れんけど

332 名前:デフォルトの名無しさん [2009/05/01(金) 02:27:08 ]
C++で
const int data[] = {1, 2, 3, 4};
のようにやっていたのを

C#で書き直したいんだけど、
const int[] data = {1, 2, 3, 4};
とか
const int[] data = new int[]{1, 2, 3, 4};
って書くと文句言われる。

int[] data = {1, 2, 3, 4};
なら、文句言われなくなるんだけど、

C#でconst配列の初期化ってどうすればいいの?

333 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 02:29:31 ]
そんなもの無い
dataそのものへの代入不可ならreadonly
要素の変更不可ならReadOnlyCollection<T>でラップ

334 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 02:31:20 ]
private readonly int[] data = new int[] {1,2,3,4};

335 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 11:22:09 ]
>>334
配列の要素に書き込めます



336 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 11:37:53 ]
>C++で
>const int data[] = {1, 2, 3, 4};
は要素の書き換え可なの?

337 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 12:22:30 ]
>>336
それは
int const data[] = ...
と同義だから、constはintに掛かってて、要素は書き換えられない。

338 名前:デフォルトの名無しさん [2009/05/01(金) 13:03:46 ]
スレ違いだが、

>>336
要素の書き換えは不可。

>>337
前半がウソ。それは同義ではない。

339 名前:337 mailto:sage [2009/05/01(金) 13:40:55 ]
ごめん適当に書いたんだけど、C++とCで違いがあるの?
リンケージ変わったりとか?

340 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 14:16:41 ]
static または auto に宣言しているなら変わらないかと、つか C# スレですが
専門のスレで聞いた方が良いで

341 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 14:21:46 ]
>>335
readonly System.Collections.ObjectModel.ReadOnlyCollection<int> data = Array.AsReadOnly(new int[] { 1, 2, 3 });
こうかな、使ったことないんで自分で確かめてくれ。

342 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 14:23:28 ]
読み取り専用その他、各種アダプタ類は、class に static 関数として定義されている事が多いんで、いろいろ見てくらはい。

343 名前:デフォルトの名無しさん [2009/05/01(金) 16:36:37 ]
メインのフォームから別スレッドを起動して、そのスレッドからフォームのテキストボックスにアクセスすると
CrossThreadMessagingExceptionが投げられるのですが、どのように回避するのが良いでしょうか?

344 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 16:42:06 ]
コントロール スレッド でぐぐれ

345 名前:デフォルトの名無しさん [2009/05/01(金) 17:48:18 ]
スレッドをAbort()した後に、同じスレッドをStart()すると、
ThreadStateException
{"スレッドが実行中か、または終了しています。再起動できません。"}
が投げられます。

一度Abort()したスレッドを再開するにはどうすればよいでしょうか?
毎回new Threadをし直す必要があるのでしょうか?
できれば、new Threadはアプリ起動時に1度だけで済ませたいです。



346 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 18:00:27 ]
メッセージどおり、Abortしたら再起動はできない
つーかAbortなんか使っちゃダメ SuspendとかResumeとかも禁止
フラグとかでスレッド自身が自分の状態を管理するようにする

別にThread作りなおしてもかまわんとは思うが

347 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 18:08:39 ]
自分も独学でフラグで誤魔化したので、
スレッドの待機をメッセージが無い.NETでどうするか疑問だった

マジでみんなフラグ管理で逃がしてるの?






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

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

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