15/11/23 00:54:33.10 d/p1Vajd.net
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止](c)2ch.net
スレリンク(tech板)
■関連スレ
C#, C♯, C#相談室 Part89 [転載禁止](c)2ch.net
スレリンク(tech板)
■コードを貼る場合は↓を使いましょう。
URLリンク(ideone.com)
2:デフォルトの名無しさん
15/11/23 12:09:09.65 blqHyLLr.net
>>1乙
3:デフォルトの名無しさん
15/11/23 12:15:55.82 /RGpvc/8.net
>>1
乙です
今@ITでADO.NET Entity Framework入門っていう記事読んでるけど、むずかしいぜ。
前スレでちょっと出てきたDB関連の話でまったく知らなかったから参考に読んでるだけど
これ仕事ででてきたら果たして使えるようになるのか心配だ・・・今すぐ使うわけじゃないのが救い。
4:デフォルトの名無しさん
15/11/25 03:47:30.32 VpIXdAyb.net
C#で簡単にVSYNC待つ方法ないですか?
今Windows FormでVSYNC待つだけのためにDxLibを使っています
CPUパワーを食わずに、コードもあまり書かずに簡単にVSYNCだけ待てれば
DxLibに頼らずに済むのですが
2010Expressを使っています
5:デフォルトの名無しさん
15/11/25 03:52:32.72 A+DiyrlM.net
Windowsで使ったソフトの順序を取得する命令ってありますか?
Alt+Tabを押すと使った順に並んだ小窓が出るのでどこかに記録されているのではないかと思っているのですが
探し方が悪いようで見つからないです。
6:デフォルトの名無しさん
15/11/25 22:40:12.84 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:デフォルトの名無しさん
15/11/25 22:53:14.22 5wB+dJF6.net
上長に聞きたまえ
8:デフォルトの名無しさん
15/11/25 23:16:59.10 jVhYVUAo.net
自分で作り直すのが無理なら
クラスBを作った人に修正をお願いするしかないんじゃない
9:デフォルトの名無しさん
15/11/26 10:56:36.07 uhVdTG0g.net
Has AなクラスA'を作ってインターフェイス(A?)を実装
各メンバーではAに委譲する
Bがデータを要求するところだけキャンセルならデータ供給を止めるみたいな
10:デフォルトの名無しさん
15/11/26 12:39:25.48 wLo/SUaP.net
細部は違うけど要するに案2だろ
面倒くさいから嫌だってw
11:デフォルトの名無しさん
15/11/26 20:04:37.19 cJiE/pnV.net
ある集合の中から条件に一致するものだけ、値を変更して、
その集合を返すみたいな処理ってLINQでどう書けばいいんだろ?
1~5の数字のうち偶数は!をつけて出力みたいな
1 2! 3 4! 5
whereしてからselectすると偶数だけのリストになっちゃうし、selectの中でwhere??
12:デフォルトの名無しさん
15/11/26 20:39:44.72 QqGRNt0R.net
>>11
URLリンク(ideone.com)
こんな風に馬鹿正直に書いたら駄目なん?
13:デフォルトの名無しさん
15/11/26 20:50:40.56 XPm6ny2d.net
>>12
自分もそういう書き方しか思いつかなかったんですが、もう少しスマートに書けないかなと。
↑であげたのは簡略化した内容ですが、実際には
class Item{
bool Checked;
string KeyWord;
}
このクラスのリスト List<Item> に対して
あるキーワード文字列に一致する場合は、Checkedをtrueにして
そのリスト全体を返す。みたいなことがやりたいんだよね。
14:デフォルトの名無しさん
15/11/26 20:56:13.07 QqGRNt0R.net
んならそういう働きをする拡張メソッドを書くしかないな
条件はFuncで与えるとして
Where()は条件に一致する集合しか返さない
そうではなく結果を{source, bool}みたいな感じでFuncに当てはまるか匿名型で返すような
15:デフォルトの名無しさん
15/11/26 21:03:24.02 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:デフォルトの名無しさん
15/11/26 21:08:46.61 wLo/SUaP.net
手段と目的の逆転
17:デフォルトの名無しさん
15/11/26 21:15:13.31 XPm6ny2d.net
>>14
やっぱ拡張メソッド定義するしかないんですね。
こういうパターンって結構ありそうな気もするんですが...
18:デフォルトの名無しさん
15/11/26 21:20:59.72 96CZ8S8K.net
LINQは副作用に否定的だから
19:デフォルトの名無しさん
15/11/26 21:23:12.42 zfiVTGcd.net
>>1
.Select((item) => new Item
{
KeyWord = item.KeyWord,
IsChecked = (item.KeyWord == "a")
});
20:デフォルトの名無しさん
15/11/26 21:27:28.22 KfvI2hmZ.net
副作用が出るのはIxのForEach使えばいい
21:デフォルトの名無しさん
15/11/26 21:28:06.60 nO6kdv8X.net
すげぇ変なことしてんな
普通にSelectでやればいいかと思うのだが
22:デフォルトの名無しさん
15/11/26 21:29:56.77 Vv+caMcJ.net
>>17
気持ちがわからないんだよな。
>>11と>>13の要望まとめるとこんな感じ?
URLリンク(ideone.com)
最後に元の集合返すLINQがこんな感じに作れるけど
URLリンク(ideone.com)
これでいいじゃんってなる。
23:デフォルトの名無しさん
15/11/26 21:33:39.93 Vv+caMcJ.net
ああ元の集合から作った新しい集合がほしいのか。
>>22は無しね!
でもそうだとしても>>21でいいじゃんね!
24:デフォルトの名無しさん
15/11/26 21:41:44.00 QqGRNt0R.net
あ、やっぱり拡張メソッドを使うと変だね
無理にメソッドチェーンをする必要ない気がする
25:デフォルトの名無しさん
15/11/26 22:40:51.15 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
15/11/26 22:52:39.19 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
15/11/27 00:00:23.02 V/UxGV6O.net
>>8-10
ありがとう。
やっぱり 案2 というか has a しかないかな。
でもよく考えたら特定用途にしか使わないことが明確ならインターフェイスの全メソッドを
真面目書く必要もないかも知れないと気がついた。
いやインターフェイスに定義されてるメソッド等の実装はしなきゃならないのは変わらないんだけども。
28:デフォルトの名無しさん
15/11/27 01:58:20.80 iofAV5op.net
>>6
Interface IV
Cancel();
Interface IA:IV
V v=objectA;
29:デフォルトの名無しさん
15/11/28 14:48:27.88 dnKF4fhx.net
データベースの内容を画面に表示、編集する方法で悩んでいます
・具体的にはデータベースの内容をDataGridViewに表示して
編集した内容をデータベースに反映したい
・テキストボックスに検索文字を入力してデータの絞込をしたい
調べたらこういう記事がありました
新グリッド・コントロールの豊富な機能と高い表現力 - @IT
URLリンク(www.atmarkit.co.jp)
実際やってみたら、編集可にしているのにセルの値の編集が全く出来ない
(このやり方は表示するだけ?)
それに10年前の記事でとても古い
今だとどういう方法で実現すればいいでしょうか?
30:デフォルトの名無しさん
15/11/28 16:34:28.63 N2qWmI2+.net
>>29
SQLiteなら
URLリンク(dangoya.jp)
こんなのとかたくさんあるみたい
31:デフォルトの名無しさん
15/11/28 17:03:27.66 X+9lGRnl.net
>>30
それGUIの設計というより、DBからデータを取得する方法じゃないですか
しかも結果はデバッグ出力だし
全く参考にならない
32:デフォルトの名無しさん
15/11/28 17:09:40.67 N2qWmI2+.net
URLリンク(park.geocities.jp)
こんなのだったらいいのか
それにGUIなら
URLリンク(c-loft.com)
こういう奴とか?いくらでもあるんだが
33:デフォルトの名無しさん
15/11/28 17:15:59.89 CPGEE3Eu.net
このバカが
コピペで要求満たせるサンプル持って来いってんだよ
すべて説明しないと察せないのか?
ガキか素人か?
34:デフォルトの名無しさん
15/11/28 17:24:52.80 N2qWmI2+.net
お前教えてクレクレ君の癖に随分横柄な態度だな
自分で探せやアホ
35:デフォルトの名無しさん
15/11/28 17:26:09.88 CPGEE3Eu.net
代弁してあげただけですよ~
36:デフォルトの名無しさん
15/11/28 21:57:42.37 QbwUMUmL.net
まあ>>29レベルの質問は
>教えてクレクレ君と言われてもしかないだろうな
初学者としても勉強不足だし
ググレカス以外のの返答は期待できない
37:デフォルトの名無しさん
15/11/28 23:18:13.48 ExUydw0X.net
gridviewよりlistviewのがいいんだっけ?
てかこういうコントロール系って
サーバ側で取得するとき
全行ループしてFindControllでコントロール取得するんだよね?
MVC勉強してると、こういうの面倒くさいなと思う
38:デフォルトの名無しさん
15/11/28 23:42:17.02 dnKF4fhx.net
SQLite→EF(or dapper)
まではようやく出来たのですが、いざDataGridViewに表示しようとすると
ソートができない、値の変更ができないなどがあって躓いてしまいました
調べると、データテーブルを使えばコードレスで表示する方法を見つけたのですが
DataGridViewでの変更をデータベースに反映する方法までは乗っておらず
一体どの方法でするのが一番いいのかわからなくなって質問しました
①SQLite→EF(or dapper)→BindingListView→DataGridView
この方法だとLINQも使えて、値の変更も反映されるようですが
ソートやジェネリックに対応しようとするとBindingListViewや
BindingNavigatorの実装を自前で書かないといけなくて難しい
でもこれが完成するとほとんどFormにコードを書かなくて済むみたい
②SQLite→TableAdapter→DataTable→データソース→DataGridView
表示するまでは簡単だけど、変更をデータベースに反映するのが大変?
EFやdapperを勉強したのは無駄だった?
比較的簡単なのはこの2つなのかなと思ったのですが
どのやり方が一般的というか簡単というか、そこのところが知りたいです
今後WEBシステムや業務用の顧客管理システムを作る予定は全くありません
ちょっとした自分用の動画や音楽のデータベースを作りたいだけです
39:デフォルトの名無しさん
15/11/28 23:47:13.87 3Q3OpRos.net
>>38
EFなんか使わないのがベスト
(EFがターゲットとする)業務システムってとんでもなく複雑なんだぜ
それに比べりゃたかが動画や音楽のDBごときにEFなんか要らん
40:デフォルトの名無しさん
15/11/28 23:49:15.85 kPVc8Ylo.net
>>38
ネットの情報見ながらなら②が楽かと
41:デフォルトの名無しさん
15/11/29 00:05:54.22 aZc4OEnQ.net
LINQ勉強したならEFは使わないで、dapperとDBテーブルに対応するクラス作ってマッピングさせたほうがいい。
検索と更新、ソートが画面上からできればいいんでしょ?
42:デフォルトの名無しさん
15/11/29 00:32:17.14 9octMKBL.net
>>39
EFを使わない方がいい理由は
三輪車にV6エンジン搭載するような感じですか?
ダメな理由があまり見つからないもので
重いからかな?確かにdapperと比べると遅いですけど
>>40
②の場合、DataGridViewの変更がDataTableに反映されて
それをTableAdapterでデータベースにUpdateという感じでよろしいですか?
>>41
マッピングまではやってみました
それをDataGridViewで検索、更新、ソートできるようにする方法が
調べた感じだとBindingSourceの自作しかなさそうだったのですが
他に方法はあるのでしょうか?
レスありがとうございます。それと質問ばかりですみません
一つのことを実現するのに方法が無数にありすぎて混乱してます
43:デフォルトの名無しさん
15/11/29 10:31:35.90 BA+ijUMq.net
IEnumerableがいまいちぴんとこなくて初心者から抜け出せない・・・
List<>とDictionary<>にデータ保持とかの自作のクラスを入れてしまうと
だいたいやりたいことができているんだけど
あえて自分でIEnumerableを扱う利点ってどんなものなの?
44:デフォルトの名無しさん
15/11/29 10:40:55.72 ejXKaOWL.net
引数や戻り値を介した受け渡しに使うんだよ
なんでもいいから複数の値を引数で受けたいとか返したいとかよくあるだろ?
そういうとき具体的なコレクションの型を指定してしまうと不要な厳しい制限を設けることになってしまう
45:デフォルトの名無しさん
15/11/29 10:53:25.06 7SVdQgBN.net
インターフェースを引数にすれば抽象度が上がって重複コードが減るよってだけ
System.Linq.Enumerableの実装見るのが手っ取り早い
46:デフォルトの名無しさん
15/11/29 12:28:51.61 j4qD5yiX.net
あとは遅延リストや無限リストが欲しいときにも使えるね
47:デフォルトの名無しさん
15/11/29 12:32:01.69 ejXKaOWL.net
遅延リストや無限リストが欲しいだけなら別にIEnumerableを使う必要はないけどね
遅延リストや無限リストのようなものもList<T>も配列も同じ「要素のシーケンス」として
共通のインターフェースで扱えることに意味がある
48:デフォルトの名無しさん
15/11/29 12:41:33.12 MHU1lz94.net
C#でTaskにて別スレッドを実行中にXマークでデバックを落とすと
破棄されたオブジェクトにアクセスできませんとエラーが出るんです
出ないようにするにはどうすればいいでしょうか?
49:デフォルトの名無しさん
15/11/29 16:15:06.84 vuzu98VN.net
>>48
cancelとwait
50:デフォルトの名無しさん
15/11/29 16:32:17.55 yHrLnXF5.net
>>49
ありがとうございます。
無事に出来ました!!
51:デフォルトの名無しさん
15/11/29 17:02:57.67 sqPcAEkv.net
たぶんコイツがキチガイ回答者 >>33
ここまでほとんど自演なんだろうな
52:デフォルトの名無しさん
15/11/29 18:29:07.30 djg7Qs12.net
みんな既に理解してるから、
くだらないことでドヤらないで。
53:デフォルトの名無しさん
15/11/29 21:49:18.21 y4EB3thr.net
>>48
>>49
個人的にはこれがすごいと思う
エスパー的な意味で
54:デフォルトの名無しさん
15/11/29 23:42:04.32 X6CLD+vb.net
17分後に完了できたのは凄技だとは思うw
55:デフォルトの名無しさん
15/11/30 17:10:07.41 wM8ePfaT.net
ブラゲーの画面をぴったり画像保存するようなプログラム作りたいんですけど
ブラウザの中のフラッシュやHTML5の画面の左上座標ってどうすればとれますか?
画像認識で強引に認識するしかないでしょうか?
56:デフォルトの名無しさん
15/11/30 17:37:19.12 NvF8UIfD.net
OSによるのでは?
57:デフォルトの名無しさん
15/11/30 17:42:27.07 pbgvhCW9.net
ブラウザコントロール使う話ではなくて?
58:デフォルトの名無しさん
15/11/30 19:54:38.66 wM8ePfaT.net
>>56
Windows 7 です
>>57
よくわからなかったので軽く調べてみましたけど
自作のUIがジェットの中にブラウザ表示させるみたいな感じなんでしょうか
そうではなくて chrome や firefox なんかに表示されてる
フラッシュの画面部分だけぴったりスクリーンキャプチャするようなプログラム作りたいんですけど
無理ですかね…
59:デフォルトの名無しさん
15/11/30 20:07:34.72 4TtrR1iM.net
ブラウザの枠含めて大きめにキャプって、後で画像処理ソフトで切り出せばいいだけじゃないの?
自分で作らなくても、両方とも既にあると思うけど。
60:デフォルトの名無しさん
15/11/30 20:17:18.03 NvF8UIfD.net
>>59に1票。
61:デフォルトの名無しさん
15/11/30 23:07:13.04 wM8ePfaT.net
いままでそうしてたんですけど
1日何枚もとってブログにはったりするので
それを自動できれいにやるようにしたかっただけです
まあ内側のフラッシュのプロセスつかんで
その表示位置取得したりできるかなと思ったんですけど無理なんでしょうか…
あきらめます
回答していただいた方ありがとうございました
62:デフォルトの名無しさん
15/12/01 02:01:07.71 XoX/fDF5.net
ブラウザのサイズを固定(キャプを取るときは全画面にするとか)したらあとはそれに合わせて切り抜く範囲を決めるだけじゃん
63:デフォルトの名無しさん
15/12/01 02:10:57.73 fBpqlrz3.net
艦これの専ブラとかそれやってるから、ソース見るといい
64:デフォルトの名無しさん
15/12/01 20:17:01.67 sAwax9ox.net
>>53
>>48です。
closingイベントでcancel要求を出して
それが受けつるまで待機するという意味での
waitだと思いました。
65:デフォルトの名無しさん
15/12/03 00:33:41.52 lhYNgz5S.net
質問です
変数aとbがあるとします
aの内容をbから参照する事は出来るでしょうか?
a=1;
//bに対してaを参照できる何らかの処理
print(b);//1
a=5;
print(b);//5
という結果を出したいのですが
66:デフォルトの名無しさん
15/12/03 01:12:22.92 lfpcI0/L.net
ここはC#のスレです。
67:デフォルトの名無しさん
15/12/03 02:09:53.61 F5OD5ya2.net
a=bにすりゃいいんじゃないの?
レベル高すぎてやりたいことがわかんない
68:デフォルトの名無しさん
15/12/03 03:29:17.07 KH3XuQZQ.net
参照だろ。
同じオブジェクトIDを持つ、同一オブジェクト
でも、intのようなprimitive型では、
値(参照ではなく内容)がコピーされるため、
参照のようなことは出来ないかも
(C#にも、Javaのようなprimitive型があればの話だが)
69:デフォルトの名無しさん
15/12/03 10:58:04.62 lhYNgz5S.net
>>68
やっぱり無理なんですか
ありがとうございました
これができないと余分なコードを書かないといけない状況に陥ってたんですが
仕方ありません
70:デフォルトの名無しさん
15/12/03 12:10:31.86 r4QYskO6.net
>>69
そんな状況ありえんと思うけどねw
何か思いっきり勘違いしてそう思い込んでるだけだと思う。
あと一応値型でもunsafeでポインタは取れるよ。
71:デフォルトの名無しさん
15/12/03 12:52:27.54 zCQ/Nhg2.net
>>69
何をしたいのかよくわからんけど、やりたいことを関数に切り出して、int 変数を参照渡しにすればいいんじゃね?
72:デフォルトの名無しさん
15/12/03 13:04:34.35 IgpEN7lw.net
そういうことをしたくなっちゃダメよ
73:デフォルトの名無しさん
15/12/03 13:11:21.98 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:デフォルトの名無しさん
15/12/03 13:18:55.92 jUS2N3R7.net
intなプロパティもつクラス定義すれば良いだけだと思うんだが
75:デフォルトの名無しさん
15/12/03 14:10:48.22 lhYNgz5S.net
お騒がせしました~
delegateを使ってなんとか実現できました~
回答ありがとうございます
76:デフォルトの名無しさん
15/12/03 20:17:12.68 zCQ/Nhg2.net
>>74
配列を提案した俺が言うのもなんだが、クラスはなんか負けた気がする…
77:デフォルトの名無しさん
15/12/03 20:43:19.72 /6SEhgDG.net
valueプロパティだけのインターフェースって便利だよね
極限まで行っちゃうとなんらかの値オブジェクトをどこかから取得する事となんらかの値オブジェクトをどこかに転送する事
この2つの連鎖でほぼ全てのシステムが組める
つまりinterface IValue<T> { T Value { get; set; } }はプログラムの全てを抽象化すると言ってよい
78:デフォルトの名無しさん
15/12/03 20:46:05.45 IgpEN7lw.net
何の値か分からんし誰もそんなことやらん
79:デフォルトの名無しさん
15/12/04 05:49:43.54 CuO9UgGb.net
>>75
どう書いたのかコードみせて!
80:デフォルトの名無しさん
15/12/04 08:23:18.98 UQYmj2IV.net
SQL Builderのようなライブラリ使ってる?
EF使えないと、SQL自前で組み立て、Dapperでアクセスでやってるんだけど
SQL作る部分を綺麗に書きたい
81:デフォルトの名無しさん
15/12/04 08:30:25.10 N8pVjmap.net
DapperならDapper.Rainbowっていう簡易クエリビルダが付いてる
82:デフォルトの名無しさん
15/12/04 12:05:23.03 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:デフォルトの名無しさん
15/12/04 12:28:30.63 4FwXmqLX.net
こんな回りくどいコード初めて見た
84:デフォルトの名無しさん
15/12/04 12:36:37.37 ciEp6cCK.net
>>83
やっぱり他人から見ればそう見えるのかw
自分でもそうなんじゃないかなぁとw
まぁ何度も書いてくうちに効率的な書き方わかるようになるでしょ
85:デフォルトの名無しさん
15/12/04 12:37:39.48 NrPmzULQ.net
ただのString.Format案件に見えるのだが
86:デフォルトの名無しさん
15/12/04 12:38:19.14 uOiBxvHU.net
何がしたいんだろう。
全然理解できない。
87:デフォルトの名無しさん
15/12/04 12:54:34.09 ciEp6cCK.net
>>86
平たく言うと
まず最初にセリフを配列で持ちたい
そしてそのセリフの中に動的に変数を入れたいということです
88:デフォルトの名無しさん
15/12/04 12:55:52.79 6PuXTYFV.net
やっぱりstring.Fopmatだろ
89:デフォルトの名無しさん
15/12/04 13:12:02.93 ciEp6cCK.net
>>85
>>88
ちょっと俺無知ゆえになにか凄い勘違いをしてたのかもしれません
ちょっとそれ調べて試してみます
上手く行ったら報告します
90:デフォルトの名無しさん
15/12/04 13:42:05.60 uOiBxvHU.net
いやいやメッセージの内容の一部を委譲で決めたいって話はよく分かるし、
だとしたら勘違いしてるのは>>85の方。
そこはいいけど、疑問なのは本当に委譲が必用なのそれってところ。
91:デフォルトの名無しさん
15/12/04 13:44:54.36 /QKGOPGQ.net
>>89
何も勘違いしてないよ
知識が根本的に足りてないだけ
92:デフォルトの名無しさん
15/12/04 13:46:59.55 ciEp6cCK.net
試してみましたが上手く行きませんでした
string.Formatメソッドというのはstringを作るメソッドなのでセリフを表示する
時に使わないといけないと思います
で、俺のプログラムでは最初にserihu配列を作る時にどの変数を参照するかも決定されるので
配列を作った時とセリフを表示されるまで間があります
その間string.Formatで使う変数の参照を結局は持っておかないといけません
93:デフォルトの名無しさん
15/12/04 14:00:21.98 ciEp6cCK.net
>>90
確かにデリゲートを使うのは俺も疑問でした
何しろ変数一個につき余計な関数が一つ増えますし明らかに冗長です
でも他に思い付かなかったんですよ
なんかあるんですかね
94:デフォルトの名無しさん
15/12/04 14:09:54.37 FKEfoH7y.net
>>92
>その間string.Formatで使う変数の参照を結局は持っておかないといけません
持ってればいいだろアホか
>>82でpublic Watasi watasi;なんて余計な参照持ってるくせにobjectの参照持つのは気に喰わないのかよ
95:デフォルトの名無しさん
15/12/04 14:19:31.55 ciEp6cCK.net
>>94
それでC#における参照とはなんなのかなぁと思って>>65の質問になったわけです
条件としてはある変数aをある変数bでも利用できるようにしたいというものなんですけど
96:デフォルトの名無しさん
15/12/04 14:22:04.36 FKEfoH7y.net
ダメージを決定するんだったらダメージ変数を持ってるクラスがあるんだろ?
それの参照渡せばいいだけだろ
97:デフォルトの名無しさん
15/12/04 14:29:10.18 ciEp6cCK.net
>>96
それだとserihuクラス配列に渡す変数はすべてクラスで包まなければならないと
言う事になりませんか?
実はまだどの変数をセリフに渡すかとかは決めてないんです
恐らくゲームを作っていくうちに増えていくと思います
それで変数をクラスで包むという手法には抵抗がありまして
98:デフォルトの名無しさん
15/12/04 14:35:53.45 FKEfoH7y.net
わかった
C#使うのやめろ
99:デフォルトの名無しさん
15/12/04 14:42:25.47 ciEp6cCK.net
なんか怒らせちゃったみたいでこの辺にしておきます
みなさん薄々気付いてるかもしれませんが前スレラストでちょっと荒れ気味になった件の
あの者です
俺が来たらどこもああなります
何か人を苛つかせる能力でもあるのでしょうかw
すいません
この件は上手く行ったのでこれはこれでいいです
ありがとうございました
100:デフォルトの名無しさん
15/12/04 15:13:45.01 +NxYXL3O.net
スタンド能力でも持ってんのか
101:デフォルトの名無しさん
15/12/04 15:31:48.75 L/LPhIAT.net
Regex等でセリフ中の特定文字列を置き換える
自前string.Formatみたいなの作った方がいいんじゃねえの
と思ったり。
例えば、"僕は%damage%のダメージを受けた"という文字列を渡すと
"僕は69のダメージを受けた"みたいにするようなの。
102:デフォルトの名無しさん
15/12/04 15:45:23.46 Bww8jXfy.net
メッセージインターフェースを実装するダメージを受けたメッセージクラスにダメージ取得インターフェースを注入すればよいのでは?
103:デフォルトの名無しさん
15/12/04 16:00:56.65 0orRsGxe.net
1.問題を解決し次へ進むこと
2.解決手段をを見直すこと
お前らは2を後回しにしないからいつまでも停滞してるんだぞ?
2なんてまた同様のケースに直面したときに見直せばいいんだ。
104:デフォルトの名無しさん
15/12/04 16:53:55.77 Wl0CweWM.net
>>94
煽るなよ低能
105:デフォルトの名無しさん
15/12/04 17:19:05.00 Xp0LGpIk.net
>>82
だから俺が教えた通り前スレで教えたとおりにセリフを全部デリゲートにしとけばよかっただろ
string配列なんて柔軟性全くないだろカス
106:デフォルトの名無しさん
15/12/04 17:42:09.24 Xp0LGpIk.net
SerifuAction(IPlayer player,IItem item)
{
var pname=player.Name;
var iname=item.Name;
Say($"{pname}は{iname}を使った!");
}
107:デフォルトの名無しさん
15/12/04 17:45:28.32 teE1ArcJ.net
それだと拡張性がいまいちかな
108:デフォルトの名無しさん
15/12/04 18:33:00.85 fudonlIp.net
これでどう?
public class Serihu
{
private readonly Func<string> factory;
public Serihu(Func<string> text) { factory = text; }
public Serihu(string text) : this(() => text) {}
public Serihu(string pre, Func<string> text, string post) : this(() => pre + text() + post) {}
public override string ToString() { return factory(); }
}
var serihu = new[]
{
new Serihu("こんにちは"),
new Serihu("僕は", GetItemumei, "を使った"),
new Serihu(() => $"僕は{itemmei}を使った")
};
109:デフォルトの名無しさん
15/12/04 19:12:20.49 dRNqkMm3.net
>>103
「を」がダブってるぞ見直せ
110:デフォルトの名無しさん
15/12/04 19:25:29.22 T2FA2tQ2.net
ぱっと考えてみたが>>101のやり方がベターだと思うな。
実装も楽だろうし。
111:デフォルトの名無しさん
15/12/04 22:37:56.15 j2Cod+yK.net
>>99
全スレラスト近辺の ID:fPUy/JrI は俺なんだがな。
そして荒れ気味になったのは君のせいではない。
(それ以前の時も君だけの問題ではない)
ただ君のやり方はとにかく普通じゃないんだ。
だからみんなが突っ込みたくなるのも分かる。
delegateってのはそういう時に使うものではない。
その場合は String.Format で全く問題なく実装できるはずだ。(>>85)
多分オブジェクト指向を勘違いしているのだと思うが、データ構造が意味不明になっている。
セリフを一つの配列に保持するのは何故?普通はフラグで切り分ける。
ただしこれだとコードがばらけてしまうので、フラグが立ったら落ちることがないのであれば、
今君がやっているように上書きしてif文を除去してもいい。ただこれも一つの配列に無理に押し込む必要はない。
具体的に言えば、普通は>>82なら、最後は以下になる。(記述箇所が違うのがミソ)
× new Serihu("僕は",GetItemumei,"を使った"); // Serifu配列に保持
○ String.Format("僕は {0} を使った",GetItemumei()); // item.useメソッド内に記述
丁度>>103に書かれているが、俺は逆で、君はもっとデータ構造を練ってからコーディングするべきだと思う。
君はとにかく一通りは実装できる実力があるようだ。
つまり初心者→中級者に脱皮中なのだから、もっと簡単に記述する方法を練るようにした方がいい。
結果的に、その方がデバッグ時間が少なくなって早く仕上がることが分かるはずだ。
一通りすら実装できない奴らが御託を並べてコーディングしないのもよくあることで、その場合は>>103はその通りだ。
ただ君はもうそのレベルは超えているのだから、もっと練ってからコーディングする癖を付けるべきだ。
112:デフォルトの名無しさん
15/12/04 23:18:07.68 ciEp6cCK.net
>>111
セリフを配列にしたのはですね
正確には作ってるクラスはSerihuじゃなくてSinarioなんです
Sinarioクラスの中にシナリオの情報が入ってるんですけどそれはセリフだけじゃなくて
yes,noの選択肢、ゾーンの移動、音楽再生、分岐などに分類されてます
それが順送りに進んだり分岐で別のラベルに飛んだりして遷移する訳です
遷移の制御の関数はゾーンごとに作る予定です
それをわかりやすく記述するには初期化の所で配列に入れてしまうのが良いんじゃないかと
思ったんですけど
113:デフォルトの名無しさん
15/12/04 23:26:44.86 7dL2y26W.net
俺だったら外部データにして、読み込んで、変数使うところは表示するときに変換するように設計しちゃうなあ
114:デフォルトの名無しさん
15/12/04 23:29:51.50 9UEpldgC.net
>>113
localDBとかデータとして格納すべきものだよな
115:デフォルトの名無しさん
15/12/04 23:54:24.22 vTZpFPk/.net
>>112
だから言ってるだろ
音楽再生もセリフも全部デリゲートにしておけば解決だろ
後でいくらでも変更できる
初心者や初めから完璧なデータ設計ができるわけがない
手探りでやるならデリゲートが万能
say("こんにつわ");
play("嗚咽.wav");
これらをシナリオデリゲートリストにでも突っ込んどけばいい
116:デフォルトの名無しさん
15/12/05 00:00:03.45 0DSpQ91W.net
>>115
はぁ
次作で検討します
今作はもう今のままで上手くいっててテストデータをいくつか放り込んでも
実に正確に動いてますので
117:デフォルトの名無しさん
15/12/05 00:08:05.88 0om6DbSR.net
初めてC#を勉強しているのですが、構文についてよくわからない部分があり教えていただけないでしょうか
this.abc.jkl();
こういう感じで「.」が複数並んだものはどういう意味があるのでしょうか?
初めのthisが自分自身のオブジェクトを指し、最後のjkl()がメソッドを指しているのだと思うのですが・・・・間のabcの部分は何者なのでしょうか?
118:デフォルトの名無しさん
15/12/05 00:34:13.84 5SHMDYrP.net
>>112
考えて作っているのならそれでいい。
こちらも仕様を見ないと正確には最適な構造かどうかは判断できないし、それは他の人もそうだ。
今後とも俺含めて外野がごちゃごちゃ言うだろうが、結局のところ責任者は君なのだから、
良いアイデアはもらって、どうでも良い意見は無視すればいい。(これは今の君は出来ている)
それは持ち物の全てを常に自由に使えるというタイプではなくて、
あるアイテムはあるシチュエーションでしか使えないというタイプか?
(アイテムが有効な時にだけ選択肢の中に「使う」が出てくる)
その場合はその構造の方がいいのかもしれない。(全てがシナリオに紐付けされるから)
シナリオ部分だけ分離して作るのは良い戦略だ。
ただそれはハードコードではなく、前言われたように連想配列を使った方がいい。
あと、配列に入れること(オンメモリ)にこだわっているようだが、
その都度ファイルをスキャンしてもPCなら全く問題ないはずだ。
またこれも既に言われていたが、吉里吉里とか使った方が楽だと思うが、
それでも作りたければ作ればいいと思う。少なくともやらない奴よりは100倍マシだ。
ただなあ、君は多分戦えるつもりなのだろうが、今君が持っている武器はナイフでしかない。
C#には電動ノコギリなりチェーンソーなりあるんだから、色々もっと楽に出来る。
だからもうちょっと.NETのライブラリを確認した方がいい。
(多すぎて実体が見えてこないというのはその通りだが)
119:デフォルトの名無しさん
15/12/05 00:41:50.04 9Cod3yWN.net
>>117
abcという変数がオブジェクトのインスタンスを持っていて、それがjklというメソッドを持っている。
120:デフォルトの名無しさん
15/12/05 00:56:32.34 0DSpQ91W.net
>>118
実はゲームの詳しい仕様はまだ決めてないんですよね
取り敢えずジャンルとしては昔のcsゲームのセレクションみたいなのをイメージしてます
予定としてはアイテムを自由に使うシーンもありますしシナリオ紐付けのシーンも
あるんじゃないかと予想してます
121:デフォルトの名無しさん
15/12/05 01:00:32.13 8OetstfL.net
その、abc に飛んで、定義を見れば?
122:デフォルトの名無しさん
15/12/05 01:12:59.50 8OetstfL.net
製作現場では、プログラマーとノンプログラマーが、
分業して、お互いに干渉しないようにする
シナリオライターは、プログラムを触らないようにするから、
Lua, Squirrel(スクワール)などを使う
JSPもそう。
HTMLコーダーはJavaを触らず、アクションタグ・EL式を使う
123:デフォルトの名無しさん
15/12/05 01:27:49.91 5SHMDYrP.net
>>120
まず仕様を確定させてから始めた方がいい。
アイテムがシチュエーションに依らず使用可能なら、
シナリオ側に「僕は○○を使った」があるのはナンセンスだろ。
それはアイテム側に無いと参照しづらい。(またはコピーが大量に必要になる)
両対応なら、普通は上記セリフはアイテム側にもって、
シナリオ側には有効アイテムかどうかのフラグを持つ。
(そうすれば、「僕は○○を使った」「何も起こらなかった」or「△△になった」と作りやすい)
まあ色々試せばいいが、多分一旦吉里吉里の仕様を確認して、
何でそういうことになっているのか考えた方がいいと思うぞ。
上記の通り、仕様が異なればそれに対する最適解も異なってくる。
とはいえ、正直やってみないと分からないところもあるだろうし、
それ含めて勉強だというのなら一度痛い目に遭ってみるのもいいかもしれない。
ただ確実に言えることは、仕様を確定させてから組む方が確実に早いんだよ。
それは面倒な作業に思えるかもしれないが、多分今の君は試したこともないだろ?
ウォーターフォールは成功すれば一番効率がいいんだ。
ただし現実にはそう簡単には行かない。とはいえ、目指さないことには始まらない。
だから今回でなくともいいけど、一回仕様をキッチリ確定させてから組むということを試した方がいい。
124:デフォルトの名無しさん
15/12/05 01:40:20.53 0DSpQ91W.net
>>123
ゲームに実際何が必要かは初心者なので作りながらでしかわからないんですよね
前に一作作って今のは二作目なのですが多少は掴めてきました
次作からはちゃんと仕様を決めて作りたいと思います
125:デフォルトの名無しさん
15/12/05 01:49:48.33 5SHMDYrP.net
>>124
ちなみに、先にシナリオをほぼ書き上げることは可能か?
その場合は8割方仕様が確定するから、その状態で組んでしまえばいい。
どうやっても多少の仕様変更は免れ得ないものだろうし、
その最中に「どういう構造にすれば仕様変更しやすいか」が分かるだろう。
これは学習方法としてはまあまあだ。
126:デフォルトの名無しさん
15/12/05 01:56:56.33 0DSpQ91W.net
>>125
シナリオを先に書く事は可能です
そろそろ取り掛かろうと思ってました
明日から始めたいと思います
127:デフォルトの名無しさん
15/12/05 02:26:38.84 F7H2FODJ.net
横槍なんだけど
仕様って具体的にどこまで固めるものなの?
こういう機能のクラスが必要とかUML図で作成したりすること?
独学でやってるから実践的な設計がわからない
だから行き当たりばったりで最初から作り直したりすることがよくある
上の方でもあるけど、データ構造は重要でここがしっかりしてないと
後で変更することになった場合、もう一から作ったほうがいいわってなる
128:デフォルトの名無しさん
15/12/05 06:32:05.25 poGBdUW6.net
データ構造重視はわかるが
最初に固める考えは古いんじゃね
129:デフォルトの名無しさん
15/12/05 16:58:57.43 nvqV1tdn.net
プロトタイプ作ってから実装しなおすって考え方どこ行ったの
130:デフォルトの名無しさん
15/12/05 17:06:48.44 TUTr6vYI.net
プロトタイプは客に見せて完成品のイメージを共有するのに使うんだよ
極端な話、手描きの紙芝居でいい
決して設計能力の無さを補うためのものではない
個人で作ってるなら完成品のイメージは最初から頭の中にあるはずだから、設計は最初からできる
131:デフォルトの名無しさん
15/12/05 17:13:26.24 KdBqlpoa.net
まずはDDDを学ぶ事
仕様なんて後回しでいいよ
132:デフォルトの名無しさん
15/12/05 17:23:12.50 OQdpR4PG.net
横だけどDomain-Driven Design知らなかった
勉強してみよ
133:デフォルトの名無しさん
15/12/05 17:37:59.43 7d38zssS.net
いい加減なこと言ってるなw
仕様変更や拡張に対する柔軟性はコードのシンプルさや可読性に反比例するし、
そもそも対応できる仕様変更の範囲なんてたかが知れてるから、程度問題ではあるが
結局は最初に仕様をある程度きちんと確定した方が効率がいいし、精神衛生上もいい。
急がば回れ、だろ。
っていうか、マ板的な話題になっちゃうけど、日本のITにデスマが多い理由の一つは
最初に仕様を確定することの重要性をクライアントに理解させることに失敗してるから。
134:デフォルトの名無しさん
15/12/05 17:43:34.13 TUTr6vYI.net
そう
仕様がはっきり決まってるのにその範囲をきっちり設計できないのは単なる能力不足であり非効率
流行りのアジャイルはその一度にはっきり決める範囲をなるべく小さくして方向修正をしやすくしようというものだ
いずれにせよ、「はっきり決まってる範囲」についてはきっちり設計できるのが前提だ
そこを履き違えてはいけない
135:デフォルトの名無しさん
15/12/05 17:48:23.96 KdBqlpoa.net
>>133
現代的な開発手法とは真逆の結論だね
なぜそうなったのか興味深い
136:デフォルトの名無しさん
15/12/05 18:06:09.35 7d38zssS.net
>>135
現代も糞もないから。
本気でそう思ってるんならお前さんオモチャみたいなプログラムしか作ったことないんだろ。
建築でも造船でも何でもそうだけど、犬小屋レベルなら思いつきでスクラップ&ビルドで何も問題ないけど
ある程度の規模と複雑性を超えたら気軽にそんなことできない。
137:デフォルトの名無しさん
15/12/05 18:16:09.67 TUTr6vYI.net
視点の違う話であり、どっちも正しい
仕様のはっきり決まっていないものを作るのも後で大きな変更をするのも不可能
でも最初に全部確定させるのは(客がビジネス上の目標を達成することを開発の目的とするなら)難しい
じゃあどうするか?→少しずつ確定させてその都度作ろう
というのが現代的な結論
138:デフォルトの名無しさん
15/12/05 18:31:12.60 bOfmuCEI.net
ソシャゲと据え置きゲーと業務系と制御系で同列に語れないだろ
いや、客の下請けになるのと自社製品のほうがデカイか
139:デフォルトの名無しさん
15/12/05 19:24:10.39 KdBqlpoa.net
>>136
大規模であるほどステークホルダが増え開発者の発言力は相対的に弱まりビジネスは複雑化しその変化は速くなる
最初からステークホルダ全員の納得する仕様を作る事など誰にもできない
最初に決めた仕様を顧客を無視して貫き通すなんてどんなに強大な開発会社だってできない
最初に仕様をがっちり固めてそれに執着する事ほど愚かな行いは無い
仕様は流動的で全体を見通す事は出来ないものであるという当たり前の事実を認める
変化に強く拡張性の高い柔軟でしなやかな設計と管理可能な規模に制限されたイテレーティブな設計開発プロセスでもって顧客の要求に応えさらには顧客の気付かなかったビジネス上の提案を行う
これが先進的な現代のシステム開発の姿だ
そして変更に対して柔軟で拡張性の高い設計は自然とSOLIDなどといった良い習慣を実践するシンプルで可読性の高いプロダクトを生産する事はいまや周知の事実である
140:デフォルトの名無しさん
15/12/05 19:35:08.76 HGRqjVZT.net
方法論はその手のスレで語りたまえ
141:デフォルトの名無しさん
15/12/05 20:56:33.71 0om6DbSR.net
>>119
入れ子構造になっていたわけですね
なかなか理解できなかったので助かりました
ありがとうございます
142:デフォルトの名無しさん
15/12/05 22:36:44.86 EmMdnWJI.net
仕様なんてすぐ変更可能だろ。
きちんと設計していれば
143:デフォルトの名無しさん
15/12/05 23:17:34.13 XLAN3beo.net
string str = "アヘアヘ";
byte[] data = Encoding.UTF8.GetBytes(str);
をループで100回くらい実行すると何十秒も掛かるのは何故?
速くする方法を教えてケロ
144:デフォルトの名無しさん
15/12/05 23:22:25.35 Pp+uAKFK.net
>>143
問題はそこだけじゃ無いと思うんだが
ソース全体見ないとなんとも
145:デフォルトの名無しさん
15/12/06 00:23:16.50 z5tP4Enx.net
>>144
調査してみます。ありがとうございました。
もう一つ教えて下さい。
string の配列 strが有るときに、その全ての要素の末尾の '\n' をトリム
したいのですがLINQで書く方法を教えて下さい。
146:デフォルトの名無しさん
15/12/06 01:42:11.95 wT98bk2q.net
全ての要素に対して特定の射影操作を行った結果を返す→Enumerable.Where
末尾の連続する指定文字を削除→String.TrimEnd
後はこれらを組み合わせるだけ
147:デフォルトの名無しさん
15/12/06 02:14:26.24 Iw0HekNi.net
>>146
WhereじゃなくSelectな
148:デフォルトの名無しさん
15/12/06 02:15:30.88 oN/DZACa.net
>>143
そんなもん速くすることに何の意味があるのか教えてケロ
149:デフォルトの名無しさん
15/12/06 02:29:23.41 z5tP4Enx.net
>>145 >>146
出来ました。有難うございました。
150:デフォルトの名無しさん
15/12/06 02:36:25.51 WQnzekof.net
最近はこいつ専用の質問スレになっているな
151:デフォルトの名無しさん
15/12/06 02:53:04.29 3F5n1eU+.net
>>150
別人ですよw
前も間違えられましたw
152:デフォルトの名無しさん
15/12/06 03:36:35.64 z5tP4Enx.net
>>150
こいつって言うなよ。お前はドイツだ?
153:デフォルトの名無しさん
15/12/06 11:14:49.31 AT77pBch.net
オランダ
154:デフォルトの名無しさん
15/12/06 17:12:11.55 W+p7bgVb.net
>>42について誰か教えて下さい
ずっと調べてたのですがよくわかりません
お願いします
155:デフォルトの名無しさん
15/12/06 17:26:29.52 W+p7bgVb.net
>>40にかんしてはわかりました
しかしデータテーブルだとデータ取得などでキャストがものすごく多く扱いづらかったので他の方法はないかなと
156:デフォルトの名無しさん
15/12/06 18:13:57.64 Iw0HekNi.net
>>154
>>42の何についてだよ
157:デフォルトの名無しさん
15/12/06 20:09:51.90 C3DS1n+h.net
開発環境について質問です。
win7だとVisual Studio以外だと現在どのような環境があるのでしょうか?
158:デフォルトの名無しさん
15/12/06 20:30:13.83 q8EgO26J.net
Visual Studio Code
159:デフォルトの名無しさん
15/12/06 22:25:05.46 PCHXXrmx.net
小規模だとEFを使わないほうがいい理由と
自作クラスをDGVでソートする場合に
bindinglistの自作以外に方法があるのかについてです
同じDBを複数のプロジェクトで使うため、ライブラリ化して簡単にDGVに表示する方法を模索中です
160:デフォルトの名無しさん
15/12/06 23:16:02.61 wT98bk2q.net
まだやってたのか
設計を低いレベルで考えすぎ
難しいこと考えずにDB使いまわしたいんならリポジトリパターンでも使ってラップしてしまえ
DGVとの受渡くらい手で書いても大したことじゃない
こういうのはきちんと守るべき大枠とくだらない実装の詳細を分けて考えるのが大事
161:デフォルトの名無しさん
15/12/07 01:26:06.62 2NgeMT2J.net
リポジトリパターンは既に作ってます
ただ、それをDGVでソートできるように
どう受け渡すかがわからなくて悩んでるところなんです
162:デフォルトの名無しさん
15/12/07 07:04:12.11 H/Y7gwjC.net
グーグル対オラクルのJava訴訟、米最高裁がグーグルの上告を棄却--Reuters
URLリンク(japan.cnet.com)
Javaがオラクルの所有物に過ぎないとばれた今、
C#がマイクロソフトの所有物でも普及に支障はなくなりましたか?
やっぱりオラクルvsマイクロソフトならマイクロソフトが勝つに決まってるし、
JavaよりC#の方が将来有望ですか?
163:デフォルトの名無しさん
15/12/07 09:32:41.12 yCfuxHba.net
グリッドビューのヘッダーにクリックイベントでもいれればいいじゃん
クリックされたら指定のソートで帰ってきたデータをDataSourceにbind
164:デフォルトの名無しさん
15/12/07 11:46:23.80 2NgeMT2J.net
クリックされたらLINQでデータソートは考えたけど
DGV作るたびにその処理を書かないといけないので諦めました
DALを参照したら、あとはソースをDGV.DataSourceに突っ込むだけで
ソートも編集もできるようにお膳立てしたいんです
既存の複数のプロジェクト、今後作るプロジェクトで
参照するだけでさくっとやれるようにしたいんです
で、それをするには自作BindingListViewってとこにたどりついたんですが
他に方法はあるのか知りたいという段階です
DataTableは一旦DBから全データ取り出して実体化したものだから
せっかくのデータベースも台無しだし
あととにかく記述が面倒なのと
フォーム上にテーブルごとにアダプターやらなんやら大量に作ることになるのが
目障りなんですよね
じゃあ、コードで生成するとなると
Rows["ほげ"]ということをしないといけなくなるのでそれも色々面倒
165:デフォルトの名無しさん
15/12/07 11:55:40.97 2NgeMT2J.net
>こういうのはきちんと守るべき大枠とくだらない実装の詳細を分けて考えるのが大事
やっぱこれにつきますかねぇ
なんかゴリ押しでやってた時のほうが目的のものがすぐ作れてた
どうでもいいこと考えすぎかな
166:デフォルトの名無しさん
15/12/07 20:06:56.84 Alz7fRso.net
結局プロトタイプはゴリ押しのほうがいいんだよな
167:デフォルトの名無しさん
15/12/08 18:30:32.51 pLN3UA33.net
LockBitsを使ってBitmapのRGB値を取得しようとするなら
unsafeは使ったほうが良いのでしょうか?
168:デフォルトの名無しさん
15/12/08 20:40:53.22 tm5OKDCJ.net
Marshal.Copyで丸ごと(orストライド単位で)配列にコピーでいい
もし「アプリとして一通り動作するようになった段階で」許容できないほど遅かったらポインタにすればいい
169:167
15/12/08 21:57:14.02 Knxj4/bI.net
>>168
ありがとうございます
そうします
170:デフォルトの名無しさん
15/12/09 19:28:35.96 M0xrPV16.net
下記のようなListから、Aの要素がいくつあるか調べる方法は
ありますでしょうか?
List<string> data = new List<string>();
data.Add("A");
data.Add("B");
data.Add("A");
for文で地道に処理すれば数えることはできますが、
今のご時世、ラムダ式などで短く書けるのではと思い。
よろしくお願いします。
171:デフォルトの名無しさん
15/12/09 19:37:40.54 svoVX7AQ.net
>>170
data.Count(str => str == "A")
172:デフォルトの名無しさん
15/12/09 19:45:54.70 rknXDi2e.net
data.FindAll( [条件判定のデリゲート] ).Count
でも行けるけど(たぶん)、Linq の方が好みだな。
173:170
15/12/09 19:51:16.06 M0xrPV16.net
やはりスマートな書き方があったのですね。
参考にさせて頂きます。
ありがとうございます。
174:デフォルトの名無しさん
15/12/10 19:44:47.35 /nCMdU4k.net
下記ページのTCPサーバーのサンプルソースで、下に書かれているように
Listenを閉じずに継続させたいのですが、具体的にどこをループさせればいいかわかりません。
よろしくお願いします
URLリンク(dobon.net)
>>もし終了させずにListenを継続する場合は、リスナを閉じずに、
>>再びAcceptTcpClientメソッドを呼び出してください(ループさせることになるでしょう)。
175:デフォルトの名無しさん
15/12/10 20:57:53.52 x7zD0EOz.net
using の行を1行目として、33-91 行じゃねーの?
いくら何でもこれは自分で理解出来るようにならないと、ソケットプログラムなんて無理だぞ。
176:423
15/12/10 20:58:57.17 t7TUm6W9.net
>>174
閉じる ⇒ 接続要求があったら受け入れる
に戻ればいいだけ
177:デフォルトの名無しさん
15/12/10 21:03:05.35 zy2e4Bxw.net
データベースと接続するクラスを作ったのですが、
オブジェクト指向的には、
インスタンスを作って呼び出す方が良いのでしょうか?
使用するクラスで継承させる方が良いのでしょうか?
趣味グラマーなので、専業の方が
どうしているのか気になりまして。。。
178:デフォルトの名無しさん
15/12/10 23:37:47.90 hl2uxfTr.net
クラスは一つしか継承できんのだぞ
そんなどうでもいいもの継承すんなボケェ
179:423
15/12/11 06:49:57.63 7DodXpQ6.net
>>177
マルチうざい
スレリンク(tech板:438番)
180:174
15/12/11 10:47:54.83 8ztrqOW8.net
>>175-176
Loopさせると期待通りの動作はするのですが、フォームが固まってしまうんですよね
181:デフォルトの名無しさん
15/12/11 12:06:53.25 lQa1iSl4.net
どんなフォームアプリケーションだろうとイベントハンドラで処理戻さなけりゃ固まる
いくらなんでもこれは自分で理解できるようにならないと、フォームプログラミングなんて以下略
182:423
15/12/11 12:45:33.07 7DodXpQ6.net
>>180
それはフォームの処理をする奴がいなくなるから
今まではメインスレッドがフォームの処理をやってたけど、メインスレッドはクライアントからの接続待ちとクライアントとの通信しかしてない
C# フォーム 固まる
とかで検索すれば対処法とか載ってるから見てみて
183:デフォルトの名無しさん
15/12/12 16:30:55.13 Tj9TliY5.net
Visual C++ / C++/cliのHTTPクライアントを作成しているが、
うまくいかないURLがあります。
■概要
「URLリンク(a.com)<)」「URLリンク(c.com)<)
大変困ってます。先輩方ご教授のほどお願い致します。
184:デフォルトの名無しさん
15/12/12 17:37:40.14 V9rSzP+i.net
♩はじめて~のa.com
185:デフォルトの名無しさん
15/12/12 23:59:25.81 k5LGN9PP.net
Hogeクラスをahoge,bhoge,choge・・・・と20回インスタンス化し、20すべてのインスタンスに対しHogeのメソッドFooを呼び出したいと思っています
この場合、次のように20行書くしかないのでしょうか?
ahoge.Foo();
bhoge.Foo();
choge.Foo();
・
・
・
素人感覚としてもう少し楽な方法があるのではないかと感じてしまいますがどうなのでしょうか、よろしくお願いします
186:デフォルトの名無しさん
15/12/13 00:03:26.38 Wcw8JgGx.net
誰かわかりませんでしょうか
187:デフォルトの名無しさん
15/12/13 00:24:37.34 pukhMxdP.net
foreach (var hoge in Enumerable.Range(0, 20).Select(_ => new Hoge())) hoge.Foo();
188:デフォルトの名無しさん
15/12/13 00:39:11.92 5FRgwNtE.net
流石にfor文のほうが好きだなw
2文になっちゃってるし
189:デフォルトの名無しさん
15/12/13 00:40:37.73 Be8+1Kca.net
Androidでは、メインスレッド・UI(描画)スレッドの2つあって、
各スレッドで、出来ることが厳密に分けられている
通信アプリでは、同期・非同期の2つある。
同期では返信が来るまで待つが、
非同期では待たずに、関数がすぐにリターンして、
後から登録しておいた、ハンドラを呼び出してもらう
サーバーではListenしておいても、接続要求が来たら、
そのソケットではなく、その場でコピーしたソケットを使って、
元のソケットはそのまま、Listenを続ける
190:デフォルトの名無しさん
15/12/13 00:42:24.59 dHM9DT2y.net
C#を使ってチャットに入室したいのですができるでしょうか?
191:デフォルトの名無しさん
15/12/13 00:45:16.72 Wcw8JgGx.net
>>183
どなたかご教授お願いします。難易度高いでしょうか・・
192:デフォルトの名無しさん
15/12/13 00:47:06.91 Z/gGXySu.net
>>185
var hoge[] = { new Hoge(), new Hoge(), ... };
foreach( var item in hoge ) item.Foo()
の方が好みだな。
193:デフォルトの名無しさん
15/12/13 00:52:59.06 Z/gGXySu.net
>>191
これってそもそも C++/CLR じゃないの? (ここは C# のスレ)
a.com が、きちんと応答を返しているかを確認してる?
このコードが何をしているのかを説明出来る?
194:デフォルトの名無しさん
15/12/13 00:59:25.75 wcpRGnCg.net
>>187
ありがとうございます
オブジェクト名に変数を使うのですね
ただSelect(_ => new Hoge()の部分が私には難しく、なぜオブジェクト名が返ってくるのか不思議に思えてしまいます
特に_から始まるラムダ式を初めて見たため_が何を意味しているのか分からず、またここに出てくるnewが何を意味しているのかよくわからないのです
できれば少し教えていただけないでしょうか
195:デフォルトの名無しさん
15/12/13 01:06:33.93 Wcw8JgGx.net
>>193
はい、HTTPレスポンスヘッダーとステータスコード=200は通常ですが、
中身だけ一文字文字化けで異常なのです。
原因と解決方法をご教授お願いします。
sssp://o.8ch.net/1mns.png
196:デフォルトの名無しさん
15/12/13 01:25:24.42 qqdlpJsw.net
>>185
素朴さと効率の面での着地点はおそらくこれ
for (int i = 0; i < 20; i++) {
new Hoge().Foo(); // 20回呼ばれる
}
197:デフォルトの名無しさん
15/12/13 01:33:58.65 nACJdPad.net
これ20回Fooを呼び出すのが目的なのか、20個のインスタンスからそれぞれFooを呼び出すのが目的かによって違うよね
198:デフォルトの名無しさん
15/12/13 01:39:36.45 wcpRGnCg.net
ああ、そういうことか
なぜこれで動くのか?なぜnewが挟まってるのかなあ・・・?と思ったら
199:デフォルトの名無しさん
15/12/13 01:41:04.49 qqdlpJsw.net
> 20回インスタンス化し、
> 20すべてのインスタンスに対しHogeのメソッドFooを呼び出したい
とモロに書いてあるけど?
一個のインスタンスに20回Foo呼び出すなら>>185の不満は出ないはず
200:デフォルトの名無しさん
15/12/13 01:42:11.81 qqdlpJsw.net
あ、>>199は>>197へのレスね
201:デフォルトの名無しさん
15/12/13 01:44:22.13 nACJdPad.net
>>199
その20個のインスタンスを使いまわすなら>>196みたいな書き方にはならないんじゃね?
まあ質問者が例の子だからこれ以上はレスやめとくけど
202:デフォルトの名無しさん
15/12/13 01:53:34.04 Be8+1Kca.net
>>194
以下のように、ラムダ式の引数を使うなら、
x => x * x;
使わないなら、_ を使う。
_ => new Hoge()
単に20回、Hoge インスタンスを作りたいのだろう
203:デフォルトの名無しさん
15/12/13 01:57:52.55 wcpRGnCg.net
ごめん、質問の書き方がほんと悪かった
204:デフォルトの名無しさん
15/12/13 05:58:27.26 cRCiNpbO.net
俺も>>192のが柔軟さもあるから好みだなあ
205:デフォルトの名無しさん
15/12/13 09:30:13.43 Wcw8JgGx.net
>>183
どなたかご教授お願いします。
206:デフォルトの名無しさん
15/12/13 09:51:50.02 sFQuc/mb.net
>>205
Visual C++ / C++/cliのHTTPクライアント [無断転載禁止]c2ch.net
スレリンク(tech板)
207:デフォルトの名無しさん
15/12/13 10:06:49.10 cRCiNpbO.net
>>205
このスレC#のスレなんだよね…そのくらいはスレタイトル見れば普通わかるよな
途中で指摘までもらってるのに謝罪もなく続ける神経ってどうなのか
マルチポストという最低行為までしてるし恥を知れと言わせてもらうわ
回答求めるなら人として最低限のルールやマナーくらい守ろうや
208:デフォルトの名無しさん
15/12/13 12:28:09.88 Z/gGXySu.net
そうなんだよね。
低姿勢に見えるけど、実はそうじゃないし。教えてあげる側にも必要な情報があるって事を理解してないし。
そもそも日本語もおかしいしな。
209:デフォルトの名無しさん
15/12/13 13:02:04.59 Wcw8JgGx.net
>>207
>>208
自力で解決しました。ありがとうございます。
210:デフォルトの名無しさん
15/12/13 13:40:22.11 yq3eT/D1.net
ゆとりは敬語=低姿勢だと勘違いしてるんだろ。
それはそうと、他スレでもそうだが、ここ数週間でこの手の輩
--掲示板に書けばデバッグしてもらえると思っている池沼ゆとり--が急に増えたよな。
何があったのかは分からんが。
マルチしているのなら、マルチ先にも取り下げを明示するのが義務。
質問をした以上、自己解決した場合もあらましは説明するのが筋。
ID:Wcw8JgGx は死ね。
211:デフォルトの名無しさん
15/12/13 14:50:18.19 jSlwiwGB.net
>>210
2ch脳全開だなお宅w
しかし、>>210みたいに相手(他人)にばかり義務を負わせて
テメエは文句を付けるだけで何も義務を負わないことに何の疑問も感じないどころか
正論ぶってるつもりになって自己陶酔してる馬鹿ってどういう神経してるのかね。
212:デフォルトの名無しさん
15/12/13 15:05:43.34 S5USnmm8.net
Unity君はunityスレでやってくれないかとだけ思う
213:デフォルトの名無しさん
15/12/13 15:25:01.50 EcvSK0Uh.net
呆れ返って無視を決め込んでる大多数の人に比べたら
ちゃんと書いてくれてる>>210は親切な人だよ
214:デフォルトの名無しさん
15/12/13 17:00:34.08 XIYdqDB0.net
まあここまで酷いと何言っても無駄だろうけどなぁ
215:デフォルトの名無しさん
15/12/13 18:31:41.06 ATkL4mrR.net
あるフォームアプリケーションを作成しています。開始ボタン、停止ボタン、表示部で構成され、開始を押すとある相手先に要求コマンドを投げてデータを返してもらいます。
216:デフォルトの名無しさん
15/12/13 18:32:20.53 ATkL4mrR.net
停止を押すまではこの要求コマンドを投げてデータを受け取り、表示部に代入する処理をループで回し続けたいのですがどうすればよいでしょうか?
217:デフォルトの名無しさん
15/12/13 18:35:10.91 ATkL4mrR.net
マルチスレッドを調べたのですが難しくて…また、別スレッドで表示部に代入しようとすると怒られるし…。具体的な解決法があれば教えていただけないでしょうか?
218:デフォルトの名無しさん
15/12/13 18:39:41.21 +vfdgVrV.net
通常はThreading.TimerとBeginInvokeを使いますね
219:デフォルトの名無しさん
15/12/13 19:02:55.61 7+L9FXPQ.net
初心者じゃないならawait使った方が楽です
220:デフォルトの名無しさん
15/12/13 19:20:44.74 yq3eT/D1.net
>>211
この手の馬鹿に答えること自体が迷惑だということが分からないのなら2ch止めるべきだな。
お前だけ意見が浮いているのは、お前が回答したことがないクレクレ君だからだよ。
ID:jSlwiwGB も死ね。(= ID:Wcw8JgGx かもしれんが)
お前は答えることが義務だと勘違いしている馬鹿か、そういうことにしたいアフィモドキだと思うが、
お前らteratailから来てるキチガイなの?マジで最近多いんだけど。他スレでも。
221:デフォルトの名無しさん
15/12/13 19:28:09.17 Z/gGXySu.net
お前も落ち着け。
>>215
初心者なら、タイマーイベントで、要求投げる、受ける、表示をやってみればいいんじゃね。
投げる→受けるの時間が長いと画面が固まる(時間が長くなる)けれど。
最近なら Task とか使うんだっけ?
222:デフォルトの名無しさん
15/12/13 20:03:41.07 l4YWW2h+.net
>>220
2ch脳全開だな。
しかし、こういう馬鹿の「この俺様が答えてやるのだからお前は俺様に礼儀を尽くせ」って
思考回路って何様のつもりかね。
馬鹿じゃないの。
誰もお前に回答して下さい、なんて頼んでねえだろ馬鹿。
テメエがテメエの欲求を満たすために頼まれもしないのにテメエの意思で書いてるに過ぎないのに
それを忘れて自分が開いてに対して何かを要求する権利を持ってるかのように錯覚する>>220みたいな
エゴイストって馬鹿だと思うし理解できんわ。
223:デフォルトの名無しさん
15/12/13 20:06:05.15 1MCMp/1v.net
webformで、
例えばlistviewやgridviewを使ってtableを作ったとして、javascriptでtableエレメントに行追加等の操作しても
それをサーバ側で拾う方法って無いですよね?
行追加自体をサーバ側でやって、レンダリングするしか無いですかね。
逆に.net MVCだとバインディングはname属性の規則性でバインドされるんで
name属性を指定して、javascriptで追加してあげれば、コントローラーで取得できるんですかね
224:デフォルトの名無しさん
15/12/13 20:15:10.40 RL8ekZoR.net
>>217
Rx勉強しろ
とっかかりはむずいけど慣れたら超便利
225:デフォルトの名無しさん
15/12/13 20:31:31.33 yq3eT/D1.net
>>222
理解できなくていい。ただお前は去るべきだ。
2chが嫌いで他サイトが好きなのなら、他サイトで質問するべきだ。
2chで質問している以上、2ch流の対応をされても文句を言える筋はない。
そしてお前自身2chが嫌いなようだから、お前は2chを止めるべきだ。
226:デフォルトの名無しさん
15/12/13 20:37:38.58 l4YWW2h+.net
>>225
よく分からん独りよがりの理屈。
>>225みたいな奴っていかにも今時の一人っ子のわがまま坊主って感じ。
ゆとり?
それお前のことだろ馬鹿。
227:デフォルトの名無しさん
15/12/13 20:43:58.56 +vfdgVrV.net
Rxとかいう失敗作
228:デフォルトの名無しさん
15/12/13 20:48:09.66 l4YWW2h+.net
しかし、お前は自分が何か特権を持ってると錯覚してるぞと言ってるそばから
>>225みたいな勘違いした特権意識丸出しのレスができるって病膏肓に入る馬鹿ってこういうのを言うんだね。
229:デフォルトの名無しさん
15/12/13 20:50:08.86 cRCiNpbO.net
あちゃあ…
自己解決したのに解決した方法も書かずに去るというコンボまで決めちまったのか
マジで恥を知れって
230:デフォルトの名無しさん
15/12/13 22:01:20.19 CAQs6xCh.net
>>222
> この俺様が答えてやるのだからお前は俺様に礼儀を尽くせ」
横からすまん
何か知らんがこの場合は回答者と質問者の関係だろ?
だったら質問者は回答者に敬意払っていいんじゃないの?w
乞食が偉そうにしても何ももらえないぞw
231:デフォルトの名無しさん
15/12/13 22:47:07.40 yq3eT/D1.net
発狂具合からして、本人としかw
ちなみに、他スレを見てないと気づかないと思うが、正直言ってC#のスレはかなりマトモだ。
だからこの手のキチガイ逆ギレクレクレ君は今後とも来る。気を付けた方がいい。
以下参考。最近おかしな奴が急に増えた。居着かれても困るだろ。
【JavaScript】1から10まで足せません
スレリンク(hp板:883-888番)
【JavaScript】if文は難しくて書けません
スレリンク(hp板:162-169番)
【Java】キャストできません
スレリンク(tech板:458-460番)
【Java】エラーが取れません
スレリンク(tech板:489-493番)
232:デフォルトの名無しさん
15/12/13 22:55:20.15 S5USnmm8.net
pythonとapiにもここのところ妙なの湧いてんだよな
何だろう一体
233:デフォルトの名無しさん
15/12/13 23:47:03.54 yq3eT/D1.net
APIのキチガイ、驚きのハイレベラーだった、、、
> 私は、このスレ民が誰も持ってないVS2015を購入する財力があるんですよ?
> 再三に渡り申し上げていますように、私のコードにはバグが入り込む余地など皆無ですから
スレリンク(tech板:765番)
状況からして、組織的に2chスレを毀損しに来ているとしか思えない。
冬休みに見せかけたひろゆき流というか。
おそらくム板を潰して住民の移動を促したいのだろう。
で、以前teratailの名前を出したら状況が変わった気がしたから、今回も試してみたw
しかし夏休みでもここまで酷くならないのに、(というか夏休みでも大して変わらないのに)
やりすぎでバレバレだろ。
どこか他にム板潰して得する連中っている?
234:デフォルトの名無しさん
15/12/13 23:48:47.66 l4YWW2h+.net
>>230
質問者が回答者に謝意(敬意wは大げさ)を表すのは人として当たり前だと俺も思うが、
自分で答えたくて答えてるにすぎないことを忘れて回答者が謝礼を当然視したり、
>>210みたいに相手に自分の価値観を一方的に押し付けるのは
不遜で勘違いも甚だしいって言ってるんだよ。
神戸でも福島でも誰に頼まれるでもなく自分で好き好んで出かけて行っておいて、
見返りを求めたり被災者のための救援物資を飲み食いする勘違いしたボランティアがいたそうだけど、
そういう馬鹿と同類だな>>210みたいのは。
235:デフォルトの名無しさん
15/12/14 01:11:01.67 nsHRL9eA.net
ものすげえめんどい流れ既に感じるんで全部は答えないよ
> 質問者が回答者に謝意(敬意wは大げさ)を表すのは人として当たり前だと俺も思う
人として当たり前なんて思わない
そんな道徳を押し付けようとしてるんじゃない
そーじゃない
みんなが言っているのはね
君にとっては義務じゃなくて権利だ
こうすればこうしてもらえるよ、というだけ
そうしなければ?
おそらく今後は単に無視され続けるだろう
236:デフォルトの名無しさん
15/12/14 01:15:56.28 nsHRL9eA.net
いや、今読むと>>210さんは「義務。筋。死ね」っていう言葉を使っているねw
だから>>235の「みんなが言ってるのは」部分は取り下げるわ
個人的な感想とだけにしとく
237:デフォルトの名無しさん
15/12/14 01:17:17.95 8e/RtXYS.net
C#の話なんですが
arrayとArrayList型とList型と、
HashtableクラスとDictionaryクラスと
なんで似たようなのがこんなにいっぱいあるんでしょうか
調べた限りでは、
array: 要素数変更の際には再定義してまるごとコピーし無くてはならない。×
ArrayList: 非ジェネリッククラスなので使うべきではない×
List: おすすめ○
Hashtable: 非ジェネリッククラスなので~×
Dictionary: おすすめ○
こんな認識なんですが
例えばarrayが活躍するような状況ってあるんでしょうか。
単にレガシーなだけですか?
238:デフォルトの名無しさん
15/12/14 01:39:56.06 18/fwc/d.net
>>237
ArrayListやHashtableはレガシー。
arrayはC#の配列の基本クラス。
239:デフォルトの名無しさん
15/12/14 01:41:29.03 XssrJ5Dg.net
215-217です。
様々なアドバイス有難うございます。要求コマンドは相手先の返答が変わる可能性を考えて1秒ごとにポーリングする形を取りたいと思っています。
240:デフォルトの名無しさん
15/12/14 01:42:28.38 yG0ytcqD.net
>>237
ジェネリック版が存在する型の非ジェネリック版はレガシーだから使う必要なし
arrayはいわゆる[]で定義する配列のこと?
だったら要素数が固定でコレクション型に存在するメソッド(挿入とか)を使う必要がなければ
簡潔だし速いからまだま使うでしょう。
座標とかの添字アクセスが必要な場合は配列のほうが見やすい
3次元配列でList<List<List>>とかしたくない。
あと今のところListの内部実装は配列だったはず
241:デフォルトの名無しさん
15/12/14 01:43:40.41 8e/RtXYS.net
>>238
arrayはListのベースクラスになっている感じでしょうか。
ともあれ○つけたので間違いないということで安心しました
ありがとうございます!
242:デフォルトの名無しさん
15/12/14 01:44:56.55 XssrJ5Dg.net
そこで開始ボタンを押したというイベントで、無限ループのポーリング要求状態を維持。ボタン操作は固まらせずに停止ボタンイベントでループ脱出としたいです。
243:デフォルトの名無しさん
15/12/14 01:47:01.19 8e/RtXYS.net
>>240
なるほど…
enum使いようなものにはarrayの方があっているという感じでしょうか。
ありがとうございます!
244:デフォルトの名無しさん
15/12/14 01:48:32.61 XssrJ5Dg.net
threadやtask、invoke、delegateなどを徹底的に調べたのですが無限ループを片タスクに任せつつ、返答が変わったらすぐに表示部に反映というのが実現できません。
245:デフォルトの名無しさん
15/12/14 01:50:09.83 XssrJ5Dg.net
開始ボタンイベントの中に無限ループがある状態です。具体的な書き方をご教授くださいm(_ _)m
246:デフォルトの名無しさん
15/12/14 01:55:50.98 yG0ytcqD.net
まず自分が書いたコードを出しなさいよ。
質問の直後に218さんがBeginInvokeのヒントをくれてるのになにが徹底的に調べただ
247:デフォルトの名無しさん
15/12/14 01:58:37.94 pR0q+hJa.net
掛け算などを徹底的に調べたのですが
6*7が分かりません
具体的な正解をご教授くださいm(_ _)m
248:デフォルトの名無しさん
15/12/14 02:02:17.35 18/fwc/d.net
>>243
予め配列の長さが固定で分かってる単純な配列の場合はarray(int[]とか)。
後からデータを足すとか、長さが不定の場合はList<>。
249:デフォルトの名無しさん
15/12/14 02:04:34.11 30h96I3U.net
>>245
ここはチャットじゃないんだから書き込みもうちょっとまとめような
250:デフォルトの名無しさん
15/12/14 03:21:55.90 ccU2pCxg.net
変なのが湧いてるなあ全く
251:デフォルトの名無しさん
15/12/14 05:49:23.31 V5qe/+59.net
>>217
深く考えず
・async/await
・dispacherメソッド定型呼び出し
・astask
・非asyncからasyncやtaskなどをawait呼び出ししない
・同様にtask.waitなどしない。async/awaitで強引に並列処理を実装しようとしない
・コンソールアプリとGUIではawaitの挙動が違う(語弊あり)
・むしろ全部非同期にする
を守ってasync/awaitすれば、優しい世界が待ってるよ。
こいつらの動作原理を知識0から真面目に知ろうとするとガチでで20時間ぐらいかかるから、あまり深く考えなくて良い
252:デフォルトの名無しさん
15/12/14 22:10:44.05 daRnSbpo.net
public readonly static string FieldName =
253:デフォルトの名無しさん
15/12/14 22:12:44.43 daRnSbpo.net
public readonly static string FieldName = " ssss" ;
と
public static string PropertyName {get;} = " ssss" ;
の挙動上の違いがわかりません
上がフィールドで下がプロパティ以外であること以外の違いについて教えて下さい
254:デフォルトの名無しさん
15/12/14 22:29:03.79 AA+Gl2Rs.net
>>253
フィールドとプロパティの違いに起因する挙動の違いとしか言いようがない
中でリフレクションを使っていて、プロパティじゃないと反応してくれないライブラリはよくある
255:デフォルトの名無しさん
15/12/14 22:34:44.70 daRnSbpo.net
>>254
なるほど
有難うございます
256:デフォルトの名無しさん
15/12/14 22:42:53.30 XssrJ5Dg.net
説教くさいやつなんなの
答える気ないなら書き込むなよな
257:デフォルトの名無しさん
15/12/14 22:54:55.73 1ewiA+as.net
>>253
CLS準拠してるかしてないか
258:デフォルトの名無しさん
15/12/14 23:00:14.32 dPco7zPj.net
>>257
文盲は去れ
259:デフォルトの名無しさん
15/12/14 23:03:21.08 4hBSCyDp.net
先日のキチガイ ID:Wcw8JgGx = ID:jSlwiwGB = ID:l4YWW2h+
本日のキチガイ ID:ATkL4mrR = ID:XssrJ5Dg
260:デフォルトの名無しさん
15/12/14 23:11:35.90 30h96I3U.net
説教のつもりはなかったんだが…気を悪くしたならすまんかった
261:デフォルトの名無しさん
15/12/14 23:33:34.30 +VeChPZq.net
↓ID変え忘れちゃったのかな?w キミは回答者にリスペクトなさ杉だょ
256 :デフォルトの名無しさん:2015/12/14(月) 22:42:53.30 ID:XssrJ5Dg
説教くさいやつなんなの
答える気ないなら書き込むなよな
262:デフォルトの名無しさん
15/12/14 23:51:17.16 ccU2pCxg.net
頭の方も少しは進歩させてくださいよォーーーーッ
263:デフォルトの名無しさん
15/12/15 10:33:52.75 DB3m4Koh.net
ちゃんと話を聞いてまとめれば答える気になる奴も少しは出てくるだろうにな
今は「知ってるが、お前の態度が気に入らない」の心境だよなみんなw
264:デフォルトの名無しさん
15/12/15 12:04:31.56 sIyUSg96.net
可愛い女の子が言ってるなら許す
265:デフォルトの名無しさん
15/12/16 12:01:18.73 yfneKelH.net
どっぷりVBだったのですが、もともとC++が書けるのでC#を勉強し始めました。
んで、さっそく超初歩的なところで恐縮なのですが・・・
フォームにボタンを置いて、Clickイベントの中身を書こうと言うとき
VBだったら、コードウィンドウの最上段の左コンボでボタンオブジェクトを選択し
右コンボでイベント名を選択すると、勝手にスケルトンが作られました。
C#のとき、どうしたらスケルトンが出来ますか?
フォームデザインのプロパティのイベントで、イベント名をダブルクリックする以外に
コードウィンドウでラクチンにイベント書きたいのですが。
266:デフォルトの名無しさん
15/12/16 12:19:16.73 St9ccaht.net
>>265
無理
どうしてもエディタでやりたいならコンストラクタで
button.Click += [Tab] と入力する
267:デフォルトの名無しさん
15/12/16 13:05:18.33 15RxssU8.net
デザイナでフォームにボタンを置いたならダブルクリックの方が早いし
コードでボタンを追加したならそのまま.Click +=って入れた方が早いし
なので一々ドロップダウンから云々ってのの便利さが分からない
268:デフォルトの名無しさん
15/12/16 14:06:44.43 yfneKelH.net
デザイナに移りたくないし
コンボの中でイベント一覧が見れて便利なんだが・・・
(確かにオブジェクト名の次にドットを打てば出てくるが、メソッドやプロパティもごっちゃだし)
なんとなくVBよりもコードが冗長になるのは、明確化との引き替えなのかなぁ
メソッドであるのかプロパティであるのか意識しないといけないのは面倒だなぁ
→ 末の () が必要かどうかはオブジェクトの素性を知らないと分からない
int i;
<中略>
if(!i) ~ も通用しないんだな、boolでないと叱られて。C++の派生のくせに
あと DataGridView の Cell 型の Value のように、オブジェクト型で出てくるのも
ラフに比較できなくて不便だな。== は叱られるし、かといって equals 使うと型判定が厳密すぎるし
269:デフォルトの名無しさん
15/12/16 14:09:30.44 yEzHguVk.net
>なんとなくVBよりもコードが冗長になる
はっはっは
お冗談がお上手だ
270:デフォルトの名無しさん
15/12/16 14:37:57.82 a0Y6Pfc6.net
>>269
そこは本当。
VBにはHandles付の変数ってのがある。
そのくせイベントやデリゲートに+=、-=が定義されてなかったりして何がしたいんだかよく分からんけど。
271:デフォルトの名無しさん
15/12/16 14:47:37.27 a0Y6Pfc6.net
間違えたHandlesじゃなくてWithEventsだw
272:デフォルトの名無しさん
15/12/16 15:31:29.96 usEKDPLn.net
デザイナに移りたく無かったら、全部自分で記述すれば良いだけかと
インテリセンスで出てくるし
273:デフォルトの名無しさん
15/12/16 15:42:17.51 yfneKelH.net
VBだと
Dim c As New MyClass
と出来るところ、C#だと
MyClass c = new MyClass();
と「MyClass」を二度もタイプしないといけないの?
あと、「(」が物凄いネストになりやすいな
キャストした結果のメソッドを使いたいときは、キャストの外側を () で括らないといけないあたりも微妙に不便
(VBのCtypeのほうがマシな気も)
if の{} は C++ 同様に相変わらず省略可で、一瞬ヒヤっとしたり
274:デフォルトの名無しさん
15/12/16 15:44:16.48 yfneKelH.net
>>270
AddHandler だね、VBでは。
いちいち += しないといけないのも微妙に不便だし
いったん書いたイベントコードを削除するとき、 += の部分もセットで手で消さないといけない。
フォーム側でイベント作ったときは、+= があっち側のコードにあるし
275:デフォルトの名無しさん
15/12/16 15:52:22.24 s50ZsdUA.net
>>273
new入れたら候補出るだろ
嫌ならvar使え
276:デフォルトの名無しさん
15/12/16 17:53:38.00 ++aKhWi5.net
C#6.0 が出てることを今知った
プロパティ周りが改善されてるっぽくて期待
あとはメモリ管理(特に Bitmap のリソースリーク(?))と
64bit 版でポトペタできるようになることと
CLI 上で動くスクリプト言語が充実してくれればいうことはない
どうでもいいけど C++ と簡単に連携できるスクリプト言語を教えておくれ
正規表現/文字列処理とかファイル処理がちょっとしんどい
かと言って python や ruby だとちょっと規模が大きい
scheme 系はそれそのもので使うのはいいけど
組み込みだとシンタックスが違いすぎて違和感がある
277:276
15/12/16 17:56:57.27 ++aKhWi5.net
あばばスレ違いだった
>>276 の下半分は無視してください
278:デフォルトの名無しさん
15/12/16 17:57:57.55 Aaq31spz.net
C#はマルチロールな言語だから、特定のフレームワークやIDEに強く依存するような機能は控えられてるんだよ
今や主力は完全にASP.NETに移ってるし
279:デフォルトの名無しさん
15/12/16 21:27:02.80 B4+Sd+fc.net
嫌ならVB使えよ
いや、ドカタそんな権限は無かったな
失礼した
280:デフォルトの名無しさん
15/12/16 21:31:06.49 sgXyEvFI.net
>>273
ただの慣れと知識不足だな
素早く書きたければReSharperでもいれとけ
281:デフォルトの名無しさん
15/12/16 21:48:22.50 6hxUKU2I.net
WithEvents Handlesはいいよね
C#にも同等の構文を導入すべきだ
282:デフォルトの名無しさん
15/12/16 22:07:18.91 yEzHguVk.net
つーかVBってそれだけだよな
283:デフォルトの名無しさん
15/12/16 22:15:49.12 D+5z8iwV.net
職場で皆VS使っているはずなのにvarは好ましくないと言われるんだが、テキストエディタからでも見ているんだろうか
284:デフォルトの名無しさん
15/12/16 22:46:15.22 GLEYjupT.net
運悪くjavaやってるけどvar使えないのがストレス溜まる
Handlesは参照検索に引っかからないのがちょっと不便
285:デフォルトの名無しさん
15/12/17 01:20:42.25 uAOfrDRi.net
Handelsはオブジェクト名変更のリファクタかけたときにメソッド名が追従しないからめんどい
286:デフォルトの名無しさん
15/12/17 08:19:30.62 wWt+W3PI.net
>>283
IT業界では開発の現場は最先端のプラクティスから10~15年遅れるって研究がどっかにあった
varが推奨されだしてから何年たったかな
そのうち普及するでしょ
287:デフォルトの名無しさん
15/12/17 08:20:16.53 zuQvdIGp.net
eclipseが使いにく過ぎ
インテリセンスうんこ
288:デフォルトの名無しさん
15/12/17 08:36:44.13 IGH7+3HM.net
>>281
With ~ End With も VB便利
289:デフォルトの名無しさん
15/12/17 09:12:26.24 wazgEvjt.net
varは使ってみると合理的だよね
そもそも型の確認は、宣言見るか右の式見て確認するかなんだから、宣言も右見て確認するのは違和感ないし。
現場で使える自分は幸運か
290:デフォルトの名無しさん
15/12/17 09:44:23.39 RxywOKqd.net
宣言システムやめてほしい
コード上じゃなく、プロパティで設定させればいいだろ
291:デフォルトの名無しさん
15/12/17 10:08:20.34 1RX3gDoP.net
C# 風の文法で native binary を吐くらしい Vala がちょっと気になる
使ってみた人いる?
292:デフォルトの名無しさん
15/12/17 11:18:29.88 YaXbQbPq.net
Goでいいだろそんなもん
293:デフォルトの名無しさん
15/12/17 12:12:58.46 VaFnwyV1.net
>>288
それはないわ
294:デフォルトの名無しさん
15/12/17 23:00:07.56 uAOfrDRi.net
>>288
Withはコードを横長にしたくないときに
一時オブジェクト作らないで出来るからほかの言語にも入れてほしい
295:デフォルトの名無しさん
15/12/17 23:44:00.53 nE3SkfcG.net
withは検討の結果「要望が少ない」ということで却下された経緯がある
つまりお前はマイノリティ
296:デフォルトの名無しさん
15/12/17 23:45:34.55 wKzIyU7U.net
まるでマイノリティが悪いみたいな物言いだな
297:デフォルトの名無しさん
15/12/17 23:48:28.58 dKLnlHXg.net
C++からの流れではあるが、際限なく長い名前が良しとされていたからな
あのノリは未だについていけない
298:デフォルトの名無しさん
15/12/17 23:49:49.06 S8YW+Ehf.net
略しまくったのよりは、意味が分かる名前のがいいなぁ
あとはセンスっていういやーな言葉になるが
299:デフォルトの名無しさん
15/12/17 23:51:46.87 i1r3U0+U.net
>>297
つってもメジャーなスクリプト言語にもwithなんか無いからな
JavaScriptにはあるけど完全に黒歴史扱いでほとんど使われてないし
300:デフォルトの名無しさん
15/12/17 23:55:41.04 8YX8F0Hj.net
ブロックで囲むのめんどいから
withはインテントで頼む
301:デフォルトの名無しさん
15/12/18 00:17:25.15 GSoM/4PI.net
>>297
> C++からの流れではあるが、際限なく長い名前が良しとされていたからな
なのにimportしまくって、どのオブジェクトの派生なのか分からなくなるんだよな
302:デフォルトの名無しさん
15/12/18 07:49:51.32 Pn8g8BvN.net
コンテキストを理解してればそんな長い名前にならないよ
303:デフォルトの名無しさん
15/12/18 09:42:03.30 sT9ZaHDR.net
馬鹿は一つ覚えで限度を知らないからな
304:デフォルトの名無しさん
15/12/18 19:43:35.84 aPFZSVCF.net
MVCの勉強してから
WebFormやると、コントロールのvisibleやenableみたいなプロパティを一つ一つ弄るのが面倒で
なるべくもModelをバインドするような作りにしようとしてますが、後々まずくなったりしますかね?
305:デフォルトの名無しさん
15/12/18 22:09:04.97 gk961EIG.net
先生、質問がございます。
小粒なクラスを200万個近くインスタンス化するシチュエーションで途中でgc.collectが走ってしまい400msほどビクンビクンしてしまうんですが、俺がいいと言うまでgcするな命令みたいなものってあります?
306:デフォルトの名無しさん
15/12/18 22:19:36.70 4VAnTop2.net
先にやっとくとか。
それでもなるのはしょうがないかも
307:デフォルトの名無しさん
15/12/18 22:30:19.05 gk961EIG.net
ありがとうございます。先に作ってインスタンスをプールしとく感じですか。
試してみます!
308:デフォルトの名無しさん
15/12/18 22:37:13.38 bT2qV2qZ.net
光る砂漠でロール~
309:デフォルトの名無しさん
15/12/18 23:16:54.63 XVLPEWds.net
プログラマはMacを使ってるってマジ?
スレリンク(news板)
310:デフォルトの名無しさん
15/12/18 23:19:27.65 bkeqB6RS.net
今の現場がMacだわ
最初は勘弁してくれと思ってたけど、慣れると割と使いやすい
まあWindowsも使いやすいけど
Macが特別使いにくいってことはなかった
311:デフォルトの名無しさん
15/12/19 00:20:11.15 y4ZISOlF.net
マルチポストにマジレスするカス
312:デフォルトの名無しさん
15/12/19 00:27:23.99 xp+k7OcH.net
× マルチポスト
○ コピペマン
313:デフォルトの名無しさん
15/12/21 16:49:42.01 kS2EmNXf.net
程よい規模のMVCのサンプルプロジェクトなにかありませんかね?
実際に自分で作ってると
複雑なモデルのバインドパターンとか色々でてきて、ネットにもあまり載ってないパターンもでてくるので...
314:デフォルトの名無しさん
15/12/21 16:55:44.27 U3hF6CjN.net
>>313
RailsのOSSプロジェクトとか読めばいい
315:デフォルトの名無しさん
15/12/21 19:38:07.95 N+jvPVY9.net
>>314
それはasp.net MVCですか?
MVCのアーキテクチャを勉強したいのではなくて、asp.net MVでつくられたシステムが見たいです。
サンプルに出てるのって、本当に単純なCRUDシステムしかなくて、困ってます
316:デフォルトの名無しさん
15/12/21 19:58:44.97 xw4vh+oL.net
わかったわかった
そのくせえ頭ごと腐り落ちて死ね
317:デフォルトの名無しさん
15/12/21 20:36:13.74 kS2EmNXf.net
>>316
チンパンジーはお呼びでない
318:デフォルトの名無しさん
15/12/21 21:05:31.92 bPnNcr23.net
>>315
いや、Webってマジでそれだけなんだよ
パラメータを元にDBへクエリ投げる→結果が返ってくる→結果を元に画面を作る
終わり
大きなシステムはただ単に画面の数やクエリの数が多いだけ
319:デフォルトの名無しさん
15/12/21 21:07:13.47 gVgBUI5g.net
何言ってんだこいつ
320:デフォルトの名無しさん
15/12/21 21:29:26.05 XlnWv6G/.net
ストレートに言えば「失せろ」だろ
321:デフォルトの名無しさん
15/12/21 21:35:04.56 U3hF6CjN.net
初心者はフレームワークに惑わされがちだけど、Webってマジで>>318で全てなんだよな
ORMだのバインディングだのというのはユーティリティに過ぎない
そこを理解してないなら最初はNode.jsみたいなシンプルなのから入ったほうがいい
322:デフォルトの名無しさん
15/12/21 21:56:36.37 kS2EmNXf.net
name属性使ってバインディングされるとか、.NETMVC特有のものじゃん
複雑なモデル構造のリストとかになると、TextForでなくTextBoxヘルパー使ってname属性にlist[0].のような文字列付けたりとか
そういうフレームワーク独自のものが色々あるでしょう
323:デフォルトの名無しさん
15/12/21 22:08:30.44 kS2EmNXf.net
>>318
その、パラメーターを受け取るって一言で片付けてるけど
.net MVCなら
viewbagやtempdataやmodelがありますよね?
modelだって複雑な場合はカスタムバインダー使わないといけないし
324:デフォルトの名無しさん
15/12/21 22:08:34.68 AKR6rQ1b.net
HTTPはTCP上の、TCPはIPの上のプロトコルに過ぎない、からといって
IPだけ理解してりゃいいってわけじゃないわな。
325:デフォルトの名無しさん
15/12/21 22:20:56.47 kS2EmNXf.net
>>321
webの仕組みが単純なのを分かってるからって.net MVCが分かるというわけにはならないでしょ?
webの仕組みを包み込んで、関心ごとの分離やテスタビリティを高めるためにフレームワークを使うのであって
そのフレームワーク自体のことを学ぶためには、本読んだり実際のコードを沢山読むじゃん。
MVCの概念を学ぶなら他のフレームワークでもいいけど、その先は独自のフレームワーク学ぶしかないでしょ。
326:デフォルトの名無しさん
15/12/21 22:21:29.08 LGmH8Vm3.net
ViewBag=低能の証
327:デフォルトの名無しさん
15/12/21 22:33:39.02 u9+EAVY3.net
>>325
MVC固有のことはこっちで訊いた方が良いのでは。
ASP.NET MVC
スレリンク(php板)
328:デフォルトの名無しさん
15/12/21 23:30:21.24 v4VU6uUx.net
何ですか?厄介払いしようってんですか?
329:デフォルトの名無しさん
15/12/22 01:57:02.79 PrFisxRg.net
ここより適した場所があるってだけ。
若干スレ違いなここで訊いてもまともな返答は期待できないよ。
330:デフォルトの名無しさん
15/12/22 02:05:42.41 EpD71riO.net
private void timer1_Tick(object sender, EventArgs e)
{
i++;
string url = "URLリンク(tamae.2ch.net)
System.Net.WebClient wc = new System.Net.WebClient();
wc.Headers.Add("Accept", "text/html, application/xhtml+xml");
wc.Headers.Add("Referer", "スレリンク(ana板)");
wc.Headers.Add("Accept-Language", "ja-JP");
wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
wc.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko");
wc.Headers.Add("Accept-Encoding", "gzip, deflate");
wc.Headers.Add("Host", "tamae.2ch.net");
wc.Headers.Add("Pragma", "no-cache");
wc.Headers.Add("Cookie", "NAME=\"\"; MAIL=\"\"; __cfduid=000217b92175216f95382b146abc764221450557291; yuki=akari; PREN=%83%89%83C%83u%81E%83A%83i%81%5b%83L%81%5b%82%b3%82%f1");
//NameValueCollectionの作成
System.Collections.Specialized.NameValueCollection ps = new System.Collections.Specialized.NameValueCollection();
//送信するデータ(フィールド名と値の組み合わせ)を追加
ps.Add("submit", "a");
ps.Add("MESSAGE", System.Web.Security.Membership.GeneratePassword(128, 0));
ps.Add("bbs", "ana");
ps.Add("key", "1450521890");
ps.Add("submit", "a");
ps.Add("mail", "age");
ps.Add("time", "1450616060");
//データを送信し、また受信する
byte[] resData = wc.UploadValues(url, ps);
wc.Dispose();
//受信したデータを表示する
string resText = System.Text.Encoding.GetEncoding("Shift-JIS").GetString(resData);
Console.WriteLine(resText);
}
331:デフォルトの名無しさん
15/12/22 02:07:07.58 EpD71riO.net
↑これで2chに書き込めるんだけど
レスポンスをコマンドラインに表示したいけど?とか・とかにしかならないんですけどなぜですか?
332:デフォルトの名無しさん
15/12/22 04:36:56.37 U2GagDf5.net
WebはUTF-8で、コマンドラインはShift-jis系のCP932
333:デフォルトの名無しさん
15/12/22 04:46:34.78 EpD71riO.net
>>332
string resText = System.Text.Encoding.GetEncoding("Shift-JIS").GetString(resData);
とところでconvertですか?
334:デフォルトの名無しさん
15/12/23 01:35:40.37 mLLLpett.net
最近 Visual Studio Standard Collector Service とかいうサービスプロセスが馬鹿みたいにメモリー浪費してくれるんだけど
何か変なアップデートあったっけ?
これ、何をしてるんだろうな
335:デフォルトの名無しさん
15/12/23 11:18:14.36 Ouk9W9pK.net
>>334
ツール - オプション - デバッグ - 全般 の下の方にある
「デバッグ中に診断ツールを有効にします」のチェックの有無が影響するみたい。
診断ツールが何だかは知らない
336:デフォルトの名無しさん
15/12/23 11:19:46.70 Ouk9W9pK.net
まあでもデバッグ走らせると出るCPUのグラフとかじゃないかな
337:デフォルトの名無しさん
15/12/23 11:41:52.67 JaeaaX8T.net
デバッグビルドしたのにデバッガで変数ウォッチできない事が時々あるんだけど何故なの
最適化はされてないしデバッグ情報はフルで付いてる
もちろんソースコードはビルドに使用したものと同じファイル
338:デフォルトの名無しさん
15/12/23 11:44:18.71 uP6j/Iq7.net
匿名ラムダの中だったりするんだろ
339:デフォルトの名無しさん
15/12/23 11:45:17.66 sUZCBNnf.net
お前が変数の中身を知らないとデバッグできないように、
俺たちはお前のコードやプロジェクトの設定を知らないと何も解決できない
340:デフォルトの名無しさん
15/12/23 11:47:29.06 DcpaLEXp.net
メインフォームとは別に定期的に関数を実行をさせたい場合、
各種TimerやBackgoundworkerより、Taskとasynk/awaitがいいのかな?
341:デフォルトの名無しさん
15/12/23 12:43:20.12 9lRKIrWz.net
スレタイのC#のパターン対策ww
342:デフォルトの名無しさん
15/12/23 12:47:01.78 ZolTmMoK.net
>>340
System.Timers.Timerでいいよ
Taskは単発の処理に使うもので、Task使うならタイマから毎回起動させるのが筋
343:デフォルトの名無しさん
15/12/23 13:01:08.67 ZZxQfTix.net
>>342
TaskCreationOptions.LongRunningってのもあるし、単発処理に限らないのでは。
このオプション指定するとスレッドプールとは別の専用スレッドが作成されるから、別スレッドを作ってるのと同じ。
344:デフォルトの名無しさん
15/12/23 13:39:15.27 ZZxQfTix.net
>>305
.Net4.6からの機能だけど、GC.TryStartNoGCRegionとEndNoGCRegionは使えないかな
345:デフォルトの名無しさん
15/12/23 14:00:39.69 DcpaLEXp.net
>>342
ありがとうございます
System.Timers.Timerでキッチリ回して、
その中からTaskを使って別スレッドで動かすのが安定そうですね
>>343
LongRunningは知らなかったですが、こちらも使いこなせば安定して動きそうですね
勉強して比較してみます
346:デフォルトの名無しさん
15/12/23 17:59:55.08 +gIeTCQg.net
システムで使うメッセージを外部リソースで管理するとして
メッセージを管理するMessageクラスはstaticで、インスタンス生成の時に外部リソースからメッセージリストを読み込む
みたいな作りって悪いでしょうか?
347:デフォルトの名無しさん
15/12/23 18:05:10.56 fiBTvI7H.net
C#のstatic classはインスタンス化できないのにインスタンス生成もくそもないだろ
それともstatic constructorのことを指してるか?
348:デフォルトの名無しさん
15/12/23 18:17:23.15 +gIeTCQg.net
>>347
static コンストラクタです。
間違えました
349:デフォルトの名無しさん
15/12/23 18:26:36.74 BrzFNCu8.net
使い終わった後もずっとプロセスに居座ってメモリやシステムリソースを圧迫するからリソースをstaticにはしない