ふらっとVisual C#,C♯,C#(初心者用) Part100
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2012/12/02(日) 17:32:06.09「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、
もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますが、
ご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
前スレ
ふらっとVisual C#,C♯,C#(初心者用) Part99
http://toro.2ch.net/test/read.cgi/tech/1351515076/
関連スレ
C#, C♯, C#相談室 Part77
http://toro.2ch.net/test/read.cgi/tech/1352467358/
0153デフォルトの名無しさん
2012/12/09(日) 14:15:08.14>>126の要望に>>130で回答されたら
そりゃぶん殴られるだろ
0154デフォルトの名無しさん
2012/12/09(日) 14:21:07.07おまえがな
0155デフォルトの名無しさん
2012/12/09(日) 14:25:22.11Listを使わずにやる方法ってないでしょうか?
0156デフォルトの名無しさん
2012/12/09(日) 14:28:07.680157デフォルトの名無しさん
2012/12/09(日) 14:29:59.330158デフォルトの名無しさん
2012/12/09(日) 14:41:45.72わざわざSkipせんでもElementAtでいいよ
0159デフォルトの名無しさん
2012/12/09(日) 14:42:57.940160デフォルトの名無しさん
2012/12/09(日) 14:54:11.76みたいなのを実現するクラスはありますか?
名前的にThreadPool.QueueUserWorkItemかなと思ったんですが、
別々のスレッドで並列で実行されてしまうようです。
0161デフォルトの名無しさん
2012/12/09(日) 15:01:40.84queue = new BlockingCollection<Action>();
while (!queue.IsCompleted) {
var action = queue.Take(); // 空なら新しく追加されるまでブロックしてくれる
action();
}
これをバックグラウンドスレッドで実行しておいて、queueにAddしていけばいいだけ
終了させたいときにはqueue.CompleteAdding();ね
0162デフォルトの名無しさん
2012/12/09(日) 15:05:49.230163デフォルトの名無しさん
2012/12/09(日) 15:11:02.670164デフォルトの名無しさん
2012/12/09(日) 15:46:27.67わからなくもない
0165デフォルトの名無しさん
2012/12/09(日) 16:09:47.63使いどころはまればネイティブなんておよびじゃねー
0166デフォルトの名無しさん
2012/12/09(日) 16:13:07.32変な言語拡張なしでライブラリレベルでここまで見通し良く書けるのはすばらしい
0167デフォルトの名無しさん
2012/12/09(日) 16:18:06.39表示されている部分以外は処理を行わなず、上下にスクロールして表示領域を変更できる
というものを、既存のコントロール(System.Windows.Forms系)を使用せずに実装したいのですが、どのような
手法をとればよいのでしょうか?また、これらの情報をWeb上で検索する場合
どのようなキーワードが適しているのでしょうか?
0168デフォルトの名無しさん
2012/12/09(日) 16:21:22.630169デフォルトの名無しさん
2012/12/09(日) 16:27:31.930170166
2012/12/09(日) 16:29:03.71ここは「Visual」C#のスレでしたね・・・
質問はPlayStationMobileStudio(monodevelop)の内容でした・・・
0171デフォルトの名無しさん
2012/12/09(日) 16:32:37.78レス番も違うぞ
0172デフォルトの名無しさん
2012/12/09(日) 16:32:44.53たった数千行なら何も考えずに全部描画しても恐らく問題ないと思うけど
0173167
2012/12/09(日) 16:47:30.510174デフォルトの名無しさん
2012/12/09(日) 16:49:58.350175デフォルトの名無しさん
2012/12/09(日) 16:52:05.340176デフォルトの名無しさん
2012/12/09(日) 16:55:19.560177デフォルトの名無しさん
2012/12/09(日) 16:57:26.640178デフォルトの名無しさん
2012/12/09(日) 16:59:56.590179167
2012/12/09(日) 17:03:37.29>>172
前述の環境ですので、描画できる範囲が狭いんです
0180デフォルトの名無しさん
2012/12/09(日) 17:29:14.24だから、もちろん座標系の変換はワールド変換等を使って行ってやる必要はあるけど、
ユーザーコードの側でクリッピングを考える必要は恐らくないよ。
表示範囲外への描画はGDI+が適当に握りつぶすからパフォーマンスはそんなに心配しなくても大丈夫。
0181デフォルトの名無しさん
2012/12/09(日) 17:31:11.850182デフォルトの名無しさん
2012/12/09(日) 17:35:20.200183デフォルトの名無しさん
2012/12/09(日) 17:35:49.43勝手に必要な部分(表示部分)だけ描画してくれるだろ?
0184デフォルトの名無しさん
2012/12/09(日) 17:45:06.150185167
2012/12/09(日) 18:08:54.65参考にさせていただきます。
0186デフォルトの名無しさん
2012/12/09(日) 18:16:15.28エクスプローラのフォルダをダブルクリックで開けなくなったりします
恐らく最初のクリックと次のクリックの間にtickイベントが走ってフォーカスか何かが移るのが原因だと思うのですが…
tickイベントに何も処理を書いていなくてもこうなります
intervalの間隔を長くするのはNGでお願いします
0187デフォルトの名無しさん
2012/12/09(日) 18:22:48.920188デフォルトの名無しさん
2012/12/09(日) 18:22:56.73フォーカスが移るのが問題ってことまでわかってるなら移らないようにすればいいと思う。
0189デフォルトの名無しさん
2012/12/09(日) 20:08:03.60TransactionScopeを利用して2つのテーブルを更新したいのですが・・
2つめのテーブルの取得クエリを呼ぶと「接続オブジェクトをトランザクション スコープに参加させることができません。」と例外がでます。
どのようにすればよろしいのでしょうか。
今こんな感じにしています。
using (var tr = new TransactionScope())
using (var context = new HogeEntities()) {
var r1 = (from x in context.TableA select x).Single();
r1.Hoge = 100;
var r2 = (from x in context.TableB select x).Single(); //ここで例外(レコードは有り
r2.Piyo = "Z";
context.SaveChanges();
tr.Complete();
}
0190デフォルトの名無しさん
2012/12/09(日) 20:31:52.41ひどいなこりゃ・・・
0191デフォルトの名無しさん
2012/12/09(日) 22:15:40.93context.SaveChanges()の処理中は自動的に
トランザクションが適用されるから
このケースの場合TransactionScopeは不要。
0192デフォルトの名無しさん
2012/12/09(日) 22:40:40.03ほにゃららインターフェースを実装してるクラスのインスタンスへの
参照を返すメソッドってことでおk?
0193デフォルトの名無しさん
2012/12/09(日) 22:41:38.770194デフォルトの名無しさん
2012/12/09(日) 22:46:00.410195デフォルトの名無しさん
2012/12/09(日) 22:50:05.07値型はボックス化しないとインターフェイスにキャストできない
0196デフォルトの名無しさん
2012/12/09(日) 23:27:40.36クラスとか構造体とかに別の型名を付けてるようなものだ。
0197デフォルトの名無しさん
2012/12/09(日) 23:28:28.510198デフォルトの名無しさん
2012/12/10(月) 00:26:16.25これって本当にそうなの?そういう潮流なの?
0199デフォルトの名無しさん
2012/12/10(月) 00:27:23.630200デフォルトの名無しさん
2012/12/10(月) 00:56:05.810201デフォルトの名無しさん
2012/12/10(月) 00:57:25.25副作用がどうとかはただの妄想
0202デフォルトの名無しさん
2012/12/10(月) 00:59:06.09Linqで射影とかした結果に対して一連の処理するときとか
いちいち変数作ったり配列作ったりせず、直結して書けるから楽だと思うんだけどな。
まあ好みの問題だけど。
0203デフォルトの名無しさん
2012/12/10(月) 01:01:41.090204デフォルトの名無しさん
2012/12/10(月) 01:01:53.56でいいじゃない
0205デフォルトの名無しさん
2012/12/10(月) 01:02:18.04普通に書いた方が見通しいい
0206デフォルトの名無しさん
2012/12/10(月) 01:09:44.590207デフォルトの名無しさん
2012/12/10(月) 08:06:20.79みたいなことをしなければならないとき
皆さんは一切何も見ずに記憶だけでささっと作れちゃうもんなんですか?
IComponentとかいろいろ絡んでくるじゃないですか
こういう風に考えれば全然難しく考えなくていいいみたいな視点というか、
理解の仕方とかがあれば教えてください。
0208デフォルトの名無しさん
2012/12/10(月) 09:18:33.62インターフェイスの実装はVSで
class HogeContainer : IContainer
{
...
}
の「IContainer」のところにマウスカーソルあててメニューだせば自動でテンプレ追加してくれるし
あとインターフェイスは抽象化されてるからインターフェイスなんだから
上っ面(シグニチャの合ってるメソッドが揃ってるか)だけ考えときゃいいんじゃない
0209デフォルトの名無しさん
2012/12/10(月) 09:23:09.520210デフォルトの名無しさん
2012/12/10(月) 10:01:27.90ありがとうございました。
0211デフォルトの名無しさん
2012/12/10(月) 10:02:38.33そんなもん熟練者が商用コンポーネント作るんでなければ要らん
0212デフォルトの名無しさん
2012/12/10(月) 10:25:21.320213デフォルトの名無しさん
2012/12/10(月) 10:31:21.08一列目だけ更新したいってこと?
無理だから全部書き直し
幅が完全に固定されているならシークしながらとびとびに書き込めないこともないが
サロゲートペアとか考え出すと泥沼
0214デフォルトの名無しさん
2012/12/10(月) 10:56:50.960215デフォルトの名無しさん
2012/12/10(月) 11:06:59.30じゃーダメなんか?
0216デフォルトの名無しさん
2012/12/10(月) 12:04:44.130217デフォルトの名無しさん
2012/12/10(月) 12:16:10.56ストーブはあるんだが灯油がない
近くにスタンドはあるんだがお金がない
そんな俺東北
マジで凍死するかも
0218デフォルトの名無しさん
2012/12/10(月) 12:16:57.40今後は思うだけで書かない方がいいよ
0219デフォルトの名無しさん
2012/12/10(月) 12:46:52.43今後は思うだけで書かない方がいいよ
0220デフォルトの名無しさん
2012/12/10(月) 12:49:26.020221デフォルトの名無しさん
2012/12/10(月) 12:51:21.96今後は思うだけで書かない方がいいよ
0222デフォルトの名無しさん
2012/12/10(月) 12:53:20.10↑
のページを参照して国際化対応をやっているのですが、
上のページの「Resources.resx」にて作られるクラスのコンストラクタがinternalになってしまうので、
コンパイルエラーが発生してしまいます。
手動でコンストラクタを public にすると一時的にコンパイルエラーが解決するのですが、恒久的な解決策になっていません。
すいませんが、国際化対応を行うにはどうしたら良いか、正しい方法を教えてくれないでしょうか。
その方法がない場合は、resxで作られるクラスのコンストラクタをpublicにする方法を教えてください。
おしえてくださいえろいひと
0223デフォルトの名無しさん
2012/12/10(月) 12:53:29.42マジで凍死するかも
そんな俺九州
0224デフォルトの名無しさん
2012/12/10(月) 12:54:22.020225デフォルトの名無しさん
2012/12/10(月) 13:04:01.45リンク先読んでないけど
Resources.resx
Resources.ja.resx
Resources.en.resx
Resources.ar.resx
みたいにするとサテライトアセンブリつくってくれるんじゃね?
0226デフォルトの名無しさん
2012/12/10(月) 13:39:07.04今後は思うだけで書かない方がいいよ
0227デフォルトの名無しさん
2012/12/10(月) 13:59:57.53今後は思うだけで書かない方がいいよ
0228デフォルトの名無しさん
2012/12/10(月) 14:18:57.61よいいが方いなか書でけだう思は後今
0229デフォルトの名無しさん
2012/12/10(月) 15:08:41.470230デフォルトの名無しさん
2012/12/10(月) 15:12:19.090231デフォルトの名無しさん
2012/12/10(月) 15:16:30.780232デフォルトの名無しさん
2012/12/10(月) 15:25:18.78サテライトアセンブリ・・・というのは
このコードはツールによって生成されました。ランタイムバージョンry
とかいう、ソースコードのことでしょうか?
だとすると、それは作られています。
そのコードに記述されたクラスのコンストラクタがinternal になってしまうんです。
それをpublicにしたいんです。
0233デフォルトの名無しさん
2012/12/10(月) 16:50:22.68今後は思うだけで書かない方がいいよ
0234デフォルトの名無しさん
2012/12/10(月) 17:10:26.790235デフォルトの名無しさん
2012/12/10(月) 17:25:22.91〜のことでしょうかじゃねーよ
ぐぐれよハゲ
何やりたいのかすら書いてないから分からないけど
その裏ワザてきなローカライゼーションじゃなくて
用意されたローカライゼーションは試したのかよハゲまくり野郎が
0236デフォルトの名無しさん
2012/12/10(月) 17:29:24.74どのようにすればいいのでしょうか?
0237デフォルトの名無しさん
2012/12/10(月) 17:35:47.930238デフォルトの名無しさん
2012/12/10(月) 17:38:33.49どのようにすればいいのでしょうか?
0239デフォルトの名無しさん
2012/12/10(月) 17:41:51.750240デフォルトの名無しさん
2012/12/10(月) 17:46:39.33なぜなら、どのように質問すれば上手く伝わるのかを考える時点で答えが出てしまうから。
0241デフォルトの名無しさん
2012/12/10(月) 17:55:28.140242デフォルトの名無しさん
2012/12/10(月) 18:26:57.020243デフォルトの名無しさん
2012/12/10(月) 22:21:54.00暇だからwin8のデスクトップでタートルグラフィックスを書いてたら、
間を開けた動的な描画イベント来なくて小一時間悩んだわ。
結局Timerクラス起動して無理やりイベントループ回したけど、なんかダサイわ。
こういうのってなんか対策有る?
0244243
2012/12/10(月) 22:26:13.060245デフォルトの名無しさん
2012/12/10(月) 22:36:44.38なんか根本的に勘違いしてるんじゃないの?
何かの図形を一度にではなく少しずつ描画したいのなら、図形を更新したいタイミングで
クライアント領域を無効化してやるのが普通だと思うけど。
0246デフォルトの名無しさん
2012/12/10(月) 22:43:43.61this.invalidate(false)でフォームを無効化して描画待ちしてたんだけど、なんか描画されなかった。
パフォーマンス見るためにタスクマネージャー起動したらそのタイミングで書き換えが起こったりわけわかめだった。
なんか、イベントループ回ってないっぽいんだよね。ウィンドウの上でカーソル動かしたら描画されたりしたし。
だから、タイマー突っ込んで回したんだ。
0247デフォルトの名無しさん
2012/12/10(月) 22:58:08.71描いてる最中も経過をリアルタイムで表示したいのか
それとも描き終わるまでは特に表示がなくてもいいのかで
表示の仕方変わるよね
0248212
2012/12/10(月) 22:58:56.89一行ずつ読み込んだ文字列の長さが0の時はスキップで、
最後に、上書き保存することで出来ました。
0249デフォルトの名無しさん
2012/12/10(月) 22:58:57.93ttp://www1.axfc.net/uploader/Sc/so/403931.zip
現象は、フォームのコンストラクタにあるTimerクラスのstartを起動するかしないかだけで発現している。
他の環境でうまくいくんだったらうちの問題だ。ちなみにOSはWin8pro。
0250デフォルトの名無しさん
2012/12/10(月) 23:01:33.49それを制御できるコマンドを追加したんだ。
あー、そうだ。
ちなみに>>249はバグってる可能性が高いので、転用は厳禁だよ。
やるんだったら、自己責任でお願いね。
0251247
2012/12/10(月) 23:18:11.96追加していけばいいんじゃないかな?
DrawPathで描画すれば履歴にあたる部分を自分で書かなくても
.net内部で最適化された機能でPathを描いてくれるよ
0252デフォルトの名無しさん
2012/12/10(月) 23:25:00.35一応、機能としては色変更入ってるけど、いらないかなー。むー。
GraphicPathは使ったこと無いのでちょっと試してみようかな。
■ このスレッドは過去ログ倉庫に格納されています