- 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くらい
- 175 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 01:11:12 ]
- >>170
そうか? サンプル分かり易いと思うし、それにCodePlexにTimeLine.NETとかSplicerとかいった編集用のライブラリとかある。
- 176 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 01:17:58 ]
- >>172
納期が決まってるとか予算が決まってるならともかく 趣味レベルなら別にかまわんのじゃ? 編集ソフト内の再生ズレ、なくせるんだったらなくした方がいいと思うし。
- 177 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 08:15:18 ]
- C#の勉強もかねて・・・・
そういえばみんな言語始めるとき勉強はなにからやってるんだろう 俺は新しい言語をやる時に 画面のコントロールの簡単な使い方 標準的なファイルの入出力 簡単な入力チェック系 データベースの 接続・追加・更新・削除 位からやってる あとはWEBかクライアントに合わせて色々やること増えるけど
- 178 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 08:33:54 ]
- またHello Worldからかよorz
- 179 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 10:15:50 ]
- 昔よくやってたのはラインアート作るとか。
今時だと、>>177 で出てるネタを押さえるようないいサンプルアプリが欲しいなぁ。
- 180 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 11:39:50 ]
- 俺の場合は、初めに電卓、次にタイマー等が用意されてるなら、
テトリスやリバーシみたいな簡単なゲームを作る事にしてる。 ある程度、実用 ( 娯楽 ) 性があるものを作成すると、理解が早い気がする。
- 181 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 12:35:22 ]
- たしかに作ってて多少モチベが上るようなのじゃないと
だれるもんね。 Web サービスのクライアントなんて 結構実装簡単だし、すぐ使えるからよさげじゃない? REST API 公開してるサービスめちゃめちゃ多いし。
- 182 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 13:54:16 ]
- >>170
徐々にずれるのが嫌なら再生開始時からの経過時間を使って、 間隔を調整すればいいだろ。
- 183 名前:96 mailto:sage [2009/04/12(日) 14:26:29 ]
- >>172
>そもそもあんたはマイクロ秒のズレなんてわかるんかよ。 30fps時の端数分(333μs)ずつずれていくと、100フレームほどで1フレーム遅れる計算になります。 数秒再生して1フレームも遅れるのは結構致命的だと思うのですが… >>175 C++やDirectX、COMを触ったことがないからだと思いますが、何が何だかさっぱり… ISampleGrabberからIBaseFilterへとか、継承しているわけでもないのになぜキャストできるのでしょうか? 同じメソッドを実装するだけでキャストできるのかと思い、テスとしてみたのですが当然できるはずもなく。 Splicerはおもしろそうですね。 >>182 現在はTickが呼ばれるたびに誤差を計算して次に加算するように変更したので、多分μs単位で いじらなくてもあまりずれないようにはなっていると思います。
- 184 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 17:54:19 ]
- >>161
>OnPaintやControl.CreateGraphicsで直接描画するのとPictureBox.Imageにイメージをセットするのは >ほとんど変わらないものだと思っていたのですが… Control.CreateGraphicsを使えば別のメソッドから使えるというのがメリットなのよ。 GUIはGUIスレッド以外から扱ったらいけないと思い込んでるようだけどこれは例外。 つまり、メッセージループを使ったりBeginInvokeを使ったりする必要がない。 メッセージループのことは気にせずに、 独自のスレッドで連続して処理問題ないということ。(普通はプライオリティを若干下げてやる。) OnPaintやPictureBoxなどに処理を任せるのは画面が無効になったときの再描画の処理を やってくれるからであって、短いサイクルで描画を繰り返す場合は、その必要性がない。 Control.CreateGraphicsを使えばInvalidateやUpdateを呼ばなくても指定したタイミングで描画することが出来る。
- 185 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 19:18:43 ]
- >>184
そんなトンデモ説を得意げに言っちゃだめw 最初の行の「別のメソッドから」は「別のスレッド」と言いたかったんだろうが、 そんな話見たことも聞いた事もない。 Control.CreateGraphicsを使う場合のメリットは、Invalidate⇒OnPaintという 通常の処理に比べてオーバーヘッドが少ないことなんじゃないの? 逆にデメリットは、描画処理を呼ぶトリガーをOnPaintに一本化できないことでしょ。 もっとも、>>96のように短い一定時間ごとに必ず描画するのならダーティー化 された場合のことを考えなくていいからデメリットと言えないんだろうけど。
- 186 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 19:30:05 ]
- 一応、Control.CreateGraphics はスレッドセーフだと言っておこう
- 187 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 19:36:55 ]
- >>186
すまん確かにそうだったw グラフィック関連長いこと触ってないんで忘れてたよ。
- 188 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 20:13:37 ]
- >>96に最小限の修正を加えてろだに上げてみた。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9025.txt 注、Stopのときの再描画処理としてpicturebox1にPaintイベントを追加している。
- 189 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 20:55:18 ]
- 188です。lockの位置を間違ってた。
複数のスレッドからimageを使うことになるので、 lockはvoid Draw(int rad)全体にかけたほうがよかった。 だた、startフラグで制御してるのでただし実行に影響はないはず。
- 190 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 17:01:47 ]
- WinアプリでDataGridViewの行を大量に追加・削除するときって
SuspendLayoutとかの呼び出しをやった方がいいんだろうか? 位置を移動させるとかの場合は効きそうだけど今一歩やるべきかどうかの判断がつかないんだが・・・ 今はおまじない的にやってるけども
- 191 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 21:34:50 ]
- データソースをViewから切り離してから追加・削除すると速いかも
- 192 名前:デフォルトの名無しさん [2009/04/14(火) 20:34:17 ]
-
これ見てみw 国会の無駄な手当てでお手盛り人件費じゃぶじゃぶの実態w この経済危機に税金をなんでこういう公務員、国会職員に税金くれてるの? ↓ 衆議院議員 渡辺周氏「呆れ返る国会のムダ呆れ返る国会のムダ」 www.choujintairiku.com/watanabes.html 内閣の閣議でどれだけお手盛り大盤振る舞い、浪費が行われているかわかるね。 これが自民党−麻生内閣の実態!!
- 193 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 20:39:03 ]
- >>192
text/plainでくれ
- 194 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 21:25:00 ]
- なんだかんだで結構親切に教えてくれるおまえらが好き。
- 195 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 21:26:06 ]
- どういたしまして
分からないことがあったらまたおいで がんばってね
- 196 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 22:06:03 ]
- ありがとう。
いつかは教えられる側にまわれるよう精進します。
- 197 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:00:27 ]
- 今、クライアント(C#)-WCF-サーバ(C#)-SQL Serverなアプリケーションを作って
いるんですが、クライアントからデータを検索する必要があります。検索条件 によっては、戻り値のデータが数万件になることもあります。 そこで、WCFのバインディングのmaxReceivedMessageSizeを大きくして対処 しようと思ったのですが、途中でキャンセルできる必要とサーバのメモリを 節約する必要が生じました。 どのように実装するのがいいでしょうか? 現在の処理) 1. クライアントが検索条件を指定してサーバを呼ぶ 2. サーバは検索条件によって、SQL Serverの複数のテーブルを検索し、複数 レコードからオブジェクトを組み立てる 3. オブジェクトの配列(やツリー構造)が出来上がったらクライアントに返す 案) 1. サーバはDataReaderでデータベースを検索しているので、一定レコード数 ごとに結果をクライアントにレコード単位でコールバックする。オブジェクト はクライアント側で組み立てる。 2. DataReaderからデータを読みつつ、一定オブジェクト数ごとに結果をクラ イアントにコールバックする。ただし、各オブジェクトの大きさはそれぞれ違 うので、オブジェクトの数ではメモリ使用量は計れない。 3. クライアントでデータ取得依頼だけして、数秒おきにサーバに結果を取りに 行く。 4. 戻り値はStreamとし、オブジェクトが出来るたびにStreamにオブジェクトに 入れ、クライアントはそのたびにオブジェクトをデシリアライズする。ただし、 DataReaderを読みつつStreamにオブジェクトを入れる方法がまだ分かってない。 よろしくお願いします。
- 198 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:06:00 ]
- 普通に API (鯖側)のほうでページングに対応すれば?
- 199 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:15:40 ]
- どっちも非同期で実装すればいいんじゃね?
- 200 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:18:27 ]
- >>198
ページングとは、 1. クライアントで検索依頼 2. クライアントから1ページ目要求 3. データがなくなるまで、2をnページ繰り返し ということでしょうか? サーバで全データをメモリに読み込むことは出来ないので、データベース上に 昇順でユニークなIDが必要になるという理解であってますか?
- 201 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:20:07 ]
- SQL で指定できるでしょ。上限件数
- 202 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:21:31 ]
- >>199
すみません。具体的に御願いできますか?非同期でクライアントから依頼して サーバから非同期でコールバックするという意味でしょうか? だとすると>>197の案1, 2ですよね
- 203 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:23:35 ]
- WCF でのサービスメソッド呼び出しを非同期にする。
サーバーでのクエリ実行を非同期にする。 で、適宜タイムアウト。件数が多すぎるとき? シラネ。
- 204 名前:201 mailto:sage [2009/04/14(火) 23:23:55 ]
- あー、説明不足かもしれんので一応。
TOP 句 ttp://msdn.microsoft.com/ja-jp/library/ms189463.aspx ROW_NUMBER 関数 ttp://msdn.microsoft.com/ja-jp/library/ms186734.aspx
- 205 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:25:22 ]
- >>201
上限件数は指定できます。ただ、最初の件数以降の次のデータを指定するのは 難しい状況です。ユニークで昇順なキーがないので。 データが多いからといって、途中で検索をやめてしまうのはだめです。 ただ、サーバがメモリ不足で落ちるのは駄目ですが、クライアントがメモリ不足 で落ちるのはまだ許容範囲です。
- 206 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:28:13 ]
- ダメです、とか、なんでえらそうなの?
- 207 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:30:37 ]
- >>204
ROW_NUMBER知りませんでした!!使えそうですね。ちょっとこれから調べてみます。 >>206 申し訳ないです。エラーで結果が出ないのはいいのですが、結果が正しくないの は一番やってはいけないことなので、あのような書き方になってしまいました。
- 208 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:31:17 ]
- >>205
TOP でも 3 回(だっけ?)組み合わせればここからここまでっての 一応できるんだよ。 まぁ天啓にあった某関数と同じ機能な ROW_NUMBER サポして くれたからこれでよくなったけど
- 209 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:58:26 ]
- カーソル付きのDBMSならHTTP鯖のセッション情報にカーソル情報書き込んでしまえばいいと思った
- 210 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 00:08:13 ]
- >>209
なるほど。
- 211 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 21:30:23 ]
- OLAPに対応してるのってMSSQL2008からだよね。
大丈夫かな?
- 212 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 22:49:05 ]
- 質問失礼します。
タスクトレイに格納した状態で再生できるサウンドAPIを探しています。 再生させる際、タスクトレイに格納された状態で、ボリューム調整を行いたいです。 始め、System.Media.SoundPlayerを利用したのですが、音量調整ができませんでした。 次に、Microsoft.DirectX.DirectSound.SecondaryBufferを利用したのですが、タスクトレイに入った状態では再生できませんでした。 上記には勘違いがあるかもしれません。 その点の指摘も含め、分かる方よろしくお願いします。 開発環境: VisualStudio2008 WindowsXP
- 213 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 22:56:04 ]
- なんで既にタスクトレイさんがわるものなのぉぉおwwww
- 214 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 23:03:29 ]
- SetCooperativeLevelが不適切なだけじゃね?
- 215 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 23:07:58 ]
- ありがとうございます。
協調レベルは真っ先に疑いました。 CooperativeLevel.Normal CooperativeLevel.Priority CooperativeLevel.WritePrimary 全部試しましたが、ダメでした。。。 フォームを表示すると鳴るんですけど、何故でしょうね。。。
- 216 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 23:14:06 ]
- SetCooperativeLevel(this, CooperativeLevel.Priority);
今このようなコードを書いています。 thisがいけないんですかね? 表示しているのはフォームではなく、NotifyIconですからそのownerを指定??? う〜む。やっぱり分からないです。。。
- 217 名前:212 215 216 mailto:sage [2009/04/15(水) 23:29:32 ]
- すいません。
自己解決しました。 BufferDescription の GlobalFocus を true にする事で鳴りました!
- 218 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 23:31:14 ]
- なーんか似た内容の人が居たらしい
hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200511/05110065.txt
- 219 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 16:45:54 ]
- 指定したアセンブリのプロセッサアーキテクチャを調べるにはどうすればいいでしょうか?
VS2008で参照を追加したとき.csprojに processorArchitecture=x86 などと書かれる情報のことです。 ildasmでマニフェストは見てみたのですが、それらしき情報は見つからなかったです。 よろしくお願いします。
- 220 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 05:03:44 ]
- プログラムでやるなら、Assembly.ReflectionOnlyLoadFromで読み込んでAssemblyName.ProcessorArchitectureで
- 221 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 20:13:06 ]
- なんかプロジェクトの規模が大きくなるにつれてIDEが激しく重くなるんですが
どうしようもないんでしょうか? といってもたかだか*.csファイル数126個、全45109行なんですが。 ユーザーコントロールも10個くらい作ってますが、それも関係してるのかな。
- 222 名前:デフォルトの名無しさん [2009/04/17(金) 21:33:29 ]
- exeとは異なる任意のフォルダにdllファイルを置きたいため以下のプログラムを書きました。
(WidgetLibrary.Widgetクラスは別プロジェクトでdllとして作成)これだとWidgetLibrary.Widgetの名前が解決できないのでビルド できません。ビルドできない原因は何でしょうか? namespace ConsoleApplication1 { public class Loader { static void Main(string[] args) { AppDomain.CurrentDomain.AssemblyResolve += FindAssm; Program.Go(); } static Assembly FindAssm(object sender, ResolveEventArgs args) { string simplename = new AssemblyName(args.Name).Name; string path = @"c:\sample\" + simplename + ".dll"; if (!File.Exists(path)) return null; return Assembly.LoadFrom(path); } } public class Program { public static void Go() { WidgetLibrary.Widget w = new WidgetLibrary.Widget(1, "a"); w.widgetDisplay(); } } }
- 223 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 21:41:29 ]
- 参照設定で追加していないのでメタデータを参照できないのが原因
と思う。
- 224 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 21:41:44 ]
- 自分で言っているように「WidgetLibrary.Widgetの名前が解決できないので」だろ。
- 225 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 21:45:01 ]
- >>222
任意のフォルダにDLLを配置するのが目的なら、GACに登録した上で参照設定するのが王道。 .NET Frameworkに含まれるDLLは、ローカルコピーしなくても参照できるだろ。 それは.NET FrameworkのDLLが特別扱いされているわけじゃなくて、それらが GACに登録されているから。 自作のDLLもGACに登録すれば同様に扱える。
- 226 名前:デフォルトの名無しさん [2009/04/17(金) 21:58:34 ]
- レスありがとうございます。
>>223 参照設定を追加するとプライベートアセンブリになってしまうので回避したいのです。 >>224 解決策でした。 >>225 GACに登録せずに任意のフォルダに置くことは不可能ということでしょうか?? このソースは C# 3.0 IN A NUTSHELL の558ページのコードを確認したくて 書いたものです。
- 227 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 22:20:42 ]
- あの本の綴じ込みはすごくいいね
洋書は製本がイマイチなのが多くて困る
- 228 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 22:28:17 ]
- 参照しているアセンブリのプロパティでローカルコピーをオフにすればよい
と思う。
- 229 名前:デフォルトの名無しさん [2009/04/17(金) 22:43:09 ]
- >>228
できました。 どうもありがとうございました。
- 230 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 23:57:22 ]
- GACって何のことか全く知らない俺が、ぐぐる前に適当に妄想してみる。
GACとは、Global Assembly Cacheの略で、システムワイドに.NETのアセンブリを 登録しておくキャッシュ。概念としてはUNIX系のOSでldconfigすると、システム ワイドに利用するダイナミックライブラリがld.soに登録されるのと似ている。
- 231 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 05:25:56 ]
- >>230
おまえgoogle先生だろw
- 232 名前:デフォルトの名無しさん [2009/04/18(土) 13:04:23 ]
- 1.1のContextMenuって、MenuItem.CloneMenuを使用して
状況に合わせたコンテキストメニューを作れみたいになっていたと 記憶してるんですが、 ContextMenuStripだと、ToolStripMenuItemにCloneMenuがないので、 これはどう解釈したらいいんでしょうか? デザイン時にパターンの数だけ作り付けのContextMenuStripを 用意しとくんですか?
- 233 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 20:48:31 ]
- Timerで回しているときにint(値型?)の配列が画面最小化すると消えてしまうのですが
残しておきたいです どうすればいいのでしょうか?
- 234 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 20:52:43 ]
- >>233
それだけで回答すると、 そりゃあんたの作り方次第としか言いようがない。
- 235 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 21:02:42 ]
- >>234
作り方が悪かったですorz OnActivatedを初めてFormが表示されるときにだけ呼ばれると勘違いしてました…
- 236 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 22:06:35 ]
- それなんてLoadイベント
- 237 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 22:51:48 ]
- 例えばZキーが押された状態でAを押してもOnKeyDownが発生しません。
これをZキーが押されている時にAが押されていることを知りたいのですがどうすればいいでしょうか?
- 238 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:06:29 ]
- e.Handled = true;でいけました
- 239 名前:デフォルトの名無しさん [2009/04/18(土) 23:12:15 ]
- 先日、C言語の勉強を始めた者です。まだまだ参考書の始めの方なのですが、エラーが起きてよくわからないことになってしまいました。
いまだにキーボードから数値を入力させて、それを表示する程度のものの自己流改変なのですが、なぜか二つ目を入力した後にエラーが起きて止まってしまいます。 それと、途中でプログラムの流れを止める方法がわからないので、それも出来れば教えていただけませんでしょうか? とりあえず理想としては、エンターを押してからもう一度押す迄 変数X + 1の答えを変数Xに代入し続けるようなプログラムが作りたいのです。 一応、ソースを書いておきます。 #include <stdio.h> int main(void) { int PS; float PS2; float PS3; printf("まずは整数を入力してください。"); scanf("%d",PS); printf("次は、小数を入力してください。"); scanf("%f",PS2); printf("最後にもう一度、小数を入力してください。"); scanf("%f",PS3); int end; printf("では、なにか数字を入力してエンターを押すと、結果が表示されます。"); scanf("%d",end);
- 240 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:13:35 ]
- >>239
すれ違い
- 241 名前:デフォルトの名無しさん [2009/04/18(土) 23:13:52 ]
-
printf("最初の整数は %d ですよね?",PS); ; printf("そして次は少数一回目は %f ですよね?",PS2); ; printf("そして最後は、 %f となっておりますよね?",PS3); ; int red; printf("最後に、面白いものを見せましょう。適当に数字を入れてエンターを押してください。"); scanf("%d",red); printf("exeファイルのダブルクリックをしていなければ、適当に入れてもらった数字を足した数を「%d」内に表示しておきます。では、さようなら。",end + red); return 0; } 最後のprintf()が終わっても自動的に閉じないようにするには、いったいどうすればいいのでしょう?
- 242 名前:239,241 [2009/04/18(土) 23:15:53 ]
- 申し訳ございません。
スレ名をチラっとしかみていませんでした。本当に申し訳ありません。
- 243 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:36:08 ]
- C#ってヘッダーファイルが無いのか。
変な言語だな。 C#って手続き型のプログラムができないのか。 不便な言語だな。 C#って関数に省略可能な引数を使えないのか。 代替手段としてオーバーロードしないといけないのか。 馬鹿げた言語だな。 C#ってswitch文でbreak無しで下に降りることができないのか。 気が狂ったような言語だな。 それと、0かそうでないかを評価できないのか。 初期化する前の不定値を参照するのはコンパイルエラーか。
- 244 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:46:36 ]
- 省略可能な引数は確かにほしいな。
他のは賛同しかねるが。
- 245 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:49:30 ]
- 省略可能な引数はC#4.0で追加される。
swichでのフォールスルーに関しては議論が分かれるとこだろう。 C#ではステートメントを含まない場合にのみ許可されている。 gotoステートメントによってラベル付きステートメントに直接移動する事もできるけど滅多に使われない。
- 246 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:58:26 ]
- >>239
初心者は恐ろしいことするよなぁ
- 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等でロックしないと別スレッドでの変更に対応できない あとラッパーっていうのは元のオブジェクトに 新しい機能をかぶせるテクニックの総称だから元の本体だね 削除も普通にできる
|

|