- 1 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 00:54:33.10 ID:d/p1Vajd.net]
- 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止](c)2ch.net peace.2ch.net/test/read.cgi/tech/1443786608/ ■関連スレ C#, C♯, C#相談室 Part89 [転載禁止](c)2ch.net peace.2ch.net/test/read.cgi/tech/1443271409/ ■コードを貼る場合は↓を使いましょう。 ideone.com/
- 2 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 12:09:09.65 ID:blqHyLLr.net]
- >>1乙
- 3 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 12:15:55.82 ID:/RGpvc/8.net]
- >>1
乙です 今@ITでADO.NET Entity Framework入門っていう記事読んでるけど、むずかしいぜ。 前スレでちょっと出てきたDB関連の話でまったく知らなかったから参考に読んでるだけど これ仕事ででてきたら果たして使えるようになるのか心配だ・・・今すぐ使うわけじゃないのが救い。
- 4 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 03:47:30.32 ID:VpIXdAyb.net]
- C#で簡単にVSYNC待つ方法ないですか?
今Windows FormでVSYNC待つだけのためにDxLibを使っています CPUパワーを食わずに、コードもあまり書かずに簡単にVSYNCだけ待てれば DxLibに頼らずに済むのですが 2010Expressを使っています
- 5 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 03:52:32.72 ID:A+DiyrlM.net]
- Windowsで使ったソフトの順序を取得する命令ってありますか?
Alt+Tabを押すと使った順に並んだ小窓が出るのでどこかに記録されているのではないかと思っているのですが 探し方が悪いようで見つからないです。
- 6 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 22:40:12.84 ID:ZWYoQ/Cr.net]
- 教えてください。
【やりたいこと】 既存のクラスのメソッドの一部の機能を拡張したい。 具体的にはクラス(インターフェイス)AをクラスBのメソッドCに引数として渡す。 メソッドCはインターフェイスAのメソッドからデータを受け取り、データがなくなるまで処理を続ける。 このクラスAとクラスBは既成の物で、オブジェクトファイルの形式で提供されていて、ソースコードレベルでの改造は出来ない。 具体的にはデータ量が多い場合に備えて、メソッドCを実行中に外部からキャンセルを受け付けるように改造したい。 【対策案1】 メソッドCに準じたメソッドDを自作する。 →メソッドC内ではクラスBの private なメンバ変数等を使用しているため、外部に機能拡張版のメソッドを用意するのは容易でない。 【対策案2】 インターフェイス(クラス)Aを包含するクラスA’を用意して、これをメソッドCに渡す。 具体的にはインターフェイスAを継承したクラスA’を用意し、コンストラクタ等でクラスAのインスタンスを渡す。 クラスA’ではインターフェイスAで定義された全てのメソッドやプロパティにクラスAのインスタンスの同じメソッドやプロパティを呼び出すように実装する。 →インターフェイスAに定義されているメソッド等が多いのでとても面倒。と言うか、後のメンテナンス性が悪すぎる気がする。 【対策案3】 クラスBに相当するクラスを自作する。 →技術的にはやってやれないことはないが、時間的には無理。 【質問】 こういうときに有効な対策を教えてください。
- 7 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 22:53:14.22 ID:5wB+dJF6.net]
- 上長に聞きたまえ
- 8 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 23:16:59.10 ID:jVhYVUAo.net]
- 自分で作り直すのが無理なら
クラスBを作った人に修正をお願いするしかないんじゃない
- 9 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 10:56:36.07 ID:uhVdTG0g.net]
- Has AなクラスA'を作ってインターフェイス(A?)を実装
各メンバーではAに委譲する Bがデータを要求するところだけキャンセルならデータ供給を止めるみたいな
- 10 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 12:39:25.48 ID:wLo/SUaP.net]
- 細部は違うけど要するに案2だろ
面倒くさいから嫌だってw
- 11 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 20:04:37.19 ID:cJiE/pnV.net]
- ある集合の中から条件に一致するものだけ、値を変更して、
その集合を返すみたいな処理ってLINQでどう書けばいいんだろ? 1〜5の数字のうち偶数は!をつけて出力みたいな 1 2! 3 4! 5 whereしてからselectすると偶数だけのリストになっちゃうし、selectの中でwhere??
- 12 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 20:39:44.72 ID:QqGRNt0R.net]
- >>11
ideone.com/PD7B5Z こんな風に馬鹿正直に書いたら駄目なん?
- 13 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 20:50:40.56 ID:XPm6ny2d.net]
- >>12
自分もそういう書き方しか思いつかなかったんですが、もう少しスマートに書けないかなと。 ↑であげたのは簡略化した内容ですが、実際には class Item{ bool Checked; string KeyWord; } このクラスのリスト List<Item> に対して あるキーワード文字列に一致する場合は、Checkedをtrueにして そのリスト全体を返す。みたいなことがやりたいんだよね。
- 14 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 20:56:13.07 ID:QqGRNt0R.net]
- んならそういう働きをする拡張メソッドを書くしかないな
条件はFuncで与えるとして Where()は条件に一致する集合しか返さない そうではなく結果を{source, bool}みたいな感じでFuncに当てはまるか匿名型で返すような
- 15 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 21:03:24.02 ID:sUIZ4Kkh.net]
- >>12 見にくいので転載ボランティア
int[] sample = new int[] { 1, 2, 3, 4, 5 }; var res = sample.Select(i => { return i.ToString() + ((i % 2 == 0) ? "!" : ""); }); foreach (var v in res) Console.Write(v + " ");
- 16 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 21:08:46.61 ID:wLo/SUaP.net]
- 手段と目的の逆転
- 17 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 21:15:13.31 ID:XPm6ny2d.net]
- >>14
やっぱ拡張メソッド定義するしかないんですね。 こういうパターンって結構ありそうな気もするんですが...
- 18 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 21:20:59.72 ID:96CZ8S8K.net]
- LINQは副作用に否定的だから
- 19 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 21:23:12.42 ID:zfiVTGcd.net]
- >>1
.Select((item) => new Item { KeyWord = item.KeyWord, IsChecked = (item.KeyWord == "a") });
- 20 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 21:27:28.22 ID:KfvI2hmZ.net]
- 副作用が出るのはIxのForEach使えばいい
- 21 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 21:28:06.60 ID:nO6kdv8X.net]
- すげぇ変なことしてんな
普通にSelectでやればいいかと思うのだが
- 22 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 21:29:56.77 ID:Vv+caMcJ.net]
- >>17
気持ちがわからないんだよな。 >>11と>>13の要望まとめるとこんな感じ? ideone.com/TWOSN4 最後に元の集合返すLINQがこんな感じに作れるけど ideone.com/gYYg48 これでいいじゃんってなる。
- 23 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 21:33:39.93 ID:Vv+caMcJ.net]
- ああ元の集合から作った新しい集合がほしいのか。
>>22は無しね! でもそうだとしても>>21でいいじゃんね!
- 24 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 21:41:44.00 ID:QqGRNt0R.net]
- あ、やっぱり拡張メソッドを使うと変だね
無理にメソッドチェーンをする必要ない気がする
- 25 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 22:40:51.15 ID:sUIZ4Kkh.net]
- >>11 >>13
static void Main() { int[] source = new int[] { 1, 2, 3, 4, 5 }; var result = source.Join(new bool[]{true, false}, o=>true, i=>true, (o, i) => new Item(o, i)) .Where(p => { var r = p.Value % 2; return r == 0 && p.Checked || r == 1 && !p.Checked; }); result.ToList().ForEach(i => Console.Write("{0}{1} ", i.Value, i.Checked ? "!" : "")); // => 1 2! 3 4! 5 } class Item { public readonly bool Checked; public readonly int Value; public Item(int value, bool _checked) { Value = value; Checked = _checked; } } SQLっぽい雰囲気
- 26 名前:25 mailto:sage [2015/11/26(木) 22:52:39.19 ID:sUIZ4Kkh.net]
- >>11
int[] source = new int[] { 1, 2, 3, 4, 5 }; var result = source.Join(new bool[]{true, false}, o=>true, i=>true, (v, c) => new {Value = v, Checked = c}) .Where(p => { var r = p.Value % 2; return r == 0 && p.Checked || r == 1 && !p.Checked; }); result.ToList().ForEach(i => Console.Write("{0}{1} ", i.Value, i.Checked ? "!" : "")); // => 1 2! 3 4! 5 匿名型なんてのがあるのか
- 27 名前:6 mailto:sage [2015/11/27(金) 00:00:23.02 ID:V/UxGV6O.net]
- >>8-10
ありがとう。 やっぱり 案2 というか has a しかないかな。 でもよく考えたら特定用途にしか使わないことが明確ならインターフェイスの全メソッドを 真面目書く必要もないかも知れないと気がついた。 いやインターフェイスに定義されてるメソッド等の実装はしなきゃならないのは変わらないんだけども。
- 28 名前:デフォルトの名無しさん mailto:sage [2015/11/27(金) 01:58:20.80 ID:iofAV5op.net]
- >>6
Interface IV Cancel(); Interface IA:IV V v=objectA;
- 29 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 14:48:27.88 ID:dnKF4fhx.net]
- データベースの内容を画面に表示、編集する方法で悩んでいます
・具体的にはデータベースの内容をDataGridViewに表示して 編集した内容をデータベースに反映したい ・テキストボックスに検索文字を入力してデータの絞込をしたい 調べたらこういう記事がありました 新グリッド・コントロールの豊富な機能と高い表現力 − @IT www.atmarkit.co.jp/fdotnet/special/win20review02/win20review02_02.html 実際やってみたら、編集可にしているのにセルの値の編集が全く出来ない (このやり方は表示するだけ?) それに10年前の記事でとても古い 今だとどういう方法で実現すればいいでしょうか?
- 30 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 16:34:28.63 ID:N2qWmI2+.net]
- >>29
SQLiteなら dangoya.jp/?p=116 こんなのとかたくさんあるみたい
- 31 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 17:03:27.66 ID:X+9lGRnl.net]
- >>30
それGUIの設計というより、DBからデータを取得する方法じゃないですか しかも結果はデバッグ出力だし 全く参考にならない
- 32 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 17:09:40.67 ID:N2qWmI2+.net]
- park.geocities.jp/gdfsm000/cs/cs603.html
こんなのだったらいいのか それにGUIなら c-loft.com/blog/?p=1844 こういう奴とか?いくらでもあるんだが
- 33 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 17:15:59.89 ID:CPGEE3Eu.net]
- このバカが
コピペで要求満たせるサンプル持って来いってんだよ すべて説明しないと察せないのか? ガキか素人か?
- 34 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 17:24:52.80 ID:N2qWmI2+.net]
- お前教えてクレクレ君の癖に随分横柄な態度だな
自分で探せやアホ
- 35 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 17:26:09.88 ID:CPGEE3Eu.net]
- 代弁してあげただけですよ〜
- 36 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 21:57:42.37 ID:QbwUMUmL.net]
- まあ>>29レベルの質問は
>教えてクレクレ君と言われてもしかないだろうな 初学者としても勉強不足だし ググレカス以外のの返答は期待できない
- 37 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 23:18:13.48 ID:ExUydw0X.net]
- gridviewよりlistviewのがいいんだっけ?
てかこういうコントロール系って サーバ側で取得するとき 全行ループしてFindControllでコントロール取得するんだよね? MVC勉強してると、こういうの面倒くさいなと思う
- 38 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 23:42:17.02 ID:dnKF4fhx.net]
- SQLite→EF(or dapper)
まではようやく出来たのですが、いざDataGridViewに表示しようとすると ソートができない、値の変更ができないなどがあって躓いてしまいました 調べると、データテーブルを使えばコードレスで表示する方法を見つけたのですが DataGridViewでの変更をデータベースに反映する方法までは乗っておらず 一体どの方法でするのが一番いいのかわからなくなって質問しました @SQLite→EF(or dapper)→BindingListView→DataGridView この方法だとLINQも使えて、値の変更も反映されるようですが ソートやジェネリックに対応しようとするとBindingListViewや BindingNavigatorの実装を自前で書かないといけなくて難しい でもこれが完成するとほとんどFormにコードを書かなくて済むみたい ASQLite→TableAdapter→DataTable→データソース→DataGridView 表示するまでは簡単だけど、変更をデータベースに反映するのが大変? EFやdapperを勉強したのは無駄だった? 比較的簡単なのはこの2つなのかなと思ったのですが どのやり方が一般的というか簡単というか、そこのところが知りたいです 今後WEBシステムや業務用の顧客管理システムを作る予定は全くありません ちょっとした自分用の動画や音楽のデータベースを作りたいだけです
- 39 名前:デフォルトの名無しさん [2015/11/28(土) 23:47:13.87 ID:3Q3OpRos.net]
- >>38
EFなんか使わないのがベスト (EFがターゲットとする)業務システムってとんでもなく複雑なんだぜ それに比べりゃたかが動画や音楽のDBごときにEFなんか要らん
- 40 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 23:49:15.85 ID:kPVc8Ylo.net]
- >>38
ネットの情報見ながらならAが楽かと
- 41 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 00:05:54.22 ID:aZc4OEnQ.net]
- LINQ勉強したならEFは使わないで、dapperとDBテーブルに対応するクラス作ってマッピングさせたほうがいい。
検索と更新、ソートが画面上からできればいいんでしょ?
- 42 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 00:32:17.14 ID:9octMKBL.net]
- >>39
EFを使わない方がいい理由は 三輪車にV6エンジン搭載するような感じですか? ダメな理由があまり見つからないもので 重いからかな?確かにdapperと比べると遅いですけど >>40 Aの場合、DataGridViewの変更がDataTableに反映されて それをTableAdapterでデータベースにUpdateという感じでよろしいですか? >>41 マッピングまではやってみました それをDataGridViewで検索、更新、ソートできるようにする方法が 調べた感じだとBindingSourceの自作しかなさそうだったのですが 他に方法はあるのでしょうか? レスありがとうございます。それと質問ばかりですみません 一つのことを実現するのに方法が無数にありすぎて混乱してます
- 43 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 10:31:35.90 ID:BA+ijUMq.net]
- IEnumerableがいまいちぴんとこなくて初心者から抜け出せない・・・
List<>とDictionary<>にデータ保持とかの自作のクラスを入れてしまうと だいたいやりたいことができているんだけど あえて自分でIEnumerableを扱う利点ってどんなものなの?
- 44 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 10:40:55.72 ID:ejXKaOWL.net]
- 引数や戻り値を介した受け渡しに使うんだよ
なんでもいいから複数の値を引数で受けたいとか返したいとかよくあるだろ? そういうとき具体的なコレクションの型を指定してしまうと不要な厳しい制限を設けることになってしまう
- 45 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 10:53:25.06 ID:7SVdQgBN.net]
- インターフェースを引数にすれば抽象度が上がって重複コードが減るよってだけ
System.Linq.Enumerableの実装見るのが手っ取り早い
- 46 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 12:28:51.61 ID:j4qD5yiX.net]
- あとは遅延リストや無限リストが欲しいときにも使えるね
- 47 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 12:32:01.69 ID:ejXKaOWL.net]
- 遅延リストや無限リストが欲しいだけなら別にIEnumerableを使う必要はないけどね
遅延リストや無限リストのようなものもList<T>も配列も同じ「要素のシーケンス」として 共通のインターフェースで扱えることに意味がある
- 48 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 12:41:33.12 ID:MHU1lz94.net]
- C#でTaskにて別スレッドを実行中にXマークでデバックを落とすと
破棄されたオブジェクトにアクセスできませんとエラーが出るんです 出ないようにするにはどうすればいいでしょうか?
- 49 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 16:15:06.84 ID:vuzu98VN.net]
- >>48
cancelとwait
- 50 名前:デフォルトの名無しさん [2015/11/29(日) 16:32:17.55 ID:yHrLnXF5.net]
- >>49
ありがとうございます。 無事に出来ました!!
- 51 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 17:02:57.67 ID:sqPcAEkv.net]
- たぶんコイツがキチガイ回答者 >>33
ここまでほとんど自演なんだろうな
- 52 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 18:29:07.30 ID:djg7Qs12.net]
- みんな既に理解してるから、
くだらないことでドヤらないで。
- 53 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 21:49:18.21 ID:y4EB3thr.net]
- >>48
>>49 個人的にはこれがすごいと思う エスパー的な意味で
- 54 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 23:42:04.32 ID:X6CLD+vb.net]
- 17分後に完了できたのは凄技だとは思うw
- 55 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 17:10:07.41 ID:wM8ePfaT.net]
- ブラゲーの画面をぴったり画像保存するようなプログラム作りたいんですけど
ブラウザの中のフラッシュやHTML5の画面の左上座標ってどうすればとれますか? 画像認識で強引に認識するしかないでしょうか?
- 56 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 17:37:19.12 ID:NvF8UIfD.net]
- OSによるのでは?
- 57 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 17:42:27.07 ID:pbgvhCW9.net]
- ブラウザコントロール使う話ではなくて?
- 58 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 19:54:38.66 ID:wM8ePfaT.net]
- >>56
Windows 7 です >>57 よくわからなかったので軽く調べてみましたけど 自作のUIがジェットの中にブラウザ表示させるみたいな感じなんでしょうか そうではなくて chrome や firefox なんかに表示されてる フラッシュの画面部分だけぴったりスクリーンキャプチャするようなプログラム作りたいんですけど 無理ですかね…
- 59 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 20:07:34.72 ID:4TtrR1iM.net]
- ブラウザの枠含めて大きめにキャプって、後で画像処理ソフトで切り出せばいいだけじゃないの?
自分で作らなくても、両方とも既にあると思うけど。
- 60 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 20:17:18.03 ID:NvF8UIfD.net]
- >>59に1票。
- 61 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 23:07:13.04 ID:wM8ePfaT.net]
- いままでそうしてたんですけど
1日何枚もとってブログにはったりするので それを自動できれいにやるようにしたかっただけです まあ内側のフラッシュのプロセスつかんで その表示位置取得したりできるかなと思ったんですけど無理なんでしょうか… あきらめます 回答していただいた方ありがとうございました
- 62 名前:デフォルトの名無しさん mailto:sage [2015/12/01(火) 02:01:07.71 ID:XoX/fDF5.net]
- ブラウザのサイズを固定(キャプを取るときは全画面にするとか)したらあとはそれに合わせて切り抜く範囲を決めるだけじゃん
- 63 名前:デフォルトの名無しさん mailto:sage [2015/12/01(火) 02:10:57.73 ID:fBpqlrz3.net]
- 艦これの専ブラとかそれやってるから、ソース見るといい
- 64 名前:デフォルトの名無しさん [2015/12/01(火) 20:17:01.67 ID:sAwax9ox.net]
- >>53
>>48です。 closingイベントでcancel要求を出して それが受けつるまで待機するという意味での waitだと思いました。
- 65 名前:デフォルトの名無しさん [2015/12/03(木) 00:33:41.52 ID:lhYNgz5S.net]
- 質問です
変数aとbがあるとします aの内容をbから参照する事は出来るでしょうか? a=1; //bに対してaを参照できる何らかの処理 print(b);//1 a=5; print(b);//5 という結果を出したいのですが
- 66 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 01:12:22.92 ID:lfpcI0/L.net]
- ここはC#のスレです。
- 67 名前:デフォルトの名無しさん [2015/12/03(木) 02:09:53.61 ID:F5OD5ya2.net]
- a=bにすりゃいいんじゃないの?
レベル高すぎてやりたいことがわかんない
- 68 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 03:29:17.07 ID:KH3XuQZQ.net]
- 参照だろ。
同じオブジェクトIDを持つ、同一オブジェクト でも、intのようなprimitive型では、 値(参照ではなく内容)がコピーされるため、 参照のようなことは出来ないかも (C#にも、Javaのようなprimitive型があればの話だが)
- 69 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 10:58:04.62 ID:lhYNgz5S.net]
- >>68
やっぱり無理なんですか ありがとうございました これができないと余分なコードを書かないといけない状況に陥ってたんですが 仕方ありません
- 70 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 12:10:31.86 ID:r4QYskO6.net]
- >>69
そんな状況ありえんと思うけどねw 何か思いっきり勘違いしてそう思い込んでるだけだと思う。 あと一応値型でもunsafeでポインタは取れるよ。
- 71 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 12:52:27.54 ID:zCQ/Nhg2.net]
- >>69
何をしたいのかよくわからんけど、やりたいことを関数に切り出して、int 変数を参照渡しにすればいいんじゃね?
- 72 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 13:04:34.35 ID:IgpEN7lw.net]
- そういうことをしたくなっちゃダメよ
- 73 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 13:11:21.98 ID:zCQ/Nhg2.net]
- >>69
もしくは1要素の配列にするとか var a = new int[1]; a[0] = 1; var b = a; print(b[0]); //1 a[0] = 5; print(b[0]); //5
- 74 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 13:18:55.92 ID:jUS2N3R7.net]
- intなプロパティもつクラス定義すれば良いだけだと思うんだが
- 75 名前:デフォルトの名無しさん [2015/12/03(木) 14:10:48.22 ID:lhYNgz5S.net]
- お騒がせしました〜
delegateを使ってなんとか実現できました〜 回答ありがとうございます
- 76 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 20:17:12.68 ID:zCQ/Nhg2.net]
- >>74
配列を提案した俺が言うのもなんだが、クラスはなんか負けた気がする…
- 77 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 20:43:19.72 ID:/6SEhgDG.net]
- valueプロパティだけのインターフェースって便利だよね
極限まで行っちゃうとなんらかの値オブジェクトをどこかから取得する事となんらかの値オブジェクトをどこかに転送する事 この2つの連鎖でほぼ全てのシステムが組める つまりinterface IValue<T> { T Value { get; set; } }はプログラムの全てを抽象化すると言ってよい
- 78 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 20:46:05.45 ID:IgpEN7lw.net]
- 何の値か分からんし誰もそんなことやらん
- 79 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 05:49:43.54 ID:CuO9UgGb.net]
- >>75
どう書いたのかコードみせて!
- 80 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 08:23:18.98 ID:UQYmj2IV.net]
- SQL Builderのようなライブラリ使ってる?
EF使えないと、SQL自前で組み立て、Dapperでアクセスでやってるんだけど SQL作る部分を綺麗に書きたい
- 81 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 08:30:25.10 ID:N8pVjmap.net]
- DapperならDapper.Rainbowっていう簡易クエリビルダが付いてる
- 82 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 12:05:23.03 ID:ciEp6cCK.net]
- >>79
まず俺のやりたい事というのはアドベンチャーゲームのようなものを作っててこういう風にセリフを持ってます Serihu[] serihu=new Serihu[]{ new Serihu("こんにちは"), new Serihu("ご機嫌どうですか"), new Serihu("さようなら"), }; ここで問題になったのはこのテキストの中に変数を入れたい時どうするかというものでした 例えば「僕は○○をつかった」とか「僕は○○のダメージを受けた」などです そこで new Serihu("僕は",○○,"を使った")と○○に参照を入れる事を考えあれこれ試行錯誤しました で、解決法として○○にdelegateの関数ポインタを入れてやってみたら上手く行きました Serihuクラスの中で public delegate string Watasi(); public Watasi watasi;と宣言して コンストラクタを public Serihu(string m1,Watasi w,string m2){ moji1=m1; watasi=w; moji2=m2; } と書きます それでserihu配列の保持クラスに public string GetItemumei(){ return itemmei.Tostring();//itemmeiには使いたい変数を何でも使えます } と書いて 最初の配列に new Serihu("僕は",GetItemumei,"を使った") と入れると変数をそのまま使えるというわけです
- 83 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 12:28:30.63 ID:4FwXmqLX.net]
- こんな回りくどいコード初めて見た
- 84 名前:デフォルトの名無しさん [2015/12/04(金) 12:36:37.37 ID:ciEp6cCK.net]
- >>83
やっぱり他人から見ればそう見えるのかw 自分でもそうなんじゃないかなぁとw まぁ何度も書いてくうちに効率的な書き方わかるようになるでしょ
- 85 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 12:37:39.48 ID:NrPmzULQ.net]
- ただのString.Format案件に見えるのだが
- 86 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 12:38:19.14 ID:uOiBxvHU.net]
- 何がしたいんだろう。
全然理解できない。
- 87 名前:デフォルトの名無しさん [2015/12/04(金) 12:54:34.09 ID:ciEp6cCK.net]
- >>86
平たく言うと まず最初にセリフを配列で持ちたい そしてそのセリフの中に動的に変数を入れたいということです
- 88 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 12:55:52.79 ID:6PuXTYFV.net]
- やっぱりstring.Fopmatだろ
- 89 名前:デフォルトの名無しさん [2015/12/04(金) 13:12:02.93 ID:ciEp6cCK.net]
- >>85
>>88 ちょっと俺無知ゆえになにか凄い勘違いをしてたのかもしれません ちょっとそれ調べて試してみます 上手く行ったら報告します
- 90 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 13:42:05.60 ID:uOiBxvHU.net]
- いやいやメッセージの内容の一部を委譲で決めたいって話はよく分かるし、
だとしたら勘違いしてるのは>>85の方。 そこはいいけど、疑問なのは本当に委譲が必用なのそれってところ。
- 91 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 13:44:54.36 ID:/QKGOPGQ.net]
- >>89
何も勘違いしてないよ 知識が根本的に足りてないだけ
- 92 名前:デフォルトの名無しさん [2015/12/04(金) 13:46:59.55 ID:ciEp6cCK.net]
- 試してみましたが上手く行きませんでした
string.Formatメソッドというのはstringを作るメソッドなのでセリフを表示する 時に使わないといけないと思います で、俺のプログラムでは最初にserihu配列を作る時にどの変数を参照するかも決定されるので 配列を作った時とセリフを表示されるまで間があります その間string.Formatで使う変数の参照を結局は持っておかないといけません
- 93 名前:デフォルトの名無しさん [2015/12/04(金) 14:00:21.98 ID:ciEp6cCK.net]
- >>90
確かにデリゲートを使うのは俺も疑問でした 何しろ変数一個につき余計な関数が一つ増えますし明らかに冗長です でも他に思い付かなかったんですよ なんかあるんですかね
- 94 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 14:09:54.37 ID:FKEfoH7y.net]
- >>92
>その間string.Formatで使う変数の参照を結局は持っておかないといけません 持ってればいいだろアホか >>82でpublic Watasi watasi;なんて余計な参照持ってるくせにobjectの参照持つのは気に喰わないのかよ
- 95 名前:デフォルトの名無しさん [2015/12/04(金) 14:19:31.55 ID:ciEp6cCK.net]
- >>94
それでC#における参照とはなんなのかなぁと思って>>65の質問になったわけです 条件としてはある変数aをある変数bでも利用できるようにしたいというものなんですけど
- 96 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 14:22:04.36 ID:FKEfoH7y.net]
- ダメージを決定するんだったらダメージ変数を持ってるクラスがあるんだろ?
それの参照渡せばいいだけだろ
- 97 名前:デフォルトの名無しさん [2015/12/04(金) 14:29:10.18 ID:ciEp6cCK.net]
- >>96
それだとserihuクラス配列に渡す変数はすべてクラスで包まなければならないと 言う事になりませんか? 実はまだどの変数をセリフに渡すかとかは決めてないんです 恐らくゲームを作っていくうちに増えていくと思います それで変数をクラスで包むという手法には抵抗がありまして
- 98 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 14:35:53.45 ID:FKEfoH7y.net]
- わかった
C#使うのやめろ
- 99 名前:デフォルトの名無しさん [2015/12/04(金) 14:42:25.47 ID:ciEp6cCK.net]
- なんか怒らせちゃったみたいでこの辺にしておきます
みなさん薄々気付いてるかもしれませんが前スレラストでちょっと荒れ気味になった件の あの者です 俺が来たらどこもああなります 何か人を苛つかせる能力でもあるのでしょうかw すいません この件は上手く行ったのでこれはこれでいいです ありがとうございました
- 100 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 15:13:45.01 ID:+NxYXL3O.net]
- スタンド能力でも持ってんのか
- 101 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 15:31:48.75 ID:L/LPhIAT.net]
- Regex等でセリフ中の特定文字列を置き換える
自前string.Formatみたいなの作った方がいいんじゃねえの と思ったり。 例えば、"僕は%damage%のダメージを受けた"という文字列を渡すと "僕は69のダメージを受けた"みたいにするようなの。
|

|