ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2015/11/23(月) 00:54:33.10ID:d/p1Vajd他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1443786608/
■関連スレ
C#, C♯, C#相談室 Part89 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1443271409/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
0002デフォルトの名無しさん
2015/11/23(月) 12:09:09.65ID:blqHyLLr0003デフォルトの名無しさん
2015/11/23(月) 12:15:55.82ID:/RGpvc/8乙です
今@ITでADO.NET Entity Framework入門っていう記事読んでるけど、むずかしいぜ。
前スレでちょっと出てきたDB関連の話でまったく知らなかったから参考に読んでるだけど
これ仕事ででてきたら果たして使えるようになるのか心配だ・・・今すぐ使うわけじゃないのが救い。
0004デフォルトの名無しさん
2015/11/25(水) 03:47:30.32ID:VpIXdAyb今Windows FormでVSYNC待つだけのためにDxLibを使っています
CPUパワーを食わずに、コードもあまり書かずに簡単にVSYNCだけ待てれば
DxLibに頼らずに済むのですが
2010Expressを使っています
0005デフォルトの名無しさん
2015/11/25(水) 03:52:32.72ID:A+DiyrlMAlt+Tabを押すと使った順に並んだ小窓が出るのでどこかに記録されているのではないかと思っているのですが
探し方が悪いようで見つからないです。
0006デフォルトの名無しさん
2015/11/25(水) 22:40:12.84ID:ZWYoQ/Cr【やりたいこと】
既存のクラスのメソッドの一部の機能を拡張したい。
具体的にはクラス(インターフェイス)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に相当するクラスを自作する。
→技術的にはやってやれないことはないが、時間的には無理。
【質問】
こういうときに有効な対策を教えてください。
0007デフォルトの名無しさん
2015/11/25(水) 22:53:14.22ID:5wB+dJF60008デフォルトの名無しさん
2015/11/25(水) 23:16:59.10ID:jVhYVUAoクラスBを作った人に修正をお願いするしかないんじゃない
0009デフォルトの名無しさん
2015/11/26(木) 10:56:36.07ID:uhVdTG0g各メンバーではAに委譲する
Bがデータを要求するところだけキャンセルならデータ供給を止めるみたいな
0010デフォルトの名無しさん
2015/11/26(木) 12:39:25.48ID:wLo/SUaP面倒くさいから嫌だってw
0011デフォルトの名無しさん
2015/11/26(木) 20:04:37.19ID:cJiE/pnVその集合を返すみたいな処理ってLINQでどう書けばいいんだろ?
1〜5の数字のうち偶数は!をつけて出力みたいな
1 2! 3 4! 5
whereしてからselectすると偶数だけのリストになっちゃうし、selectの中でwhere??
0012デフォルトの名無しさん
2015/11/26(木) 20:39:44.72ID:QqGRNt0Rhttp://ideone.com/PD7B5Z
こんな風に馬鹿正直に書いたら駄目なん?
0013デフォルトの名無しさん
2015/11/26(木) 20:50:40.56ID:XPm6ny2d自分もそういう書き方しか思いつかなかったんですが、もう少しスマートに書けないかなと。
↑であげたのは簡略化した内容ですが、実際には
class Item{
bool Checked;
string KeyWord;
}
このクラスのリスト List<Item> に対して
あるキーワード文字列に一致する場合は、Checkedをtrueにして
そのリスト全体を返す。みたいなことがやりたいんだよね。
0014デフォルトの名無しさん
2015/11/26(木) 20:56:13.07ID:QqGRNt0R条件はFuncで与えるとして
Where()は条件に一致する集合しか返さない
そうではなく結果を{source, bool}みたいな感じでFuncに当てはまるか匿名型で返すような
0015デフォルトの名無しさん
2015/11/26(木) 21:03:24.02ID:sUIZ4Kkhint[] 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 + " ");
0016デフォルトの名無しさん
2015/11/26(木) 21:08:46.61ID:wLo/SUaP0017デフォルトの名無しさん
2015/11/26(木) 21:15:13.31ID:XPm6ny2dやっぱ拡張メソッド定義するしかないんですね。
こういうパターンって結構ありそうな気もするんですが...
0018デフォルトの名無しさん
2015/11/26(木) 21:20:59.72ID:96CZ8S8K0019デフォルトの名無しさん
2015/11/26(木) 21:23:12.42ID:zfiVTGcd.Select((item) => new Item
{
KeyWord = item.KeyWord,
IsChecked = (item.KeyWord == "a")
});
0020デフォルトの名無しさん
2015/11/26(木) 21:27:28.22ID:KfvI2hmZ0021デフォルトの名無しさん
2015/11/26(木) 21:28:06.60ID:nO6kdv8X普通にSelectでやればいいかと思うのだが
0022デフォルトの名無しさん
2015/11/26(木) 21:29:56.77ID:Vv+caMcJ気持ちがわからないんだよな。
>>11と>>13の要望まとめるとこんな感じ?
http://ideone.com/TWOSN4
最後に元の集合返すLINQがこんな感じに作れるけど
http://ideone.com/gYYg48
これでいいじゃんってなる。
0023デフォルトの名無しさん
2015/11/26(木) 21:33:39.93ID:Vv+caMcJ>>22は無しね!
でもそうだとしても>>21でいいじゃんね!
0024デフォルトの名無しさん
2015/11/26(木) 21:41:44.00ID:QqGRNt0R無理にメソッドチェーンをする必要ない気がする
0025デフォルトの名無しさん
2015/11/26(木) 22:40:51.15ID:sUIZ4Kkhstatic 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っぽい雰囲気
002625
2015/11/26(木) 22:52:39.19ID:sUIZ4Kkhint[] 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
匿名型なんてのがあるのか
00276
2015/11/27(金) 00:00:23.02ID:V/UxGV6Oありがとう。
やっぱり 案2 というか has a しかないかな。
でもよく考えたら特定用途にしか使わないことが明確ならインターフェイスの全メソッドを
真面目書く必要もないかも知れないと気がついた。
いやインターフェイスに定義されてるメソッド等の実装はしなきゃならないのは変わらないんだけども。
0028デフォルトの名無しさん
2015/11/27(金) 01:58:20.80ID:iofAV5opInterface IV
Cancel();
Interface IA:IV
V v=objectA;
0029デフォルトの名無しさん
2015/11/28(土) 14:48:27.88ID:dnKF4fhx・具体的にはデータベースの内容をDataGridViewに表示して
編集した内容をデータベースに反映したい
・テキストボックスに検索文字を入力してデータの絞込をしたい
調べたらこういう記事がありました
新グリッド・コントロールの豊富な機能と高い表現力 − @IT
http://www.atmarkit.co.jp/fdotnet/special/win20review02/win20review02_02.html
実際やってみたら、編集可にしているのにセルの値の編集が全く出来ない
(このやり方は表示するだけ?)
それに10年前の記事でとても古い
今だとどういう方法で実現すればいいでしょうか?
0030デフォルトの名無しさん
2015/11/28(土) 16:34:28.63ID:N2qWmI2+SQLiteなら
http://dangoya.jp/?p=116
こんなのとかたくさんあるみたい
0031デフォルトの名無しさん
2015/11/28(土) 17:03:27.66ID:X+9lGRnlそれGUIの設計というより、DBからデータを取得する方法じゃないですか
しかも結果はデバッグ出力だし
全く参考にならない
0032デフォルトの名無しさん
2015/11/28(土) 17:09:40.67ID:N2qWmI2+こんなのだったらいいのか
それにGUIなら
http://c-loft.com/blog/?p=1844
こういう奴とか?いくらでもあるんだが
0033デフォルトの名無しさん
2015/11/28(土) 17:15:59.89ID:CPGEE3Euコピペで要求満たせるサンプル持って来いってんだよ
すべて説明しないと察せないのか?
ガキか素人か?
0034デフォルトの名無しさん
2015/11/28(土) 17:24:52.80ID:N2qWmI2+自分で探せやアホ
0035デフォルトの名無しさん
2015/11/28(土) 17:26:09.88ID:CPGEE3Eu0036デフォルトの名無しさん
2015/11/28(土) 21:57:42.37ID:QbwUMUmL>教えてクレクレ君と言われてもしかないだろうな
初学者としても勉強不足だし
ググレカス以外のの返答は期待できない
0037デフォルトの名無しさん
2015/11/28(土) 23:18:13.48ID:ExUydw0Xてかこういうコントロール系って
サーバ側で取得するとき
全行ループしてFindControllでコントロール取得するんだよね?
MVC勉強してると、こういうの面倒くさいなと思う
0038デフォルトの名無しさん
2015/11/28(土) 23:42:17.02ID:dnKF4fhxまではようやく出来たのですが、いざDataGridViewに表示しようとすると
ソートができない、値の変更ができないなどがあって躓いてしまいました
調べると、データテーブルを使えばコードレスで表示する方法を見つけたのですが
DataGridViewでの変更をデータベースに反映する方法までは乗っておらず
一体どの方法でするのが一番いいのかわからなくなって質問しました
�@SQLite→EF(or dapper)→BindingListView→DataGridView
この方法だとLINQも使えて、値の変更も反映されるようですが
ソートやジェネリックに対応しようとするとBindingListViewや
BindingNavigatorの実装を自前で書かないといけなくて難しい
でもこれが完成するとほとんどFormにコードを書かなくて済むみたい
�ASQLite→TableAdapter→DataTable→データソース→DataGridView
表示するまでは簡単だけど、変更をデータベースに反映するのが大変?
EFやdapperを勉強したのは無駄だった?
比較的簡単なのはこの2つなのかなと思ったのですが
どのやり方が一般的というか簡単というか、そこのところが知りたいです
今後WEBシステムや業務用の顧客管理システムを作る予定は全くありません
ちょっとした自分用の動画や音楽のデータベースを作りたいだけです
0039デフォルトの名無しさん
2015/11/28(土) 23:47:13.87ID:3Q3OpRosEFなんか使わないのがベスト
(EFがターゲットとする)業務システムってとんでもなく複雑なんだぜ
それに比べりゃたかが動画や音楽のDBごときにEFなんか要らん
0040デフォルトの名無しさん
2015/11/28(土) 23:49:15.85ID:kPVc8Yloネットの情報見ながらなら�Aが楽かと
0041デフォルトの名無しさん
2015/11/29(日) 00:05:54.22ID:aZc4OEnQ検索と更新、ソートが画面上からできればいいんでしょ?
0042デフォルトの名無しさん
2015/11/29(日) 00:32:17.14ID:9octMKBLEFを使わない方がいい理由は
三輪車にV6エンジン搭載するような感じですか?
ダメな理由があまり見つからないもので
重いからかな?確かにdapperと比べると遅いですけど
>>40
�Aの場合、DataGridViewの変更がDataTableに反映されて
それをTableAdapterでデータベースにUpdateという感じでよろしいですか?
>>41
マッピングまではやってみました
それをDataGridViewで検索、更新、ソートできるようにする方法が
調べた感じだとBindingSourceの自作しかなさそうだったのですが
他に方法はあるのでしょうか?
レスありがとうございます。それと質問ばかりですみません
一つのことを実現するのに方法が無数にありすぎて混乱してます
0043デフォルトの名無しさん
2015/11/29(日) 10:31:35.90ID:BA+ijUMqList<>とDictionary<>にデータ保持とかの自作のクラスを入れてしまうと
だいたいやりたいことができているんだけど
あえて自分でIEnumerableを扱う利点ってどんなものなの?
0044デフォルトの名無しさん
2015/11/29(日) 10:40:55.72ID:ejXKaOWLなんでもいいから複数の値を引数で受けたいとか返したいとかよくあるだろ?
そういうとき具体的なコレクションの型を指定してしまうと不要な厳しい制限を設けることになってしまう
0045デフォルトの名無しさん
2015/11/29(日) 10:53:25.06ID:7SVdQgBNSystem.Linq.Enumerableの実装見るのが手っ取り早い
0046デフォルトの名無しさん
2015/11/29(日) 12:28:51.61ID:j4qD5yiX0047デフォルトの名無しさん
2015/11/29(日) 12:32:01.69ID:ejXKaOWL遅延リストや無限リストのようなものもList<T>も配列も同じ「要素のシーケンス」として
共通のインターフェースで扱えることに意味がある
0048デフォルトの名無しさん
2015/11/29(日) 12:41:33.12ID:MHU1lz94破棄されたオブジェクトにアクセスできませんとエラーが出るんです
出ないようにするにはどうすればいいでしょうか?
0049デフォルトの名無しさん
2015/11/29(日) 16:15:06.84ID:vuzu98VNcancelとwait
0050デフォルトの名無しさん
2015/11/29(日) 16:32:17.55ID:yHrLnXF5ありがとうございます。
無事に出来ました!!
0051デフォルトの名無しさん
2015/11/29(日) 17:02:57.67ID:sqPcAEkvここまでほとんど自演なんだろうな
0052デフォルトの名無しさん
2015/11/29(日) 18:29:07.30ID:djg7Qs12くだらないことでドヤらないで。
0053デフォルトの名無しさん
2015/11/29(日) 21:49:18.21ID:y4EB3thr>>49
個人的にはこれがすごいと思う
エスパー的な意味で
0054デフォルトの名無しさん
2015/11/29(日) 23:42:04.32ID:X6CLD+vb0055デフォルトの名無しさん
2015/11/30(月) 17:10:07.41ID:wM8ePfaTブラウザの中のフラッシュやHTML5の画面の左上座標ってどうすればとれますか?
画像認識で強引に認識するしかないでしょうか?
0056デフォルトの名無しさん
2015/11/30(月) 17:37:19.12ID:NvF8UIfD0057デフォルトの名無しさん
2015/11/30(月) 17:42:27.07ID:pbgvhCW90058デフォルトの名無しさん
2015/11/30(月) 19:54:38.66ID:wM8ePfaTWindows 7 です
>>57
よくわからなかったので軽く調べてみましたけど
自作のUIがジェットの中にブラウザ表示させるみたいな感じなんでしょうか
そうではなくて chrome や firefox なんかに表示されてる
フラッシュの画面部分だけぴったりスクリーンキャプチャするようなプログラム作りたいんですけど
無理ですかね…
0059デフォルトの名無しさん
2015/11/30(月) 20:07:34.72ID:4TtrR1iM自分で作らなくても、両方とも既にあると思うけど。
0060デフォルトの名無しさん
2015/11/30(月) 20:17:18.03ID:NvF8UIfD0061デフォルトの名無しさん
2015/11/30(月) 23:07:13.04ID:wM8ePfaT1日何枚もとってブログにはったりするので
それを自動できれいにやるようにしたかっただけです
まあ内側のフラッシュのプロセスつかんで
その表示位置取得したりできるかなと思ったんですけど無理なんでしょうか…
あきらめます
回答していただいた方ありがとうございました
0062デフォルトの名無しさん
2015/12/01(火) 02:01:07.71ID:XoX/fDF50063デフォルトの名無しさん
2015/12/01(火) 02:10:57.73ID:fBpqlrz30064デフォルトの名無しさん
2015/12/01(火) 20:17:01.67ID:sAwax9ox>>48です。
closingイベントでcancel要求を出して
それが受けつるまで待機するという意味での
waitだと思いました。
0065デフォルトの名無しさん
2015/12/03(木) 00:33:41.52ID:lhYNgz5S変数aとbがあるとします
aの内容をbから参照する事は出来るでしょうか?
a=1;
//bに対してaを参照できる何らかの処理
print(b);//1
a=5;
print(b);//5
という結果を出したいのですが
0066デフォルトの名無しさん
2015/12/03(木) 01:12:22.92ID:lfpcI0/L0067デフォルトの名無しさん
2015/12/03(木) 02:09:53.61ID:F5OD5ya2レベル高すぎてやりたいことがわかんない
0068デフォルトの名無しさん
2015/12/03(木) 03:29:17.07ID:KH3XuQZQ同じオブジェクトIDを持つ、同一オブジェクト
でも、intのようなprimitive型では、
値(参照ではなく内容)がコピーされるため、
参照のようなことは出来ないかも
(C#にも、Javaのようなprimitive型があればの話だが)
0069デフォルトの名無しさん
2015/12/03(木) 10:58:04.62ID:lhYNgz5Sやっぱり無理なんですか
ありがとうございました
これができないと余分なコードを書かないといけない状況に陥ってたんですが
仕方ありません
0070デフォルトの名無しさん
2015/12/03(木) 12:10:31.86ID:r4QYskO6そんな状況ありえんと思うけどねw
何か思いっきり勘違いしてそう思い込んでるだけだと思う。
あと一応値型でもunsafeでポインタは取れるよ。
0071デフォルトの名無しさん
2015/12/03(木) 12:52:27.54ID:zCQ/Nhg2何をしたいのかよくわからんけど、やりたいことを関数に切り出して、int 変数を参照渡しにすればいいんじゃね?
0072デフォルトの名無しさん
2015/12/03(木) 13:04:34.35ID:IgpEN7lw0073デフォルトの名無しさん
2015/12/03(木) 13:11:21.98ID:zCQ/Nhg2もしくは1要素の配列にするとか
var a = new int[1];
a[0] = 1;
var b = a;
print(b[0]); //1
a[0] = 5;
print(b[0]); //5
0074デフォルトの名無しさん
2015/12/03(木) 13:18:55.92ID:jUS2N3R70075デフォルトの名無しさん
2015/12/03(木) 14:10:48.22ID:lhYNgz5Sdelegateを使ってなんとか実現できました〜
回答ありがとうございます
0076デフォルトの名無しさん
2015/12/03(木) 20:17:12.68ID:zCQ/Nhg2配列を提案した俺が言うのもなんだが、クラスはなんか負けた気がする…
0077デフォルトの名無しさん
2015/12/03(木) 20:43:19.72ID:/6SEhgDG極限まで行っちゃうとなんらかの値オブジェクトをどこかから取得する事となんらかの値オブジェクトをどこかに転送する事
この2つの連鎖でほぼ全てのシステムが組める
つまりinterface IValue<T> { T Value { get; set; } }はプログラムの全てを抽象化すると言ってよい
0078デフォルトの名無しさん
2015/12/03(木) 20:46:05.45ID:IgpEN7lw0079デフォルトの名無しさん
2015/12/04(金) 05:49:43.54ID:CuO9UgGbどう書いたのかコードみせて!
0080デフォルトの名無しさん
2015/12/04(金) 08:23:18.98ID:UQYmj2IVEF使えないと、SQL自前で組み立て、Dapperでアクセスでやってるんだけど
SQL作る部分を綺麗に書きたい
0081デフォルトの名無しさん
2015/12/04(金) 08:30:25.10ID:N8pVjmap0082デフォルトの名無しさん
2015/12/04(金) 12:05:23.03ID:ciEp6cCKまず俺のやりたい事というのはアドベンチャーゲームのようなものを作っててこういう風にセリフを持ってます
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,"を使った")
と入れると変数をそのまま使えるというわけです
0083デフォルトの名無しさん
2015/12/04(金) 12:28:30.63ID:4FwXmqLX0084デフォルトの名無しさん
2015/12/04(金) 12:36:37.37ID:ciEp6cCKやっぱり他人から見ればそう見えるのかw
自分でもそうなんじゃないかなぁとw
まぁ何度も書いてくうちに効率的な書き方わかるようになるでしょ
0085デフォルトの名無しさん
2015/12/04(金) 12:37:39.48ID:NrPmzULQ0086デフォルトの名無しさん
2015/12/04(金) 12:38:19.14ID:uOiBxvHU全然理解できない。
0087デフォルトの名無しさん
2015/12/04(金) 12:54:34.09ID:ciEp6cCK平たく言うと
まず最初にセリフを配列で持ちたい
そしてそのセリフの中に動的に変数を入れたいということです
0088デフォルトの名無しさん
2015/12/04(金) 12:55:52.79ID:6PuXTYFV0089デフォルトの名無しさん
2015/12/04(金) 13:12:02.93ID:ciEp6cCK>>88
ちょっと俺無知ゆえになにか凄い勘違いをしてたのかもしれません
ちょっとそれ調べて試してみます
上手く行ったら報告します
0090デフォルトの名無しさん
2015/12/04(金) 13:42:05.60ID:uOiBxvHUだとしたら勘違いしてるのは>>85の方。
そこはいいけど、疑問なのは本当に委譲が必用なのそれってところ。
0091デフォルトの名無しさん
2015/12/04(金) 13:44:54.36ID:/QKGOPGQ何も勘違いしてないよ
知識が根本的に足りてないだけ
0092デフォルトの名無しさん
2015/12/04(金) 13:46:59.55ID:ciEp6cCKstring.Formatメソッドというのはstringを作るメソッドなのでセリフを表示する
時に使わないといけないと思います
で、俺のプログラムでは最初にserihu配列を作る時にどの変数を参照するかも決定されるので
配列を作った時とセリフを表示されるまで間があります
その間string.Formatで使う変数の参照を結局は持っておかないといけません
0093デフォルトの名無しさん
2015/12/04(金) 14:00:21.98ID:ciEp6cCK確かにデリゲートを使うのは俺も疑問でした
何しろ変数一個につき余計な関数が一つ増えますし明らかに冗長です
でも他に思い付かなかったんですよ
なんかあるんですかね
0094デフォルトの名無しさん
2015/12/04(金) 14:09:54.37ID:FKEfoH7y>その間string.Formatで使う変数の参照を結局は持っておかないといけません
持ってればいいだろアホか
>>82でpublic Watasi watasi;なんて余計な参照持ってるくせにobjectの参照持つのは気に喰わないのかよ
0095デフォルトの名無しさん
2015/12/04(金) 14:19:31.55ID:ciEp6cCKそれでC#における参照とはなんなのかなぁと思って>>65の質問になったわけです
条件としてはある変数aをある変数bでも利用できるようにしたいというものなんですけど
0096デフォルトの名無しさん
2015/12/04(金) 14:22:04.36ID:FKEfoH7yそれの参照渡せばいいだけだろ
0097デフォルトの名無しさん
2015/12/04(金) 14:29:10.18ID:ciEp6cCKそれだとserihuクラス配列に渡す変数はすべてクラスで包まなければならないと
言う事になりませんか?
実はまだどの変数をセリフに渡すかとかは決めてないんです
恐らくゲームを作っていくうちに増えていくと思います
それで変数をクラスで包むという手法には抵抗がありまして
0098デフォルトの名無しさん
2015/12/04(金) 14:35:53.45ID:FKEfoH7yC#使うのやめろ
0099デフォルトの名無しさん
2015/12/04(金) 14:42:25.47ID:ciEp6cCKみなさん薄々気付いてるかもしれませんが前スレラストでちょっと荒れ気味になった件の
あの者です
俺が来たらどこもああなります
何か人を苛つかせる能力でもあるのでしょうかw
すいません
この件は上手く行ったのでこれはこれでいいです
ありがとうございました
0100デフォルトの名無しさん
2015/12/04(金) 15:13:45.01ID:+NxYXL3O0101デフォルトの名無しさん
2015/12/04(金) 15:31:48.75ID:L/LPhIAT自前string.Formatみたいなの作った方がいいんじゃねえの
と思ったり。
例えば、"僕は%damage%のダメージを受けた"という文字列を渡すと
"僕は69のダメージを受けた"みたいにするようなの。
0102デフォルトの名無しさん
2015/12/04(金) 15:45:23.46ID:Bww8jXfy0103デフォルトの名無しさん
2015/12/04(金) 16:00:56.65ID:0orRsGxe2.解決手段をを見直すこと
お前らは2を後回しにしないからいつまでも停滞してるんだぞ?
2なんてまた同様のケースに直面したときに見直せばいいんだ。
0104デフォルトの名無しさん
2015/12/04(金) 16:53:55.77ID:Wl0CweWM煽るなよ低能
0105デフォルトの名無しさん
2015/12/04(金) 17:19:05.00ID:Xp0LGpIkだから俺が教えた通り前スレで教えたとおりにセリフを全部デリゲートにしとけばよかっただろ
string配列なんて柔軟性全くないだろカス
0106デフォルトの名無しさん
2015/12/04(金) 17:42:09.24ID:Xp0LGpIk{
var pname=player.Name;
var iname=item.Name;
Say($"{pname}は{iname}を使った!");
}
0107デフォルトの名無しさん
2015/12/04(金) 17:45:28.32ID:teE1ArcJ0108デフォルトの名無しさん
2015/12/04(金) 18:33:00.85ID:fudonlIppublic 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}を使った")
};
0109デフォルトの名無しさん
2015/12/04(金) 19:12:20.49ID:dRNqkMm3「を」がダブってるぞ見直せ
0110デフォルトの名無しさん
2015/12/04(金) 19:25:29.22ID:T2FA2tQ2実装も楽だろうし。
0111デフォルトの名無しさん
2015/12/04(金) 22:37:56.15ID:j2Cod+yK全スレラスト近辺の ID:fPUy/JrI は俺なんだがな。
そして荒れ気味になったのは君のせいではない。
(それ以前の時も君だけの問題ではない)
ただ君のやり方はとにかく普通じゃないんだ。
だからみんなが突っ込みたくなるのも分かる。
delegateってのはそういう時に使うものではない。
その場合は String.Format で全く問題なく実装できるはずだ。(>>85)
多分オブジェクト指向を勘違いしているのだと思うが、データ構造が意味不明になっている。
セリフを一つの配列に保持するのは何故?普通はフラグで切り分ける。
ただしこれだとコードがばらけてしまうので、フラグが立ったら落ちることがないのであれば、
今君がやっているように上書きしてif文を除去してもいい。ただこれも一つの配列に無理に押し込む必要はない。
具体的に言えば、普通は>>82なら、最後は以下になる。(記述箇所が違うのがミソ)
× new Serihu("僕は",GetItemumei,"を使った"); // Serifu配列に保持
○ String.Format("僕は {0} を使った",GetItemumei()); // item.useメソッド内に記述
丁度>>103に書かれているが、俺は逆で、君はもっとデータ構造を練ってからコーディングするべきだと思う。
君はとにかく一通りは実装できる実力があるようだ。
つまり初心者→中級者に脱皮中なのだから、もっと簡単に記述する方法を練るようにした方がいい。
結果的に、その方がデバッグ時間が少なくなって早く仕上がることが分かるはずだ。
一通りすら実装できない奴らが御託を並べてコーディングしないのもよくあることで、その場合は>>103はその通りだ。
ただ君はもうそのレベルは超えているのだから、もっと練ってからコーディングする癖を付けるべきだ。
0112デフォルトの名無しさん
2015/12/04(金) 23:18:07.68ID:ciEp6cCKセリフを配列にしたのはですね
正確には作ってるクラスはSerihuじゃなくてSinarioなんです
Sinarioクラスの中にシナリオの情報が入ってるんですけどそれはセリフだけじゃなくて
yes,noの選択肢、ゾーンの移動、音楽再生、分岐などに分類されてます
それが順送りに進んだり分岐で別のラベルに飛んだりして遷移する訳です
遷移の制御の関数はゾーンごとに作る予定です
それをわかりやすく記述するには初期化の所で配列に入れてしまうのが良いんじゃないかと
思ったんですけど
0113デフォルトの名無しさん
2015/12/04(金) 23:26:44.86ID:7dL2y26W0114デフォルトの名無しさん
2015/12/04(金) 23:29:51.50ID:9UEpldgClocalDBとかデータとして格納すべきものだよな
0115デフォルトの名無しさん
2015/12/04(金) 23:54:24.22ID:vTZpFPk/だから言ってるだろ
音楽再生もセリフも全部デリゲートにしておけば解決だろ
後でいくらでも変更できる
初心者や初めから完璧なデータ設計ができるわけがない
手探りでやるならデリゲートが万能
say("こんにつわ");
play("嗚咽.wav");
これらをシナリオデリゲートリストにでも突っ込んどけばいい
0116デフォルトの名無しさん
2015/12/05(土) 00:00:03.45ID:0DSpQ91Wはぁ
次作で検討します
今作はもう今のままで上手くいっててテストデータをいくつか放り込んでも
実に正確に動いてますので
0117デフォルトの名無しさん
2015/12/05(土) 00:08:05.88ID:0om6DbSRthis.abc.jkl();
こういう感じで「.」が複数並んだものはどういう意味があるのでしょうか?
初めのthisが自分自身のオブジェクトを指し、最後のjkl()がメソッドを指しているのだと思うのですが・・・・間のabcの部分は何者なのでしょうか?
0118デフォルトの名無しさん
2015/12/05(土) 00:34:13.84ID:5SHMDYrP考えて作っているのならそれでいい。
こちらも仕様を見ないと正確には最適な構造かどうかは判断できないし、それは他の人もそうだ。
今後とも俺含めて外野がごちゃごちゃ言うだろうが、結局のところ責任者は君なのだから、
良いアイデアはもらって、どうでも良い意見は無視すればいい。(これは今の君は出来ている)
それは持ち物の全てを常に自由に使えるというタイプではなくて、
あるアイテムはあるシチュエーションでしか使えないというタイプか?
(アイテムが有効な時にだけ選択肢の中に「使う」が出てくる)
その場合はその構造の方がいいのかもしれない。(全てがシナリオに紐付けされるから)
シナリオ部分だけ分離して作るのは良い戦略だ。
ただそれはハードコードではなく、前言われたように連想配列を使った方がいい。
あと、配列に入れること(オンメモリ)にこだわっているようだが、
その都度ファイルをスキャンしてもPCなら全く問題ないはずだ。
またこれも既に言われていたが、吉里吉里とか使った方が楽だと思うが、
それでも作りたければ作ればいいと思う。少なくともやらない奴よりは100倍マシだ。
ただなあ、君は多分戦えるつもりなのだろうが、今君が持っている武器はナイフでしかない。
C#には電動ノコギリなりチェーンソーなりあるんだから、色々もっと楽に出来る。
だからもうちょっと.NETのライブラリを確認した方がいい。
(多すぎて実体が見えてこないというのはその通りだが)
0119デフォルトの名無しさん
2015/12/05(土) 00:41:50.04ID:9Cod3yWNabcという変数がオブジェクトのインスタンスを持っていて、それがjklというメソッドを持っている。
0120デフォルトの名無しさん
2015/12/05(土) 00:56:32.34ID:0DSpQ91W実はゲームの詳しい仕様はまだ決めてないんですよね
取り敢えずジャンルとしては昔のcsゲームのセレクションみたいなのをイメージしてます
予定としてはアイテムを自由に使うシーンもありますしシナリオ紐付けのシーンも
あるんじゃないかと予想してます
0121デフォルトの名無しさん
2015/12/05(土) 01:00:32.13ID:8OetstfL0122デフォルトの名無しさん
2015/12/05(土) 01:12:59.50ID:8OetstfL分業して、お互いに干渉しないようにする
シナリオライターは、プログラムを触らないようにするから、
Lua, Squirrel(スクワール)などを使う
JSPもそう。
HTMLコーダーはJavaを触らず、アクションタグ・EL式を使う
0123デフォルトの名無しさん
2015/12/05(土) 01:27:49.91ID:5SHMDYrPまず仕様を確定させてから始めた方がいい。
アイテムがシチュエーションに依らず使用可能なら、
シナリオ側に「僕は○○を使った」があるのはナンセンスだろ。
それはアイテム側に無いと参照しづらい。(またはコピーが大量に必要になる)
両対応なら、普通は上記セリフはアイテム側にもって、
シナリオ側には有効アイテムかどうかのフラグを持つ。
(そうすれば、「僕は○○を使った」「何も起こらなかった」or「△△になった」と作りやすい)
まあ色々試せばいいが、多分一旦吉里吉里の仕様を確認して、
何でそういうことになっているのか考えた方がいいと思うぞ。
上記の通り、仕様が異なればそれに対する最適解も異なってくる。
とはいえ、正直やってみないと分からないところもあるだろうし、
それ含めて勉強だというのなら一度痛い目に遭ってみるのもいいかもしれない。
ただ確実に言えることは、仕様を確定させてから組む方が確実に早いんだよ。
それは面倒な作業に思えるかもしれないが、多分今の君は試したこともないだろ?
ウォーターフォールは成功すれば一番効率がいいんだ。
ただし現実にはそう簡単には行かない。とはいえ、目指さないことには始まらない。
だから今回でなくともいいけど、一回仕様をキッチリ確定させてから組むということを試した方がいい。
0124デフォルトの名無しさん
2015/12/05(土) 01:40:20.53ID:0DSpQ91Wゲームに実際何が必要かは初心者なので作りながらでしかわからないんですよね
前に一作作って今のは二作目なのですが多少は掴めてきました
次作からはちゃんと仕様を決めて作りたいと思います
0125デフォルトの名無しさん
2015/12/05(土) 01:49:48.33ID:5SHMDYrPちなみに、先にシナリオをほぼ書き上げることは可能か?
その場合は8割方仕様が確定するから、その状態で組んでしまえばいい。
どうやっても多少の仕様変更は免れ得ないものだろうし、
その最中に「どういう構造にすれば仕様変更しやすいか」が分かるだろう。
これは学習方法としてはまあまあだ。
0126デフォルトの名無しさん
2015/12/05(土) 01:56:56.33ID:0DSpQ91Wシナリオを先に書く事は可能です
そろそろ取り掛かろうと思ってました
明日から始めたいと思います
0127デフォルトの名無しさん
2015/12/05(土) 02:26:38.84ID:F7H2FODJ仕様って具体的にどこまで固めるものなの?
こういう機能のクラスが必要とかUML図で作成したりすること?
独学でやってるから実践的な設計がわからない
だから行き当たりばったりで最初から作り直したりすることがよくある
上の方でもあるけど、データ構造は重要でここがしっかりしてないと
後で変更することになった場合、もう一から作ったほうがいいわってなる
0128デフォルトの名無しさん
2015/12/05(土) 06:32:05.25ID:poGBdUW6最初に固める考えは古いんじゃね
0129デフォルトの名無しさん
2015/12/05(土) 16:58:57.43ID:nvqV1tdn0130デフォルトの名無しさん
2015/12/05(土) 17:06:48.44ID:TUTr6vYI極端な話、手描きの紙芝居でいい
決して設計能力の無さを補うためのものではない
個人で作ってるなら完成品のイメージは最初から頭の中にあるはずだから、設計は最初からできる
0131デフォルトの名無しさん
2015/12/05(土) 17:13:26.24ID:KdBqlpoa仕様なんて後回しでいいよ
0132デフォルトの名無しさん
2015/12/05(土) 17:23:12.50ID:OQdpR4PG勉強してみよ
0133デフォルトの名無しさん
2015/12/05(土) 17:37:59.43ID:7d38zssS仕様変更や拡張に対する柔軟性はコードのシンプルさや可読性に反比例するし、
そもそも対応できる仕様変更の範囲なんてたかが知れてるから、程度問題ではあるが
結局は最初に仕様をある程度きちんと確定した方が効率がいいし、精神衛生上もいい。
急がば回れ、だろ。
っていうか、マ板的な話題になっちゃうけど、日本のITにデスマが多い理由の一つは
最初に仕様を確定することの重要性をクライアントに理解させることに失敗してるから。
0134デフォルトの名無しさん
2015/12/05(土) 17:43:34.13ID:TUTr6vYI仕様がはっきり決まってるのにその範囲をきっちり設計できないのは単なる能力不足であり非効率
流行りのアジャイルはその一度にはっきり決める範囲をなるべく小さくして方向修正をしやすくしようというものだ
いずれにせよ、「はっきり決まってる範囲」についてはきっちり設計できるのが前提だ
そこを履き違えてはいけない
0135デフォルトの名無しさん
2015/12/05(土) 17:48:23.96ID:KdBqlpoa現代的な開発手法とは真逆の結論だね
なぜそうなったのか興味深い
0136デフォルトの名無しさん
2015/12/05(土) 18:06:09.35ID:7d38zssS現代も糞もないから。
本気でそう思ってるんならお前さんオモチャみたいなプログラムしか作ったことないんだろ。
建築でも造船でも何でもそうだけど、犬小屋レベルなら思いつきでスクラップ&ビルドで何も問題ないけど
ある程度の規模と複雑性を超えたら気軽にそんなことできない。
0137デフォルトの名無しさん
2015/12/05(土) 18:16:09.67ID:TUTr6vYI仕様のはっきり決まっていないものを作るのも後で大きな変更をするのも不可能
でも最初に全部確定させるのは(客がビジネス上の目標を達成することを開発の目的とするなら)難しい
じゃあどうするか?→少しずつ確定させてその都度作ろう
というのが現代的な結論
0138デフォルトの名無しさん
2015/12/05(土) 18:31:12.60ID:bOfmuCEIいや、客の下請けになるのと自社製品のほうがデカイか
0139デフォルトの名無しさん
2015/12/05(土) 19:24:10.39ID:KdBqlpoa大規模であるほどステークホルダが増え開発者の発言力は相対的に弱まりビジネスは複雑化しその変化は速くなる
最初からステークホルダ全員の納得する仕様を作る事など誰にもできない
最初に決めた仕様を顧客を無視して貫き通すなんてどんなに強大な開発会社だってできない
最初に仕様をがっちり固めてそれに執着する事ほど愚かな行いは無い
仕様は流動的で全体を見通す事は出来ないものであるという当たり前の事実を認める
変化に強く拡張性の高い柔軟でしなやかな設計と管理可能な規模に制限されたイテレーティブな設計開発プロセスでもって顧客の要求に応えさらには顧客の気付かなかったビジネス上の提案を行う
これが先進的な現代のシステム開発の姿だ
そして変更に対して柔軟で拡張性の高い設計は自然とSOLIDなどといった良い習慣を実践するシンプルで可読性の高いプロダクトを生産する事はいまや周知の事実である
0140デフォルトの名無しさん
2015/12/05(土) 19:35:08.76ID:HGRqjVZT0141デフォルトの名無しさん
2015/12/05(土) 20:56:33.71ID:0om6DbSR入れ子構造になっていたわけですね
なかなか理解できなかったので助かりました
ありがとうございます
0142デフォルトの名無しさん
2015/12/05(土) 22:36:44.86ID:EmMdnWJIきちんと設計していれば
0143デフォルトの名無しさん
2015/12/05(土) 23:17:34.13ID:XLAN3beobyte[] data = Encoding.UTF8.GetBytes(str);
をループで100回くらい実行すると何十秒も掛かるのは何故?
速くする方法を教えてケロ
0144デフォルトの名無しさん
2015/12/05(土) 23:22:25.35ID:Pp+uAKFK問題はそこだけじゃ無いと思うんだが
ソース全体見ないとなんとも
0145デフォルトの名無しさん
2015/12/06(日) 00:23:16.50ID:z5tP4Enx調査してみます。ありがとうございました。
もう一つ教えて下さい。
string の配列 strが有るときに、その全ての要素の末尾の '\n' をトリム
したいのですがLINQで書く方法を教えて下さい。
0146デフォルトの名無しさん
2015/12/06(日) 01:42:11.95ID:wT98bk2q末尾の連続する指定文字を削除→String.TrimEnd
後はこれらを組み合わせるだけ
0147デフォルトの名無しさん
2015/12/06(日) 02:14:26.24ID:Iw0HekNiWhereじゃなくSelectな
0148デフォルトの名無しさん
2015/12/06(日) 02:15:30.88ID:oN/DZACaそんなもん速くすることに何の意味があるのか教えてケロ
0149デフォルトの名無しさん
2015/12/06(日) 02:29:23.41ID:z5tP4Enx出来ました。有難うございました。
0150デフォルトの名無しさん
2015/12/06(日) 02:36:25.51ID:WQnzekof0151デフォルトの名無しさん
2015/12/06(日) 02:53:04.29ID:3F5n1eU+別人ですよw
前も間違えられましたw
0152デフォルトの名無しさん
2015/12/06(日) 03:36:35.64ID:z5tP4Enxこいつって言うなよ。お前はドイツだ?
0153デフォルトの名無しさん
2015/12/06(日) 11:14:49.31ID:AT77pBch0154デフォルトの名無しさん
2015/12/06(日) 17:12:11.55ID:W+p7bgVbずっと調べてたのですがよくわかりません
お願いします
0155デフォルトの名無しさん
2015/12/06(日) 17:26:29.52ID:W+p7bgVbしかしデータテーブルだとデータ取得などでキャストがものすごく多く扱いづらかったので他の方法はないかなと
0156デフォルトの名無しさん
2015/12/06(日) 18:13:57.64ID:Iw0HekNi>>42の何についてだよ
0157デフォルトの名無しさん
2015/12/06(日) 20:09:51.90ID:C3DS1n+hwin7だとVisual Studio以外だと現在どのような環境があるのでしょうか?
0158デフォルトの名無しさん
2015/12/06(日) 20:30:13.83ID:q8EgO26J0159デフォルトの名無しさん
2015/12/06(日) 22:25:05.46ID:PCHXXrmx自作クラスをDGVでソートする場合に
bindinglistの自作以外に方法があるのかについてです
同じDBを複数のプロジェクトで使うため、ライブラリ化して簡単にDGVに表示する方法を模索中です
0160デフォルトの名無しさん
2015/12/06(日) 23:16:02.61ID:wT98bk2q設計を低いレベルで考えすぎ
難しいこと考えずにDB使いまわしたいんならリポジトリパターンでも使ってラップしてしまえ
DGVとの受渡くらい手で書いても大したことじゃない
こういうのはきちんと守るべき大枠とくだらない実装の詳細を分けて考えるのが大事
0161デフォルトの名無しさん
2015/12/07(月) 01:26:06.62ID:2NgeMT2Jただ、それをDGVでソートできるように
どう受け渡すかがわからなくて悩んでるところなんです
0162デフォルトの名無しさん
2015/12/07(月) 07:04:12.11ID:H/Y7gwjChttp://japan.cnet.com/news/business/35066650/
Javaがオラクルの所有物に過ぎないとばれた今、
C#がマイクロソフトの所有物でも普及に支障はなくなりましたか?
やっぱりオラクルvsマイクロソフトならマイクロソフトが勝つに決まってるし、
JavaよりC#の方が将来有望ですか?
0163デフォルトの名無しさん
2015/12/07(月) 09:32:41.12ID:yCfuxHbaクリックされたら指定のソートで帰ってきたデータをDataSourceにbind
0164デフォルトの名無しさん
2015/12/07(月) 11:46:23.80ID:2NgeMT2JDGV作るたびにその処理を書かないといけないので諦めました
DALを参照したら、あとはソースをDGV.DataSourceに突っ込むだけで
ソートも編集もできるようにお膳立てしたいんです
既存の複数のプロジェクト、今後作るプロジェクトで
参照するだけでさくっとやれるようにしたいんです
で、それをするには自作BindingListViewってとこにたどりついたんですが
他に方法はあるのか知りたいという段階です
DataTableは一旦DBから全データ取り出して実体化したものだから
せっかくのデータベースも台無しだし
あととにかく記述が面倒なのと
フォーム上にテーブルごとにアダプターやらなんやら大量に作ることになるのが
目障りなんですよね
じゃあ、コードで生成するとなると
Rows["ほげ"]ということをしないといけなくなるのでそれも色々面倒
0165デフォルトの名無しさん
2015/12/07(月) 11:55:40.97ID:2NgeMT2Jやっぱこれにつきますかねぇ
なんかゴリ押しでやってた時のほうが目的のものがすぐ作れてた
どうでもいいこと考えすぎかな
0166デフォルトの名無しさん
2015/12/07(月) 20:06:56.84ID:Alz7fRso0167デフォルトの名無しさん
2015/12/08(火) 18:30:32.51ID:pLN3UA33unsafeは使ったほうが良いのでしょうか?
0168デフォルトの名無しさん
2015/12/08(火) 20:40:53.22ID:tm5OKDCJもし「アプリとして一通り動作するようになった段階で」許容できないほど遅かったらポインタにすればいい
0170デフォルトの名無しさん
2015/12/09(水) 19:28:35.96ID:M0xrPV16ありますでしょうか?
List<string> data = new List<string>();
data.Add("A");
data.Add("B");
data.Add("A");
for文で地道に処理すれば数えることはできますが、
今のご時世、ラムダ式などで短く書けるのではと思い。
よろしくお願いします。
0171デフォルトの名無しさん
2015/12/09(水) 19:37:40.54ID:svoVX7AQdata.Count(str => str == "A")
0172デフォルトの名無しさん
2015/12/09(水) 19:45:54.70ID:rknXDi2eでも行けるけど(たぶん)、Linq の方が好みだな。
0173170
2015/12/09(水) 19:51:16.06ID:M0xrPV16参考にさせて頂きます。
ありがとうございます。
0174デフォルトの名無しさん
2015/12/10(木) 19:44:47.35ID:/nCMdU4kListenを閉じずに継続させたいのですが、具体的にどこをループさせればいいかわかりません。
よろしくお願いします
http://dobon.net/vb/dotnet/internet/tcpclientserver.html
>>もし終了させずにListenを継続する場合は、リスナを閉じずに、
>>再びAcceptTcpClientメソッドを呼び出してください(ループさせることになるでしょう)。
0175デフォルトの名無しさん
2015/12/10(木) 20:57:53.52ID:x7zD0EOzいくら何でもこれは自分で理解出来るようにならないと、ソケットプログラムなんて無理だぞ。
0177デフォルトの名無しさん
2015/12/10(木) 21:03:05.35ID:zy2e4Bxwオブジェクト指向的には、
インスタンスを作って呼び出す方が良いのでしょうか?
使用するクラスで継承させる方が良いのでしょうか?
趣味グラマーなので、専業の方が
どうしているのか気になりまして。。。
0178デフォルトの名無しさん
2015/12/10(木) 23:37:47.90ID:hl2uxfTrそんなどうでもいいもの継承すんなボケェ
0179423
2015/12/11(金) 06:49:57.63ID:7DodXpQ6マルチうざい
http://peace.2ch.net/test/read.cgi/tech/1445609364/438
0181デフォルトの名無しさん
2015/12/11(金) 12:06:53.25ID:lQa1iSl4いくらなんでもこれは自分で理解できるようにならないと、フォームプログラミングなんて以下略
0182423
2015/12/11(金) 12:45:33.07ID:7DodXpQ6それはフォームの処理をする奴がいなくなるから
今まではメインスレッドがフォームの処理をやってたけど、メインスレッドはクライアントからの接続待ちとクライアントとの通信しかしてない
C# フォーム 固まる
とかで検索すれば対処法とか載ってるから見てみて
0183デフォルトの名無しさん
2015/12/12(土) 16:30:55.13ID:Tj9TliY5うまくいかないURLがあります。
■概要
「http://a.com」へアクセスしてレスポンスbodyを見ると、
文字化けした文字が1文字のみ(�)入っていて、正常にHTMLを取得できません。
なお「http://b.com」「http://c.com」などの他サイトの場合、正常にHTMLを取得できます。
■質問事項
上記が発生する原因と対策をご教授下さい。
■環境
Microsoft Visual Studio Community 2013 Update 4
Visual C++ / C++/cli
Windows8.1
■ソースコード
http://ideone.com/5nTej7
大変困ってます。先輩方ご教授のほどお願い致します。
0184デフォルトの名無しさん
2015/12/12(土) 17:37:40.14ID:V9rSzP+i0185デフォルトの名無しさん
2015/12/12(土) 23:59:25.81ID:k5LGN9PPこの場合、次のように20行書くしかないのでしょうか?
ahoge.Foo();
bhoge.Foo();
choge.Foo();
・
・
・
素人感覚としてもう少し楽な方法があるのではないかと感じてしまいますがどうなのでしょうか、よろしくお願いします
0186デフォルトの名無しさん
2015/12/13(日) 00:03:26.38ID:Wcw8JgGx0187デフォルトの名無しさん
2015/12/13(日) 00:24:37.34ID:pukhMxdP0188デフォルトの名無しさん
2015/12/13(日) 00:39:11.92ID:5FRgwNtE2文になっちゃってるし
0189デフォルトの名無しさん
2015/12/13(日) 00:40:37.73ID:Be8+1Kca各スレッドで、出来ることが厳密に分けられている
通信アプリでは、同期・非同期の2つある。
同期では返信が来るまで待つが、
非同期では待たずに、関数がすぐにリターンして、
後から登録しておいた、ハンドラを呼び出してもらう
サーバーではListenしておいても、接続要求が来たら、
そのソケットではなく、その場でコピーしたソケットを使って、
元のソケットはそのまま、Listenを続ける
0190デフォルトの名無しさん
2015/12/13(日) 00:42:24.59ID:dHM9DT2y0191デフォルトの名無しさん
2015/12/13(日) 00:45:16.72ID:Wcw8JgGxどなたかご教授お願いします。難易度高いでしょうか・・
0192デフォルトの名無しさん
2015/12/13(日) 00:47:06.91ID:Z/gGXySuvar hoge[] = { new Hoge(), new Hoge(), ... };
foreach( var item in hoge ) item.Foo()
の方が好みだな。
0193デフォルトの名無しさん
2015/12/13(日) 00:52:59.06ID:Z/gGXySuこれってそもそも C++/CLR じゃないの? (ここは C# のスレ)
a.com が、きちんと応答を返しているかを確認してる?
このコードが何をしているのかを説明出来る?
0194デフォルトの名無しさん
2015/12/13(日) 00:59:25.75ID:wcpRGnCgありがとうございます
オブジェクト名に変数を使うのですね
ただSelect(_ => new Hoge()の部分が私には難しく、なぜオブジェクト名が返ってくるのか不思議に思えてしまいます
特に_から始まるラムダ式を初めて見たため_が何を意味しているのか分からず、またここに出てくるnewが何を意味しているのかよくわからないのです
できれば少し教えていただけないでしょうか
0195デフォルトの名無しさん
2015/12/13(日) 01:06:33.93ID:Wcw8JgGxはい、HTTPレスポンスヘッダーとステータスコード=200は通常ですが、
中身だけ一文字文字化けで異常なのです。
原因と解決方法をご教授お願いします。
0196デフォルトの名無しさん
2015/12/13(日) 01:25:24.42ID:qqdlpJsw素朴さと効率の面での着地点はおそらくこれ
for (int i = 0; i < 20; i++) {
new Hoge().Foo(); // 20回呼ばれる
}
0197デフォルトの名無しさん
2015/12/13(日) 01:33:58.65ID:nACJdPad0198デフォルトの名無しさん
2015/12/13(日) 01:39:36.45ID:wcpRGnCgなぜこれで動くのか?なぜnewが挟まってるのかなあ・・・?と思ったら
0199デフォルトの名無しさん
2015/12/13(日) 01:41:04.49ID:qqdlpJsw> 20すべてのインスタンスに対しHogeのメソッドFooを呼び出したい
とモロに書いてあるけど?
一個のインスタンスに20回Foo呼び出すなら>>185の不満は出ないはず
0200デフォルトの名無しさん
2015/12/13(日) 01:42:11.81ID:qqdlpJsw0201デフォルトの名無しさん
2015/12/13(日) 01:44:22.13ID:nACJdPadその20個のインスタンスを使いまわすなら>>196みたいな書き方にはならないんじゃね?
まあ質問者が例の子だからこれ以上はレスやめとくけど
0202デフォルトの名無しさん
2015/12/13(日) 01:53:34.04ID:Be8+1Kca以下のように、ラムダ式の引数を使うなら、
x => x * x;
使わないなら、_ を使う。
_ => new Hoge()
単に20回、Hoge インスタンスを作りたいのだろう
0203デフォルトの名無しさん
2015/12/13(日) 01:57:52.55ID:wcpRGnCg0204デフォルトの名無しさん
2015/12/13(日) 05:58:27.26ID:cRCiNpbO0205デフォルトの名無しさん
2015/12/13(日) 09:30:13.43ID:Wcw8JgGxどなたかご教授お願いします。
0206デフォルトの名無しさん
2015/12/13(日) 09:51:50.02ID:sFQuc/mbVisual C++ / C++/cliのHTTPクライアント [無断転載禁止]c2ch.net
http://peace.2ch.net/test/read.cgi/tech/1449902256/
0207デフォルトの名無しさん
2015/12/13(日) 10:06:49.10ID:cRCiNpbOこのスレC#のスレなんだよね…そのくらいはスレタイトル見れば普通わかるよな
途中で指摘までもらってるのに謝罪もなく続ける神経ってどうなのか
マルチポストという最低行為までしてるし恥を知れと言わせてもらうわ
回答求めるなら人として最低限のルールやマナーくらい守ろうや
0208デフォルトの名無しさん
2015/12/13(日) 12:28:09.88ID:Z/gGXySu低姿勢に見えるけど、実はそうじゃないし。教えてあげる側にも必要な情報があるって事を理解してないし。
そもそも日本語もおかしいしな。
0210デフォルトの名無しさん
2015/12/13(日) 13:40:22.11ID:yq3eT/D1それはそうと、他スレでもそうだが、ここ数週間でこの手の輩
--掲示板に書けばデバッグしてもらえると思っている池沼ゆとり--が急に増えたよな。
何があったのかは分からんが。
マルチしているのなら、マルチ先にも取り下げを明示するのが義務。
質問をした以上、自己解決した場合もあらましは説明するのが筋。
ID:Wcw8JgGx は死ね。
0211デフォルトの名無しさん
2015/12/13(日) 14:50:18.19ID:jSlwiwGB2ch脳全開だなお宅w
しかし、>>210みたいに相手(他人)にばかり義務を負わせて
テメエは文句を付けるだけで何も義務を負わないことに何の疑問も感じないどころか
正論ぶってるつもりになって自己陶酔してる馬鹿ってどういう神経してるのかね。
0212デフォルトの名無しさん
2015/12/13(日) 15:05:43.34ID:S5USnmm80213デフォルトの名無しさん
2015/12/13(日) 15:25:01.50ID:EcvSK0Uhちゃんと書いてくれてる>>210は親切な人だよ
0214デフォルトの名無しさん
2015/12/13(日) 17:00:34.08ID:XIYdqDB00215デフォルトの名無しさん
2015/12/13(日) 18:31:41.06ID:ATkL4mrR0216デフォルトの名無しさん
2015/12/13(日) 18:32:20.53ID:ATkL4mrR0217デフォルトの名無しさん
2015/12/13(日) 18:35:10.91ID:ATkL4mrR0218デフォルトの名無しさん
2015/12/13(日) 18:39:41.21ID:+vfdgVrV0219デフォルトの名無しさん
2015/12/13(日) 19:02:55.61ID:7+L9FXPQ0220デフォルトの名無しさん
2015/12/13(日) 19:20:44.74ID:yq3eT/D1この手の馬鹿に答えること自体が迷惑だということが分からないのなら2ch止めるべきだな。
お前だけ意見が浮いているのは、お前が回答したことがないクレクレ君だからだよ。
ID:jSlwiwGB も死ね。(= ID:Wcw8JgGx かもしれんが)
お前は答えることが義務だと勘違いしている馬鹿か、そういうことにしたいアフィモドキだと思うが、
お前らteratailから来てるキチガイなの?マジで最近多いんだけど。他スレでも。
0221デフォルトの名無しさん
2015/12/13(日) 19:28:09.17ID:Z/gGXySu>>215
初心者なら、タイマーイベントで、要求投げる、受ける、表示をやってみればいいんじゃね。
投げる→受けるの時間が長いと画面が固まる(時間が長くなる)けれど。
最近なら Task とか使うんだっけ?
0222デフォルトの名無しさん
2015/12/13(日) 20:03:41.07ID:l4YWW2h+2ch脳全開だな。
しかし、こういう馬鹿の「この俺様が答えてやるのだからお前は俺様に礼儀を尽くせ」って
思考回路って何様のつもりかね。
馬鹿じゃないの。
誰もお前に回答して下さい、なんて頼んでねえだろ馬鹿。
テメエがテメエの欲求を満たすために頼まれもしないのにテメエの意思で書いてるに過ぎないのに
それを忘れて自分が開いてに対して何かを要求する権利を持ってるかのように錯覚する>>220みたいな
エゴイストって馬鹿だと思うし理解できんわ。
0223デフォルトの名無しさん
2015/12/13(日) 20:06:05.15ID:1MCMp/1v例えばlistviewやgridviewを使ってtableを作ったとして、javascriptでtableエレメントに行追加等の操作しても
それをサーバ側で拾う方法って無いですよね?
行追加自体をサーバ側でやって、レンダリングするしか無いですかね。
逆に.net MVCだとバインディングはname属性の規則性でバインドされるんで
name属性を指定して、javascriptで追加してあげれば、コントローラーで取得できるんですかね
0224デフォルトの名無しさん
2015/12/13(日) 20:15:10.40ID:RL8ekZoRRx勉強しろ
とっかかりはむずいけど慣れたら超便利
0225デフォルトの名無しさん
2015/12/13(日) 20:31:31.33ID:yq3eT/D1理解できなくていい。ただお前は去るべきだ。
2chが嫌いで他サイトが好きなのなら、他サイトで質問するべきだ。
2chで質問している以上、2ch流の対応をされても文句を言える筋はない。
そしてお前自身2chが嫌いなようだから、お前は2chを止めるべきだ。
0226デフォルトの名無しさん
2015/12/13(日) 20:37:38.58ID:l4YWW2h+よく分からん独りよがりの理屈。
>>225みたいな奴っていかにも今時の一人っ子のわがまま坊主って感じ。
ゆとり?
それお前のことだろ馬鹿。
0227デフォルトの名無しさん
2015/12/13(日) 20:43:58.56ID:+vfdgVrV0228デフォルトの名無しさん
2015/12/13(日) 20:48:09.66ID:l4YWW2h+>>225みたいな勘違いした特権意識丸出しのレスができるって病膏肓に入る馬鹿ってこういうのを言うんだね。
0229デフォルトの名無しさん
2015/12/13(日) 20:50:08.86ID:cRCiNpbO自己解決したのに解決した方法も書かずに去るというコンボまで決めちまったのか
マジで恥を知れって
0230デフォルトの名無しさん
2015/12/13(日) 22:01:20.19ID:CAQs6xCh> この俺様が答えてやるのだからお前は俺様に礼儀を尽くせ」
横からすまん
何か知らんがこの場合は回答者と質問者の関係だろ?
だったら質問者は回答者に敬意払っていいんじゃないの?w
乞食が偉そうにしても何ももらえないぞw
0231デフォルトの名無しさん
2015/12/13(日) 22:47:07.40ID:yq3eT/D1ちなみに、他スレを見てないと気づかないと思うが、正直言ってC#のスレはかなりマトモだ。
だからこの手のキチガイ逆ギレクレクレ君は今後とも来る。気を付けた方がいい。
以下参考。最近おかしな奴が急に増えた。居着かれても困るだろ。
【JavaScript】1から10まで足せません
http://peace.2ch.net/test/read.cgi/hp/1444186237/883-888
【JavaScript】if文は難しくて書けません
http://peace.2ch.net/test/read.cgi/hp/1448293871/162-169
【Java】キャストできません
http://peace.2ch.net/test/read.cgi/tech/1445609364/458-460
【Java】エラーが取れません
http://peace.2ch.net/test/read.cgi/tech/1445609364/489-493
0232デフォルトの名無しさん
2015/12/13(日) 22:55:20.15ID:S5USnmm8何だろう一体
0233デフォルトの名無しさん
2015/12/13(日) 23:47:03.54ID:yq3eT/D1> 私は、このスレ民が誰も持ってないVS2015を購入する財力があるんですよ?
> 再三に渡り申し上げていますように、私のコードにはバグが入り込む余地など皆無ですから
http://peace.2ch.net/test/read.cgi/tech/1438695290/765
状況からして、組織的に2chスレを毀損しに来ているとしか思えない。
冬休みに見せかけたひろゆき流というか。
おそらくム板を潰して住民の移動を促したいのだろう。
で、以前teratailの名前を出したら状況が変わった気がしたから、今回も試してみたw
しかし夏休みでもここまで酷くならないのに、(というか夏休みでも大して変わらないのに)
やりすぎでバレバレだろ。
どこか他にム板潰して得する連中っている?
0234デフォルトの名無しさん
2015/12/13(日) 23:48:47.66ID:l4YWW2h+質問者が回答者に謝意(敬意wは大げさ)を表すのは人として当たり前だと俺も思うが、
自分で答えたくて答えてるにすぎないことを忘れて回答者が謝礼を当然視したり、
>>210みたいに相手に自分の価値観を一方的に押し付けるのは
不遜で勘違いも甚だしいって言ってるんだよ。
神戸でも福島でも誰に頼まれるでもなく自分で好き好んで出かけて行っておいて、
見返りを求めたり被災者のための救援物資を飲み食いする勘違いしたボランティアがいたそうだけど、
そういう馬鹿と同類だな>>210みたいのは。
0235デフォルトの名無しさん
2015/12/14(月) 01:11:01.67ID:nsHRL9eA> 質問者が回答者に謝意(敬意wは大げさ)を表すのは人として当たり前だと俺も思う
人として当たり前なんて思わない
そんな道徳を押し付けようとしてるんじゃない
そーじゃない
みんなが言っているのはね
君にとっては義務じゃなくて権利だ
こうすればこうしてもらえるよ、というだけ
そうしなければ?
おそらく今後は単に無視され続けるだろう
0236デフォルトの名無しさん
2015/12/14(月) 01:15:56.28ID:nsHRL9eAだから>>235の「みんなが言ってるのは」部分は取り下げるわ
個人的な感想とだけにしとく
0237デフォルトの名無しさん
2015/12/14(月) 01:17:17.95ID:8e/RtXYSarrayとArrayList型とList型と、
HashtableクラスとDictionaryクラスと
なんで似たようなのがこんなにいっぱいあるんでしょうか
調べた限りでは、
array: 要素数変更の際には再定義してまるごとコピーし無くてはならない。×
ArrayList: 非ジェネリッククラスなので使うべきではない×
List: おすすめ○
Hashtable: 非ジェネリッククラスなので〜×
Dictionary: おすすめ○
こんな認識なんですが
例えばarrayが活躍するような状況ってあるんでしょうか。
単にレガシーなだけですか?
0238デフォルトの名無しさん
2015/12/14(月) 01:39:56.06ID:18/fwc/dArrayListやHashtableはレガシー。
arrayはC#の配列の基本クラス。
0239デフォルトの名無しさん
2015/12/14(月) 01:41:29.03ID:XssrJ5Dg様々なアドバイス有難うございます。要求コマンドは相手先の返答が変わる可能性を考えて1秒ごとにポーリングする形を取りたいと思っています。
0240デフォルトの名無しさん
2015/12/14(月) 01:42:28.38ID:yG0ytcqDジェネリック版が存在する型の非ジェネリック版はレガシーだから使う必要なし
arrayはいわゆる[]で定義する配列のこと?
だったら要素数が固定でコレクション型に存在するメソッド(挿入とか)を使う必要がなければ
簡潔だし速いからまだま使うでしょう。
座標とかの添字アクセスが必要な場合は配列のほうが見やすい
3次元配列でList<List<List>>とかしたくない。
あと今のところListの内部実装は配列だったはず
0241デフォルトの名無しさん
2015/12/14(月) 01:43:40.41ID:8e/RtXYSarrayはListのベースクラスになっている感じでしょうか。
ともあれ○つけたので間違いないということで安心しました
ありがとうございます!
0242デフォルトの名無しさん
2015/12/14(月) 01:44:56.55ID:XssrJ5Dg0243デフォルトの名無しさん
2015/12/14(月) 01:47:01.19ID:8e/RtXYSなるほど…
enum使いようなものにはarrayの方があっているという感じでしょうか。
ありがとうございます!
0244デフォルトの名無しさん
2015/12/14(月) 01:48:32.61ID:XssrJ5Dg0245デフォルトの名無しさん
2015/12/14(月) 01:50:09.83ID:XssrJ5Dg0246デフォルトの名無しさん
2015/12/14(月) 01:55:50.98ID:yG0ytcqD質問の直後に218さんがBeginInvokeのヒントをくれてるのになにが徹底的に調べただ
0247デフォルトの名無しさん
2015/12/14(月) 01:58:37.94ID:pR0q+hJa6*7が分かりません
具体的な正解をご教授くださいm(_ _)m
0248デフォルトの名無しさん
2015/12/14(月) 02:02:17.35ID:18/fwc/d予め配列の長さが固定で分かってる単純な配列の場合はarray(int[]とか)。
後からデータを足すとか、長さが不定の場合はList<>。
0249デフォルトの名無しさん
2015/12/14(月) 02:04:34.11ID:30h96I3Uここはチャットじゃないんだから書き込みもうちょっとまとめような
0250デフォルトの名無しさん
2015/12/14(月) 03:21:55.90ID:ccU2pCxg0251デフォルトの名無しさん
2015/12/14(月) 05:49:23.31ID:V5qe/+59深く考えず
・async/await
・dispacherメソッド定型呼び出し
・astask
・非asyncからasyncやtaskなどをawait呼び出ししない
・同様にtask.waitなどしない。async/awaitで強引に並列処理を実装しようとしない
・コンソールアプリとGUIではawaitの挙動が違う(語弊あり)
・むしろ全部非同期にする
を守ってasync/awaitすれば、優しい世界が待ってるよ。
こいつらの動作原理を知識0から真面目に知ろうとするとガチでで20時間ぐらいかかるから、あまり深く考えなくて良い
0252デフォルトの名無しさん
2015/12/14(月) 22:10:44.05ID:daRnSbpo0253デフォルトの名無しさん
2015/12/14(月) 22:12:44.43ID:daRnSbpoと
public static string PropertyName {get;} = " ssss" ;
の挙動上の違いがわかりません
上がフィールドで下がプロパティ以外であること以外の違いについて教えて下さい
0254デフォルトの名無しさん
2015/12/14(月) 22:29:03.79ID:AA+Gl2Rsフィールドとプロパティの違いに起因する挙動の違いとしか言いようがない
中でリフレクションを使っていて、プロパティじゃないと反応してくれないライブラリはよくある
0255デフォルトの名無しさん
2015/12/14(月) 22:34:44.70ID:daRnSbpoなるほど
有難うございます
0256デフォルトの名無しさん
2015/12/14(月) 22:42:53.30ID:XssrJ5Dg答える気ないなら書き込むなよな
0257デフォルトの名無しさん
2015/12/14(月) 22:54:55.73ID:1ewiA+asCLS準拠してるかしてないか
0258デフォルトの名無しさん
2015/12/14(月) 23:00:14.32ID:dPco7zPj文盲は去れ
0259デフォルトの名無しさん
2015/12/14(月) 23:03:21.08ID:4hBSCyDp本日のキチガイ ID:ATkL4mrR = ID:XssrJ5Dg
0260デフォルトの名無しさん
2015/12/14(月) 23:11:35.90ID:30h96I3U0261デフォルトの名無しさん
2015/12/14(月) 23:33:34.30ID:+VeChPZq256 :デフォルトの名無しさん:2015/12/14(月) 22:42:53.30 ID:XssrJ5Dg
説教くさいやつなんなの
答える気ないなら書き込むなよな
0262デフォルトの名無しさん
2015/12/14(月) 23:51:17.16ID:ccU2pCxg0263デフォルトの名無しさん
2015/12/15(火) 10:33:52.75ID:DB3m4Koh今は「知ってるが、お前の態度が気に入らない」の心境だよなみんなw
0264デフォルトの名無しさん
2015/12/15(火) 12:04:31.56ID:sIyUSg960265デフォルトの名無しさん
2015/12/16(水) 12:01:18.73ID:yfneKelHんで、さっそく超初歩的なところで恐縮なのですが・・・
フォームにボタンを置いて、Clickイベントの中身を書こうと言うとき
VBだったら、コードウィンドウの最上段の左コンボでボタンオブジェクトを選択し
右コンボでイベント名を選択すると、勝手にスケルトンが作られました。
C#のとき、どうしたらスケルトンが出来ますか?
フォームデザインのプロパティのイベントで、イベント名をダブルクリックする以外に
コードウィンドウでラクチンにイベント書きたいのですが。
0266デフォルトの名無しさん
2015/12/16(水) 12:19:16.73ID:St9ccaht無理
どうしてもエディタでやりたいならコンストラクタで
button.Click += [Tab] と入力する
0267デフォルトの名無しさん
2015/12/16(水) 13:05:18.33ID:15RxssU8コードでボタンを追加したならそのまま.Click +=って入れた方が早いし
なので一々ドロップダウンから云々ってのの便利さが分からない
0268デフォルトの名無しさん
2015/12/16(水) 14:06:44.43ID:yfneKelHコンボの中でイベント一覧が見れて便利なんだが・・・
(確かにオブジェクト名の次にドットを打てば出てくるが、メソッドやプロパティもごっちゃだし)
なんとなくVBよりもコードが冗長になるのは、明確化との引き替えなのかなぁ
メソッドであるのかプロパティであるのか意識しないといけないのは面倒だなぁ
→ 末の () が必要かどうかはオブジェクトの素性を知らないと分からない
int i;
<中略>
if(!i) 〜 も通用しないんだな、boolでないと叱られて。C++の派生のくせに
あと DataGridView の Cell 型の Value のように、オブジェクト型で出てくるのも
ラフに比較できなくて不便だな。== は叱られるし、かといって equals 使うと型判定が厳密すぎるし
0269デフォルトの名無しさん
2015/12/16(水) 14:09:30.44ID:yEzHguVkはっはっは
お冗談がお上手だ
0270デフォルトの名無しさん
2015/12/16(水) 14:37:57.82ID:a0Y6Pfc6そこは本当。
VBにはHandles付の変数ってのがある。
そのくせイベントやデリゲートに+=、-=が定義されてなかったりして何がしたいんだかよく分からんけど。
0271デフォルトの名無しさん
2015/12/16(水) 14:47:37.27ID:a0Y6Pfc60272デフォルトの名無しさん
2015/12/16(水) 15:31:29.96ID:usEKDPLnインテリセンスで出てくるし
0273デフォルトの名無しさん
2015/12/16(水) 15:42:17.51ID:yfneKelHDim c As New MyClass
と出来るところ、C#だと
MyClass c = new MyClass();
と「MyClass」を二度もタイプしないといけないの?
あと、「(」が物凄いネストになりやすいな
キャストした結果のメソッドを使いたいときは、キャストの外側を () で括らないといけないあたりも微妙に不便
(VBのCtypeのほうがマシな気も)
if の{} は C++ 同様に相変わらず省略可で、一瞬ヒヤっとしたり
0274デフォルトの名無しさん
2015/12/16(水) 15:44:16.48ID:yfneKelHAddHandler だね、VBでは。
いちいち += しないといけないのも微妙に不便だし
いったん書いたイベントコードを削除するとき、 += の部分もセットで手で消さないといけない。
フォーム側でイベント作ったときは、+= があっち側のコードにあるし
0275デフォルトの名無しさん
2015/12/16(水) 15:52:22.24ID:s50ZsdUAnew入れたら候補出るだろ
嫌ならvar使え
0276デフォルトの名無しさん
2015/12/16(水) 17:53:38.00ID:++aKhWi5プロパティ周りが改善されてるっぽくて期待
あとはメモリ管理(特に Bitmap のリソースリーク(?))と
64bit 版でポトペタできるようになることと
CLI 上で動くスクリプト言語が充実してくれればいうことはない
どうでもいいけど C++ と簡単に連携できるスクリプト言語を教えておくれ
正規表現/文字列処理とかファイル処理がちょっとしんどい
かと言って python や ruby だとちょっと規模が大きい
scheme 系はそれそのもので使うのはいいけど
組み込みだとシンタックスが違いすぎて違和感がある
0278デフォルトの名無しさん
2015/12/16(水) 17:57:57.55ID:Aaq31spz今や主力は完全にASP.NETに移ってるし
0279デフォルトの名無しさん
2015/12/16(水) 21:27:02.80ID:B4+Sd+fcいや、ドカタそんな権限は無かったな
失礼した
0280デフォルトの名無しさん
2015/12/16(水) 21:31:06.49ID:sgXyEvFIただの慣れと知識不足だな
素早く書きたければReSharperでもいれとけ
0281デフォルトの名無しさん
2015/12/16(水) 21:48:22.50ID:6hxUKU2IC#にも同等の構文を導入すべきだ
0282デフォルトの名無しさん
2015/12/16(水) 22:07:18.91ID:yEzHguVk0283デフォルトの名無しさん
2015/12/16(水) 22:15:49.12ID:D+5z8iwV0284デフォルトの名無しさん
2015/12/16(水) 22:46:15.22ID:GLEYjupTHandlesは参照検索に引っかからないのがちょっと不便
0285デフォルトの名無しさん
2015/12/17(木) 01:20:42.25ID:uAOfrDRi0286デフォルトの名無しさん
2015/12/17(木) 08:19:30.62ID:wWt+W3PIIT業界では開発の現場は最先端のプラクティスから10〜15年遅れるって研究がどっかにあった
varが推奨されだしてから何年たったかな
そのうち普及するでしょ
0287デフォルトの名無しさん
2015/12/17(木) 08:20:16.53ID:zuQvdIGpインテリセンスうんこ
0288デフォルトの名無しさん
2015/12/17(木) 08:36:44.13ID:IGH7+3HMWith 〜 End With も VB便利
0289デフォルトの名無しさん
2015/12/17(木) 09:12:26.24ID:wazgEvjtそもそも型の確認は、宣言見るか右の式見て確認するかなんだから、宣言も右見て確認するのは違和感ないし。
現場で使える自分は幸運か
0290デフォルトの名無しさん
2015/12/17(木) 09:44:23.39ID:RxywOKqdコード上じゃなく、プロパティで設定させればいいだろ
0291デフォルトの名無しさん
2015/12/17(木) 10:08:20.34ID:1RX3gDoP使ってみた人いる?
0292デフォルトの名無しさん
2015/12/17(木) 11:18:29.88ID:YaXbQbPq0293デフォルトの名無しさん
2015/12/17(木) 12:12:58.46ID:VaFnwyV1それはないわ
0294デフォルトの名無しさん
2015/12/17(木) 23:00:07.56ID:uAOfrDRiWithはコードを横長にしたくないときに
一時オブジェクト作らないで出来るからほかの言語にも入れてほしい
0295デフォルトの名無しさん
2015/12/17(木) 23:44:00.53ID:nE3SkfcGつまりお前はマイノリティ
0296デフォルトの名無しさん
2015/12/17(木) 23:45:34.55ID:wKzIyU7U0297デフォルトの名無しさん
2015/12/17(木) 23:48:28.58ID:dKLnlHXgあのノリは未だについていけない
0298デフォルトの名無しさん
2015/12/17(木) 23:49:49.06ID:S8YW+Ehfあとはセンスっていういやーな言葉になるが
0299デフォルトの名無しさん
2015/12/17(木) 23:51:46.87ID:i1r3U0+Uつってもメジャーなスクリプト言語にもwithなんか無いからな
JavaScriptにはあるけど完全に黒歴史扱いでほとんど使われてないし
0300デフォルトの名無しさん
2015/12/17(木) 23:55:41.04ID:8YX8F0Hjwithはインテントで頼む
0301デフォルトの名無しさん
2015/12/18(金) 00:17:25.15ID:GSoM/4PI> C++からの流れではあるが、際限なく長い名前が良しとされていたからな
なのにimportしまくって、どのオブジェクトの派生なのか分からなくなるんだよな
0302デフォルトの名無しさん
2015/12/18(金) 07:49:51.32ID:Pn8g8BvN0303デフォルトの名無しさん
2015/12/18(金) 09:42:03.30ID:sT9ZaHDR0304デフォルトの名無しさん
2015/12/18(金) 19:43:35.84ID:aPFZSVCFWebFormやると、コントロールのvisibleやenableみたいなプロパティを一つ一つ弄るのが面倒で
なるべくもModelをバインドするような作りにしようとしてますが、後々まずくなったりしますかね?
0305デフォルトの名無しさん
2015/12/18(金) 22:09:04.97ID:gk961EIG小粒なクラスを200万個近くインスタンス化するシチュエーションで途中でgc.collectが走ってしまい400msほどビクンビクンしてしまうんですが、俺がいいと言うまでgcするな命令みたいなものってあります?
0306デフォルトの名無しさん
2015/12/18(金) 22:19:36.70ID:4VAnTop2それでもなるのはしょうがないかも
0307デフォルトの名無しさん
2015/12/18(金) 22:30:19.05ID:gk961EIG試してみます!
0308デフォルトの名無しさん
2015/12/18(金) 22:37:13.38ID:bT2qV2qZ0309デフォルトの名無しさん
2015/12/18(金) 23:16:54.63ID:XVLPEWdshttp://hayabusa3.2ch.net/test/read.cgi/news/1450395043/
0310デフォルトの名無しさん
2015/12/18(金) 23:19:27.65ID:bkeqB6RS最初は勘弁してくれと思ってたけど、慣れると割と使いやすい
まあWindowsも使いやすいけど
Macが特別使いにくいってことはなかった
0311デフォルトの名無しさん
2015/12/19(土) 00:20:11.15ID:y4ZISOlF0312デフォルトの名無しさん
2015/12/19(土) 00:27:23.99ID:xp+k7OcH○ コピペマン
0313デフォルトの名無しさん
2015/12/21(月) 16:49:42.01ID:kS2EmNXf実際に自分で作ってると
複雑なモデルのバインドパターンとか色々でてきて、ネットにもあまり載ってないパターンもでてくるので...
0314デフォルトの名無しさん
2015/12/21(月) 16:55:44.27ID:U3hF6CjNRailsのOSSプロジェクトとか読めばいい
0315デフォルトの名無しさん
2015/12/21(月) 19:38:07.95ID:N+jvPVY9それはasp.net MVCですか?
MVCのアーキテクチャを勉強したいのではなくて、asp.net MVでつくられたシステムが見たいです。
サンプルに出てるのって、本当に単純なCRUDシステムしかなくて、困ってます
0316デフォルトの名無しさん
2015/12/21(月) 19:58:44.97ID:xw4vh+oLそのくせえ頭ごと腐り落ちて死ね
0317デフォルトの名無しさん
2015/12/21(月) 20:36:13.74ID:kS2EmNXfチンパンジーはお呼びでない
0318デフォルトの名無しさん
2015/12/21(月) 21:05:31.92ID:bPnNcr23いや、Webってマジでそれだけなんだよ
パラメータを元にDBへクエリ投げる→結果が返ってくる→結果を元に画面を作る
終わり
大きなシステムはただ単に画面の数やクエリの数が多いだけ
0319デフォルトの名無しさん
2015/12/21(月) 21:07:13.47ID:gVgBUI5g0320デフォルトの名無しさん
2015/12/21(月) 21:29:26.05ID:XlnWv6G/0321デフォルトの名無しさん
2015/12/21(月) 21:35:04.56ID:U3hF6CjNORMだのバインディングだのというのはユーティリティに過ぎない
そこを理解してないなら最初はNode.jsみたいなシンプルなのから入ったほうがいい
0322デフォルトの名無しさん
2015/12/21(月) 21:56:36.37ID:kS2EmNXf複雑なモデル構造のリストとかになると、TextForでなくTextBoxヘルパー使ってname属性にlist[0].のような文字列付けたりとか
そういうフレームワーク独自のものが色々あるでしょう
0323デフォルトの名無しさん
2015/12/21(月) 22:08:30.44ID:kS2EmNXfその、パラメーターを受け取るって一言で片付けてるけど
.net MVCなら
viewbagやtempdataやmodelがありますよね?
modelだって複雑な場合はカスタムバインダー使わないといけないし
0324デフォルトの名無しさん
2015/12/21(月) 22:08:34.68ID:AKR6rQ1bIPだけ理解してりゃいいってわけじゃないわな。
0325デフォルトの名無しさん
2015/12/21(月) 22:20:56.47ID:kS2EmNXfwebの仕組みが単純なのを分かってるからって.net MVCが分かるというわけにはならないでしょ?
webの仕組みを包み込んで、関心ごとの分離やテスタビリティを高めるためにフレームワークを使うのであって
そのフレームワーク自体のことを学ぶためには、本読んだり実際のコードを沢山読むじゃん。
MVCの概念を学ぶなら他のフレームワークでもいいけど、その先は独自のフレームワーク学ぶしかないでしょ。
0326デフォルトの名無しさん
2015/12/21(月) 22:21:29.08ID:LGmH8Vm30327デフォルトの名無しさん
2015/12/21(月) 22:33:39.02ID:u9+EAVY3MVC固有のことはこっちで訊いた方が良いのでは。
ASP.NET MVC
http://tamae.2ch.net/test/read.cgi/php/1331013877/
0328デフォルトの名無しさん
2015/12/21(月) 23:30:21.24ID:v4VU6uUx0329デフォルトの名無しさん
2015/12/22(火) 01:57:02.79ID:PrFisxRg若干スレ違いなここで訊いてもまともな返答は期待できないよ。
0330デフォルトの名無しさん
2015/12/22(火) 02:05:42.41ID:EpD71riO{
i++;
string url = "http://tamae.2ch.net/test/bbs.cgi?guid=ON";
System.Net.WebClient wc = new System.Net.WebClient();
wc.Headers.Add("Accept", "text/html, application/xhtml+xml");
wc.Headers.Add("Referer", "http://tamae.2ch.net/test/read.cgi/ana/1450521890/");
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);
}
0331デフォルトの名無しさん
2015/12/22(火) 02:07:07.58ID:EpD71riOレスポンスをコマンドラインに表示したいけど?とか・とかにしかならないんですけどなぜですか?
0332デフォルトの名無しさん
2015/12/22(火) 04:36:56.37ID:U2GagDf50333デフォルトの名無しさん
2015/12/22(火) 04:46:34.78ID:EpD71riOstring resText = System.Text.Encoding.GetEncoding("Shift-JIS").GetString(resData);
とところでconvertですか?
0334デフォルトの名無しさん
2015/12/23(水) 01:35:40.37ID:mLLLpett何か変なアップデートあったっけ?
これ、何をしてるんだろうな
0335デフォルトの名無しさん
2015/12/23(水) 11:18:14.36ID:Ouk9W9pKツール - オプション - デバッグ - 全般 の下の方にある
「デバッグ中に診断ツールを有効にします」のチェックの有無が影響するみたい。
診断ツールが何だかは知らない
0336デフォルトの名無しさん
2015/12/23(水) 11:19:46.70ID:Ouk9W9pK0337デフォルトの名無しさん
2015/12/23(水) 11:41:52.67ID:JaeaaX8T最適化はされてないしデバッグ情報はフルで付いてる
もちろんソースコードはビルドに使用したものと同じファイル
0338デフォルトの名無しさん
2015/12/23(水) 11:44:18.71ID:uP6j/Iq70339デフォルトの名無しさん
2015/12/23(水) 11:45:17.66ID:sUZCBNnf俺たちはお前のコードやプロジェクトの設定を知らないと何も解決できない
0340デフォルトの名無しさん
2015/12/23(水) 11:47:29.06ID:DcpaLEXp各種TimerやBackgoundworkerより、Taskとasynk/awaitがいいのかな?
0341デフォルトの名無しさん
2015/12/23(水) 12:43:20.12ID:9lRKIrWz0342デフォルトの名無しさん
2015/12/23(水) 12:47:01.78ID:ZolTmMoKSystem.Timers.Timerでいいよ
Taskは単発の処理に使うもので、Task使うならタイマから毎回起動させるのが筋
0343デフォルトの名無しさん
2015/12/23(水) 13:01:08.67ID:ZZxQfTixTaskCreationOptions.LongRunningってのもあるし、単発処理に限らないのでは。
このオプション指定するとスレッドプールとは別の専用スレッドが作成されるから、別スレッドを作ってるのと同じ。
0344デフォルトの名無しさん
2015/12/23(水) 13:39:15.27ID:ZZxQfTix.Net4.6からの機能だけど、GC.TryStartNoGCRegionとEndNoGCRegionは使えないかな
0345デフォルトの名無しさん
2015/12/23(水) 14:00:39.69ID:DcpaLEXpありがとうございます
System.Timers.Timerでキッチリ回して、
その中からTaskを使って別スレッドで動かすのが安定そうですね
>>343
LongRunningは知らなかったですが、こちらも使いこなせば安定して動きそうですね
勉強して比較してみます
0346デフォルトの名無しさん
2015/12/23(水) 17:59:55.08ID:+gIeTCQgメッセージを管理するMessageクラスはstaticで、インスタンス生成の時に外部リソースからメッセージリストを読み込む
みたいな作りって悪いでしょうか?
0347デフォルトの名無しさん
2015/12/23(水) 18:05:10.56ID:fiBTvI7Hそれともstatic constructorのことを指してるか?
0348デフォルトの名無しさん
2015/12/23(水) 18:17:23.15ID:+gIeTCQgstatic コンストラクタです。
間違えました
0349デフォルトの名無しさん
2015/12/23(水) 18:26:36.74ID:BrzFNCu80350デフォルトの名無しさん
2015/12/23(水) 18:40:10.66ID:YaELbVXU0351デフォルトの名無しさん
2015/12/23(水) 18:40:14.14ID:FrDQkBPX0352デフォルトの名無しさん
2015/12/23(水) 18:40:24.41ID:F7FK9/Ldxml ファイルを読み込んでパースまでしてしまう(もちろんファイルは close する)とか
メモリ圧迫を理由にするのは…… まあアプリケーションの仕様によると思う
0353デフォルトの名無しさん
2015/12/23(水) 19:05:42.55ID:BrzFNCu8サーバーでは避けたほうが良いね
0354デフォルトの名無しさん
2015/12/23(水) 21:38:31.09ID:+gIeTCQg0355デフォルトの名無しさん
2015/12/23(水) 22:04:33.08ID:w6yNQewcあえて自前で用意する必要があるの?
文字列ぐらいでメモリだのリソースだのっていつの時代だよw
80年代かよw
今は2015年だよw
0356デフォルトの名無しさん
2015/12/23(水) 22:11:50.15ID:fiBTvI7H0357デフォルトの名無しさん
2015/12/24(木) 02:05:35.25ID:ta6MMntY0358デフォルトの名無しさん
2015/12/24(木) 08:35:04.97ID:KQkP520X0359デフォルトの名無しさん
2015/12/24(木) 09:19:44.01ID:NEwYqcPU0360デフォルトの名無しさん
2015/12/24(木) 10:14:50.05ID:6sd2Vm8U0361デフォルトの名無しさん
2015/12/24(木) 10:56:47.42ID:844ZWqQO/// <summary>
/// テストフィールド
/// </summary>
private int tes;
と
/// <summary>テストフィールド</summary>
private int tes;
はどっちの書き方にするのがいいですか?
0362デフォルトの名無しさん
2015/12/24(木) 11:03:55.90ID:1wWNjS7AVSのデフォルトは上だから何も気にして無かったわ
下は2行書くとき面倒そう
0363デフォルトの名無しさん
2015/12/24(木) 11:24:50.32ID:844ZWqQOでも下の形式にするにはデフォルトからわざわざ形を変えないといけないので
正直、超面倒臭いです
0364デフォルトの名無しさん
2015/12/24(木) 11:49:07.88ID:gvn2o1E30365デフォルトの名無しさん
2015/12/24(木) 12:33:53.44ID:tTrPmLEb自分は上の書き方だなぁ
デフォルトだし
"コメントごときに"超めんどくさいことする必要ないんでない?
もし言ってる人が簡単にその書き方できる方法知ってるんだったら
教えてもらえば?
0366デフォルトの名無しさん
2015/12/24(木) 13:07:21.60ID:ZIvzfH3j0367デフォルトの名無しさん
2015/12/24(木) 14:45:51.48ID:OvoDVxQ7とは言えなかなかソレで押しきれない
0368デフォルトの名無しさん
2015/12/24(木) 14:57:09.77ID:dcUdhHTOvar helloMsgText = manager.GetTextHello();
みんな上のように書くけど別に下でよくね?
0369デフォルトの名無しさん
2015/12/24(木) 16:24:50.35ID:logTvbmn0370デフォルトの名無しさん
2015/12/24(木) 17:21:54.23ID:Y8pSRiNcILSpy
0371デフォルトの名無しさん
2015/12/24(木) 19:34:20.26ID:eIL8ov29リソースをJSONに変換して返すWebServiceを作って
ajaxでメッセージ取得して表示する感じでしょうか?
0372デフォルトの名無しさん
2015/12/24(木) 19:40:09.79ID:7/G2aj/P0373デフォルトの名無しさん
2015/12/24(木) 19:47:53.79ID:1wWNjS7AGetTextByeとかGetTextHogeとか増えていくの?
それはなんだか・・・
0374デフォルトの名無しさん
2015/12/24(木) 19:57:28.37ID:h3yCwgPmVSが自動生成するマネージドリソースにアクセスするコード(Properties)も>>368方式。
もっともあっちは静的クラスのプロパティだけど。
0375デフォルトの名無しさん
2015/12/24(木) 21:40:23.96ID:Y8pSRiNcクライアントを更新するときに一緒に更新すればいいだろ
それともお前のアプリはクライアントの機能の更新がないのにメッセージばかり頻繁に更新するトチ狂ったアプリなのか?
0376デフォルトの名無しさん
2015/12/24(木) 21:50:39.61ID:S0+P+Hy7特定の画面だけで使うメッセージを集めて一括管理って逆にわかりにくいだろ
ある画面で使うリソースを1つのまとまりで管理
別の画面で使うリソースはまた別のまとまりで管理
としたほうがわかりやすいし実行時のコスパも良い
0377デフォルトの名無しさん
2015/12/25(金) 00:49:48.26ID:Nwjnyecmとにかくメッセージは一括管理しろって要求みたいなんですよ。
クライアント側での入力チェック等のメッセージまで管理となると、どういう方法がよいのかと気になったので
0378デフォルトの名無しさん
2015/12/25(金) 01:00:42.04ID:wX928DHg0379デフォルトの名無しさん
2015/12/25(金) 01:02:54.78ID:Nwjnyecm0380デフォルトの名無しさん
2015/12/25(金) 01:19:15.30ID:GzgJ+pjK0381デフォルトの名無しさん
2015/12/25(金) 01:39:40.53ID:jYPgyGYg0382デフォルトの名無しさん
2015/12/25(金) 04:39:44.37ID:+55nFQ10「リファレンス(参照渡し)の引数を持つデリゲート」を引数とする、関数を作ろうとしています。
───────────────────
public void Hoge(Action<string, out string> funcA) {
string paramA = "auau";
funcA("hoge", paramA);
Debug.Log(paramA);
}
Hoge(
(param1, param2) => {
param2 = param1 + param2;
}
);
> paramA = hogeauau
───────────────────
こんな感じの事がしたいのですが、エラーとなってしまいます。
MSDNを見ると下記のような記載があるのですが、実現方法はないのでしょうか。
> ラムダ式は、外側のメソッドの ref パラメーターまたは out パラメーターを直接取り込むことはできません。
0383デフォルトの名無しさん
2015/12/25(金) 07:39:53.30ID:wX928DHgいや実引数やパラメータにout付けてないからエラーになってるだけだろ
MSDNのその記述は関係ないはず
0384デフォルトの名無しさん
2015/12/25(金) 08:23:39.99ID:G7nDvP8n一部置き換えすれば全体で使える。
クラス作った。
0385デフォルトの名無しさん
2015/12/25(金) 08:33:24.90ID:hK6V4eA3頭堅いんだあ
0386デフォルトの名無しさん
2015/12/25(金) 14:27:59.27ID:ojJ97SJRジェネリック型引数にrefや(参照渡しの意味での)outはつけられない。
そのためAction<T>が使えないので、delegate型自体を自分で定義する必要がある。
0387デフォルトの名無しさん
2015/12/25(金) 21:08:27.60ID:+55nFQ10遅くなりましたが、ありがとうございます!
以下で動くことが確認できました。
─────────
// デリゲート準備
public delegate void RequestCallback(string wwwText, out string resultJson);
public void RequestReal(string wwwText, out string resultJson)
{
resultJson = "{ \"content\" : \"" + wwwText + "\" }";
}
// 使用先関数
public void Hoge(RequestCallback funcA, out string outStr)
{
string apiResult = "seikou sita kigasuru";
funcA(apiResult, out outStr);
}
// 呼び出し
string result;
RequestCallback req = RequestReal;
Hoge(req, out result);
Debug.Log(result);
> { "content" : "seikou sita kigasuru" }
>
UnityEngine.Debug:Log(Object)
───────────────────
0388デフォルトの名無しさん
2015/12/25(金) 22:09:37.11ID:GzgJ+pjKこれ教えてください
0389デフォルトの名無しさん
2015/12/25(金) 22:32:21.16ID:wX928DHg言語仕様上は//がコメント始まり、3つ目の/はコメントの文字列
ただしC#の拡張仕様で///はXMLのマークアップをソース内に記述するのに使うことが推奨されている
https://msdn.microsoft.com/ja-jp/library/b2s063f7.aspx
0390デフォルトの名無しさん
2015/12/27(日) 09:53:45.68ID:guLL/9cN0391デフォルトの名無しさん
2015/12/27(日) 13:52:24.01ID:ELdsNW5n"DataSetはもう古い" みたいな言われ方するようですが、それなら何を覚えればいいでしょうか?
GUIとのバインディング(?)が目的です。
0392デフォルトの名無しさん
2015/12/27(日) 14:01:14.72ID:F6G0FzqO0393デフォルトの名無しさん
2015/12/27(日) 14:05:32.63ID:/kKhf1RBもう古いとかいうならクライアントアプリ自体もう古い
.NETでは主役はもうASP.NETにシフトしていて、.NET関連のあらゆる新技術はWebが中心になってるの
DataSetに代わるデータアクセス方法として今はEntity Frameworkがあるんだけど、
これは基本Web用でGUIにバインドしたりするのには向かない
>>390
そんなもん誰でもやってるから普通にググれ
0394デフォルトの名無しさん
2015/12/27(日) 14:11:35.14ID:fwIV4Uvoアーキテクチャ設計に失敗してなければどれ選んでもどんぐりの背比べだよ
0395デフォルトの名無しさん
2015/12/27(日) 14:48:38.55ID:isAqOdFeSQL Serverに100万件くらいINSERTの必要があって
パラレルForで4スレッドで回したらなぜか4倍以上の速度が出た。
ADO.NETのまとまった資料って2005の時のMS公式本くらいしかないのはなぜなんだ
0396デフォルトの名無しさん
2015/12/27(日) 15:23:48.57ID:Ps5R7yzw何でかって言ったら、RDBMSをアクセスするための薄いラッパーで
ADO.NET≒RDBMSみたいなものだから。
RDBMSが変わらないと、大きく異なるライブラリは出てこないかと。
0397デフォルトの名無しさん
2015/12/27(日) 16:42:00.30ID:TqZTceMPそれbulkcopyでいいんじゃ・・・100万回INSERTとかマルチスレッドでも限界あるで
0398デフォルトの名無しさん
2015/12/27(日) 18:55:52.38ID:qJI8FLco0399デフォルトの名無しさん
2015/12/28(月) 01:30:00.56ID:h/evoQDShttps://pbs.twimg.com/media/CXPrZVkUQAAZv_o.png
https://mobile.twitter.com/ProgrammingMono/status/681146790373007361
0400デフォルトの名無しさん
2015/12/28(月) 09:59:18.25ID:JJlxJ8520401デフォルトの名無しさん
2015/12/29(火) 04:40:34.90ID:2j1vpab9何が書いてあるのか意味がわかりません
読み始めていつ頃から脳に入ってきましたか
経験をお聞かせくさい
0402デフォルトの名無しさん
2015/12/29(火) 05:06:16.01ID:bJW4Eq7lC→VBA→VB→.NET→Javaの資格とる→
JSP&サーブレット→.NETに戻る
って来たから楽勝だった
0403デフォルトの名無しさん
2015/12/29(火) 07:14:16.16ID:XNVDRgDP0404デフォルトの名無しさん
2015/12/29(火) 07:23:58.55ID:wJImNd8eBASIC→C→VB→Perl、JS→Ruby→C#
BASICでは変数の扱いや基本的な命令覚えてって
Cではポインタやメモリ確保の壁にぶつかり
VBでオブジェクト指向とフォーム関連を覚え…
サンプルプログラムやりまくったりゲームプログラム打ち込んで改造したりしてたな
どれくらいかかったか覚えてないけど
0405デフォルトの名無しさん
2015/12/29(火) 08:45:37.22ID:kdwBJB680406デフォルトの名無しさん
2015/12/29(火) 09:45:07.31ID:xDYyv4wo最初はJavaから入ったほうが馴染みやすい
0407デフォルトの名無しさん
2015/12/29(火) 10:54:53.68ID:uIdyz590デリケートは関数ポインタに毛が生えたもの
0408デフォルトの名無しさん
2015/12/29(火) 10:55:56.03ID:sfUMzRql0409デフォルトの名無しさん
2015/12/29(火) 11:00:46.08ID:r/vj9keN0410デフォルトの名無しさん
2015/12/29(火) 11:02:47.97ID:FSVLMb4Lhttp://i.imgur.com/3T7yzEx.jpg
0411デフォルトの名無しさん
2015/12/29(火) 12:10:45.06ID:wlSqNWOm0412デフォルトの名無しさん
2015/12/29(火) 12:16:01.80ID:wlSqNWOmストラテジーパターンの省略形と認識したほうが良い
0413デフォルトの名無しさん
2015/12/29(火) 12:33:47.57ID:DwiC5QEnそれは意味論的な定義(それは何であるか?)と機能主義的な定義(それは何に使えるか?)を
混同してるだけ。
定規は背中を掻くのに使えるから孫の手だ、っていう考え方はどうかね。
0414デフォルトの名無しさん
2015/12/29(火) 12:58:20.29ID:xUCplUf3「関数オブジェクトはオブジェクト指向ではない」などと抜かす馬鹿も多かった
だからオブジェクト指向でその存在を正当化するために当初はインターフェイスを簡略化した概念として説明され、
名前も「委譲」というオブジェクト指向で馴染みのあるものになった
0415デフォルトの名無しさん
2015/12/29(火) 14:00:09.08ID:C/O8tL6vコードを読む前段階の、文法の入門書の学習はしんどかったけど
そのあとは、コードを読んで全く脳に入らないってことはあまりなかった
もちろん知らないことはググったりヘルプ見たりしたけど
0416デフォルトの名無しさん
2015/12/29(火) 14:30:22.86ID:+K3f7QC60417デフォルトの名無しさん
2015/12/29(火) 15:04:31.42ID:tZ7ULgVX理屈が込み入ってることをやるときは、自分で書いてみるのが一番。
その方が覚えるとかじゃなくて、自分で考えながら書いてみると、
暗算してたときには見過ごしてた理解不足な面がぼろぼろ見つかる。
0418デフォルトの名無しさん
2015/12/29(火) 17:53:08.89ID:AhKmKGiO0419デフォルトの名無しさん
2015/12/29(火) 18:29:58.49ID:6fhy+1hJデザインパターンよりも抽象度が高いんだよ
オブジェクト指向の言葉で言えばその名の通り「委譲」が一番正しい
0420デフォルトの名無しさん
2015/12/29(火) 18:31:35.62ID:EI7d6zEo> delegate は、指定されたメソッドまたは匿名メソッドをカプセル化するために使用される参照型です。
> デリゲートは C++ の関数ポインターに類似していますが、タイプ セーフであり、安全です。
つまり、デリゲートは型なんだね。
0421デフォルトの名無しさん
2015/12/29(火) 18:32:14.31ID:eW7HIrdiTemplateMethodをデリゲートで置き換えようとすると結構面倒なんだよな
0422デフォルトの名無しさん
2015/12/30(水) 03:45:30.77ID:A4v2uAzd簡単なコンソールアプリならコンパイルできてちゃんと動くんだがFormはWindowsの機能使ってるからダメってこと?
FormがないC#なんてピクルス抜きのハンバーガーだぜ
0423デフォルトの名無しさん
2015/12/30(水) 04:08:11.52ID:qUFxM6UkどのOSでも同じコードに拘るならJAVAでもやればいい
返ってC#の高機能さも分かるし
0424デフォルトの名無しさん
2015/12/30(水) 09:27:53.99ID:s3TIK8lI0425デフォルトの名無しさん
2015/12/30(水) 09:30:33.42ID:2ZE2aRQN「GUIは個別に作れ」が公式の方針らしい
0426デフォルトの名無しさん
2015/12/30(水) 09:51:04.00ID:Bj92UdRZunsafeコードとかPInvokeはダメだろうけど
DBアクセスとか問題ないのか
0427デフォルトの名無しさん
2015/12/30(水) 10:03:27.85ID:2ZE2aRQN最初からマルチプラットフォームを前提にして両方でテストしながら作っていれば一定の互換性はある
そうでないならまず無理
0428デフォルトの名無しさん
2015/12/30(水) 10:44:40.81ID:eaj6QvlR0429デフォルトの名無しさん
2015/12/31(木) 12:07:22.81ID:Qop6kv8X0430デフォルトの名無しさん
2016/01/02(土) 00:38:05.29ID:09vKdiwO0431デフォルトの名無しさん
2016/01/02(土) 00:58:39.00ID:1lIm0vu30432デフォルトの名無しさん
2016/01/02(土) 01:20:45.94ID:0SH4qGeB3Dは3軸だ
1軸の取り方が無数にあるのでは何とも表現できない
0433デフォルトの名無しさん
2016/01/02(土) 03:06:21.59ID:Bt0XQGx20434デフォルトの名無しさん
2016/01/02(土) 04:58:14.89ID:DiKFtfHdこれでも432の言うとおりyはどうすんだよって話になるが
ともかくもう少し質問内容をしっかり書いてほしいわな
0435デフォルトの名無しさん
2016/01/02(土) 05:46:53.74ID:nejI+NKJでも確かに情報が曖昧だw
0436デフォルトの名無しさん
2016/01/02(土) 09:46:53.33ID:Lc/ZqWliZ軸を回転軸としたロールだと解釈したがw
0437デフォルトの名無しさん
2016/01/02(土) 10:05:16.46ID:FffDLBdP足元を固定して倒れる表現をしたいのですが、身体の中心から回転してしまいます。
0438デフォルトの名無しさん
2016/01/02(土) 10:10:10.13ID:FffDLBdP0439デフォルトの名無しさん
2016/01/02(土) 11:39:44.08ID:3ogeHslP基本だ基本
0440デフォルトの名無しさん
2016/01/03(日) 01:06:33.23ID:buM4hFpe足を短くすればいいだろ
0441デフォルトの名無しさん
2016/01/03(日) 01:16:45.20ID:OtEZdr7j足元を中心に回転しろよ
0442デフォルトの名無しさん
2016/01/03(日) 10:11:03.01ID:JnVxwVfS0443デフォルトの名無しさん
2016/01/03(日) 21:08:52.46ID:bLJMdtU7やくに立たないくせに糞なのは迷惑でしかない
0444デフォルトの名無しさん
2016/01/04(月) 03:04:56.99ID:tYWpcH6nUnityやXamarin使わず(高いんで)にiOSアプリを書きたいんだけど、応用が効くなら参考にしたいな
0445デフォルトの名無しさん
2016/01/04(月) 03:34:59.07ID:Wj5XV3E6独自のC#コンパイラ実装してやってる
素人がやることじゃない
0446デフォルトの名無しさん
2016/01/04(月) 04:16:13.58ID:u97FRQbxmono
0447デフォルトの名無しさん
2016/01/04(月) 10:58:17.57ID:JagLoUWqPen pen = new Pen(Color.Red, 1);
Pen pen1 = new Pen(Color.Red, 1);
Pen pen2 = new Pen(Color.Red, 2);
pen = pen1;
// ここでpenを使う
pen = pen2;
// ここでpenを使う
// 解放
pen.Dispose();
pen1.Dispose();
pen2.Dispose();
ここでpenはnewしなくても
Pen pen;
だけでもでエラーになりません
newしないで使うのが正解なのかnewするのが当然なのかが分からないです
newしない場合はDispoaseも不要になりますか
不要になるのが当たり前と思うけどDispoaseしてもエラーにならないので
0448デフォルトの名無しさん
2016/01/04(月) 11:04:28.65ID:CbDgu8L2した時点で最初のpenはどっかいくだろ
そのうちガベコレで消えるだけ
そのDisposeはpen2に対して2回行ってるだけだな
0449デフォルトの名無しさん
2016/01/04(月) 11:23:53.54ID:F9X3XbcQusing を使って抜けなく解放されるようにして欲しい。
0450デフォルトの名無しさん
2016/01/04(月) 11:49:41.41ID:JagLoUWq> そのDisposeはpen2に対して2回行ってるだけだな
これはこれで問題ありですよね
> 上の言うとおりなんだけど、Dispose があるクラスなら
> using を使って抜けなく解放されるようにして欲しい。
参考にしてるdobonさんがそういう書き方なのでついつい
dobonさんの方はサンプルなのでそうしてることは理解してます
0451デフォルトの名無しさん
2016/01/04(月) 12:40:38.89ID:ggF79ROLpenならdisposeすらしなくてもGCされそうな気がする
0452デフォルトの名無しさん
2016/01/04(月) 14:11:16.31ID:fcRyHRgJusing ディレクティブのことじゃなくてusingステートメントのことかと
0453デフォルトの名無しさん
2016/01/04(月) 17:31:35.34ID:ubfZpLLmdobonはDisposeで書くんだよ
サンプルだからと書いてあるから勘違いするのはわかるけど
>>450
サンプルでもDisposeで書くメリットは一切ないからdobonがどうかしてるだけ
0454デフォルトの名無しさん
2016/01/04(月) 17:49:00.31ID:VyTgME1lVBにUsingがない時代のサンプルだからVBerに配慮してそう書いたか、まあそんなとこでしょ。
0455デフォルトの名無しさん
2016/01/04(月) 21:41:25.92ID:TKdGSRvjPrintDialogのマージンではめられたことがある
0456デフォルトの名無しさん
2016/01/05(火) 10:29:56.73ID:7uneSmZjusing (StreamWriter outfile = new StreamWriter("hoge.txt"))
{
await outfile.WriteAsync(data);
}
ってやれば手軽に出来るのかと思ってたけど
書き込み中プロセス終了したら途中でぶつ切りのファイルになったり
再入時にはロックしないといけなかったり結構面倒なのね
0457デフォルトの名無しさん
2016/01/05(火) 11:32:45.05ID:9P9OP9TUCancellationToken とかあるだろ。それで中断処理を入れて、どうしようもない時に仕方なくプロセスキルだろうに。
0458デフォルトの名無しさん
2016/01/05(火) 12:03:14.79ID:rShYuMI8ムチャクチャな
0459デフォルトの名無しさん
2016/01/05(火) 15:51:13.74ID:6f6Kf2/Kswitch(chartype) //キャラタイプ
case 1:
画像Aを設定
case 2:
画像Bを設定
case 3:
画像Cを設定
みたいなのを複数箇所書いてるんですが、今後キャラが増えるとこの分岐箇所
全部に手を入れないといけないわけですが、何かいい方法ありますか?
ストラテジーパターンとか使うんでしょうか?
0460デフォルトの名無しさん
2016/01/05(火) 15:53:50.23ID:ENhoHMkEもってるクラスはたくさんあると思うのですが、このFontプロパティ
ってなんなんでしょうか?
例えばlabel1.Font.FontFamlyとか書けると思うのですが、FontFamly
ってFontクラスのプロパティですよね?
なんでFontプロパティがFontクラスのプロパティを持ってるのかよくわから
ないのですが・・・
0461デフォルトの名無しさん
2016/01/05(火) 17:28:10.71ID:rShYuMI80462デフォルトの名無しさん
2016/01/05(火) 18:09:00.62ID:ANFnPmDl0463デフォルトの名無しさん
2016/01/05(火) 18:20:51.00ID:YO0Pj5qh状況がよくわからんけど、キャラにやらせたら
0464デフォルトの名無しさん
2016/01/05(火) 18:47:08.04ID:3DV+V0sTインターフェース定義して
SetImageとか実装したら?
でも、ポリモーフィズム使うと予期せぬとこで問題出たりするから、
switchもシンプルでいい方法だとは思うよ。
あと、Unityにおいては継承を多用するよりは、パラメータで管理した方が幸せになれる。
0465デフォルトの名無しさん
2016/01/05(火) 19:11:04.82ID:mStzs5Tnあるクラスを返すプロパティの名前は、そのクラス名と同じにする という作法
なのでFontプロパティはFontクラスを返す
Fontプロパティが返しているのはFontクラスだから、そこからはFontクラスとして使える
0466デフォルトの名無しさん
2016/01/06(水) 05:18:19.16ID:9EwLehjiレスありがとうございます
>>464
すみません、
>Unityにおいては継承を多用するよりは、パラメータで管理した方が幸せになれる
これもうちょっと具体的にお聞きしたいのですが、どういう意味でしょうか?
パラメータとはフィールドの事ですか?
0467デフォルトの名無しさん
2016/01/06(水) 11:09:52.27ID:wCEM/hYT最新のXamarinはC#からLLVM経由でネイティブコード
0468デフォルトの名無しさん
2016/01/06(水) 11:37:27.21ID:TgTP81o4ありがとうございます。
つまりクラスと同名のプロパティがあったらその
クラスと思っていいのですね。
0469デフォルトの名無しさん
2016/01/06(水) 13:11:37.93ID:/WM8ggC6おたくも>>465も混乱して何か変な勘違いしてるだけw
そんな作法なんか聞いたことないよw
0470デフォルトの名無しさん
2016/01/06(水) 15:37:31.87ID:lmDMYYEihttps://msdn.microsoft.com/ja-jp/library/cc433291(v=vs.71).aspx
自分が聞いたことがない≠存在しない
肝に命じておけ
0471デフォルトの名無しさん
2016/01/06(水) 18:45:22.41ID:8BJ4gk1j0472デフォルトの名無しさん
2016/01/06(水) 21:04:49.83ID:XWrepft2肝に命じておけ、だとさ。
それは当たり前のことが書いてあるだけ。
FontはFontに決まってるし、ColorはColorに決まってる、特に理由がなければあえて別の名前を付ける必要はない、ただそう言ってるだけ。
なんでそんな当たり前のことが書いてあるのか意図がよく分からないが。
馬鹿じゃないの。
0473デフォルトの名無しさん
2016/01/06(水) 21:15:48.25ID:Ph2iCp2lまあ面倒くさいのに巻き込まれたくないからどうでもいいや
0474デフォルトの名無しさん
2016/01/06(水) 21:19:25.05ID:XWrepft2違わない。
具体的に言うなら、>>465が言ってるような作法があるなら、UIのコントロールの大半のTextプロパティは
Stringになってないとおかしい。
0475デフォルトの名無しさん
2016/01/06(水) 21:53:35.59ID:cUB9w8BSFontって命名されてるだけだろ。
よく使うなら例外的にfでもかまわんよ。
開発速度を上げるために命名規則を共有するんだぞ?
0476デフォルトの名無しさん
2016/01/06(水) 22:13:40.67ID:uPkU6fswまるで古文単語と英単語と数学の定理を読まされているような感覚
0477デフォルトの名無しさん
2016/01/06(水) 22:37:42.32ID:vYy0/gWpstaticのメソッドって、どのようなメリットがあって
存在しているのでしょうか?
インスタンス化しなくて済む以上の理由が
あるのではと思うのですが、よろしくお願いします
0478デフォルトの名無しさん
2016/01/06(水) 22:46:45.66ID:jdU7mFUq異論は認める
0479デフォルトの名無しさん
2016/01/06(水) 23:11:17.10ID:SEgF84ggスッキリ分かるjava入門読んだらだいたい分かる
0480デフォルトの名無しさん
2016/01/06(水) 23:31:50.98ID:QGmDYJlmマーカー的な意味合いもある
クラス名が付くから、視認性もよくて、分類がよくわかる
0481デフォルトの名無しさん
2016/01/07(木) 00:14:36.90ID:h85vwdS0ufcpp.net
っていう一番分かりやすくそうな入門サイトを読んでるんですが、基礎の所からよく分かりません
プログラミング C#を知ってる人にしか分からない書き方のように思えるんですが、このサイトより分かりやすい、もっと「なぜこうなるのか、なぜこれじゃだめなのか」みたいなのを
説明してくれる本があれば教えてください
0482デフォルトの名無しさん
2016/01/07(木) 00:37:17.55ID:at5+d40J「なんでこうなるのか、なぜこれじゃだめなのか」についてはかなり詳しくてわかりやすい定番のやつ
http://www.atmarkit.co.jp/ait/subtop/features/dotnet/csharp_abc2_index.html
0483デフォルトの名無しさん
2016/01/07(木) 02:15:55.76ID:zpJ8fCsq人によってって
誰と誰?
0484デフォルトの名無しさん
2016/01/07(木) 02:18:29.07ID:zpJ8fCsq例えばどこで引っかかるの?
0485デフォルトの名無しさん
2016/01/07(木) 03:07:38.42ID:AvUDPpyf0486デフォルトの名無しさん
2016/01/07(木) 03:36:20.80ID:sBfaw+Jv0487デフォルトの名無しさん
2016/01/07(木) 08:20:12.50ID:WgDSnx84端末によって、というべきか
同じ2012を使ってるのにダイアログが違うんだよね
なんかの設定が足りないのかな?
https://lh3.googleusercontent.com/proxy/krCaN09KlW07Vtp-zZbOrbTIUAKK4QdvA-RUhe91GVgjLIS58C18ZnWoMS6kK6Nd_IM3jmSQ7BSxsLQXZBO0WjuNsIDUoralzNqE5V0_0Q=w433-h340-nc
https://lh6.googleusercontent.com/proxy/s8VOFq-cBZbQmUBk3ntUfonfmHJdmRHgvGcCdgtYCKDLtkLRVFsp0TD2k-BrJsqYRx-ufm14Ye4ZpAeNN9eDslwkjU5JngVaSiTYxESW5Bgw7dfCeg=w437-h337-nc
0488デフォルトの名無しさん
2016/01/07(木) 10:46:41.60ID:AmpDR1lN0489デフォルトの名無しさん
2016/01/07(木) 10:49:26.46ID:AmpDR1lN0490デフォルトの名無しさん
2016/01/07(木) 11:12:10.97ID:oYgL+fra俺はそこまでしなかったけど、javaの文法でダイアログ表示したり、コンソール、ファイルI/Oが何故出来るのか気になってたわ
0491デフォルトの名無しさん
2016/01/07(木) 14:07:33.85ID:C9YZL6QXそれからIPLのプログラムやマルチタスクモニタのプログラム追ったり石を直接制御したり
そういうのも結構楽しいものだよ
0492デフォルトの名無しさん
2016/01/07(木) 15:26:47.11ID:Tcm+Rgx7ゲーム内で特定のチャットコマンドを入力した際に別のMODを無効化するために
そのMODのパーミッションを消したいのです。
また、別のコマンドを入力した際に消したパーミッションを再度付与したいです。
どのように記述すればいいのかご教授願えませんでしょうか。
0493デフォルトの名無しさん
2016/01/07(木) 16:02:55.92ID:AmpDR1lN0494デフォルトの名無しさん
2016/01/07(木) 16:09:52.50ID:Tcm+Rgx7http://ideone.com/DcglwH
192行目のチャットコマンドの/arena joinを入力した時に、
別のMODを使用可能にするためのパーミッションであるteleportation.tprとteleportation.homeを削除し
/arena exitを入力した際に上記2つのパーミッションを再度付与したいのです。
0495デフォルトの名無しさん
2016/01/07(木) 16:17:13.29ID:oYgL+fra0496デフォルトの名無しさん
2016/01/07(木) 21:04:58.89ID:zpJ8fCsq比較してみたらわかるだろ
0497デフォルトの名無しさん
2016/01/07(木) 21:06:53.74ID:nXbcU6mx0498デフォルトの名無しさん
2016/01/07(木) 21:28:34.95ID:AvUDPpyf0499デフォルトの名無しさん
2016/01/07(木) 21:55:03.08ID:WqX4FtZ/何のゲームのmodだよ。
0500デフォルトの名無しさん
2016/01/07(木) 23:17:51.93ID:aNa897Rtvisual studio 2013でアプリを作ってるところで、
flowrayoutpanelのスクロールバーとマウスホイールを同期させるため、
以下のコードを参考にしたら動くようになりました。
private void Panel_Click(object sender, EventArgs e)
{
var panel = (FlowLayoutPanel)sender;
panel.Focus();
}
けれども、コード中の
0501デフォルトの名無しさん
2016/01/07(木) 23:19:21.51ID:aNa897Rtvisual studio 2013でアプリを作ってるところで、flowrayoutpanelのスクロールバーとマウスホイールを同期させるため、
以下のコードを参考にしたら動くようになりました。
private void Panel_Click(object sender, EventArgs e)
{
var panel = (FlowLayoutPanel)sender;
panel.Focus();
}
けれども、コード中の
"var panel = (FlowLayoutPanel)sender;"の部分が
何をやっているのかわかりません。
flowrayoutpanelにフォーカスするための準備ということはわかりましたが、
わかる方がいたら教えてください。よろしくお願いします。
0502デフォルトの名無しさん
2016/01/07(木) 23:28:34.43ID:AvUDPpyf0503デフォルトの名無しさん
2016/01/07(木) 23:30:19.83ID:aNa897Rtvisual studio 2013でアプリを作ってるところで、flowrayoutpanelのスクロールバーとマウスホイールを同期させるため、
以下のコードを参考にしたら動くようになりました。
private void Panel_Click(object sender, EventArgs e)
{
var panel = (FlowLayoutPanel)sender;
panel.Focus();
}
けれども、コード中の
"var panel = (FlowLayoutPanel)sender;"の部分が
何をやっているのかわかりません。
flowrayoutpanelにフォーカスするための準備ということはわかりましたが、
わかる方がいたら教えてください。よろしくお願いします。
0504デフォルトの名無しさん
2016/01/07(木) 23:31:21.59ID:aNa897Rtリロードしたら再書き込みされたみたいです…ごめんなさい
0505デフォルトの名無しさん
2016/01/07(木) 23:35:53.96ID:WqX4FtZ/objectの正体はlayoutですと指定している(キャスト)。
そうしないとlayoutとしてメンバーを扱えない。
基本的に同じインスタンスを扱うが、
float→intにキャストした場合とか値が変わるので注意が必要。
0506デフォルトの名無しさん
2016/01/07(木) 23:38:54.08ID:xReZbxBAvarを調べるつもりがなさそうだから軽く答えるけど
FlowLayoutPanel panel = (FlowLayoutPanel)sender
の意味よ
型をキャストしとるんよ
((FlowLayoutPanel)sender).Focus();
↑こう書いても同じ動作するけど
そうやってキャストしたのを一旦別の変数に持たせるのはよくあること
0507デフォルトの名無しさん
2016/01/07(木) 23:45:19.86ID:aNa897Rtああ、そうか。senderを型変換してるんですね
型変換というよりは型指定ってニュアンスの…
初心者向けの本じゃvarとかキャストを使うことがほとんどなかったので、
頭から抜け落ちてました…
ありがとうございます、理解できました。
0508デフォルトの名無しさん
2016/01/08(金) 05:26:15.42ID:C0M820FVvar panel = sender as FlowlayoutPanel
と書いた方が良い。
0509デフォルトの名無しさん
2016/01/08(金) 06:48:25.92ID:/YBx4YCU0510デフォルトの名無しさん
2016/01/08(金) 07:44:25.01ID:K8OImcU70511デフォルトの名無しさん
2016/01/08(金) 09:37:44.82ID:z/W2hw6Zasのが括弧少なくなっていいのよね…
本能レベルで()キャスト書いちゃうけど
0512デフォルトの名無しさん
2016/01/08(金) 10:29:08.26ID:oGkbrhN8両方を一度も比較してみたことはないw
0513デフォルトの名無しさん
2016/01/08(金) 11:33:49.87ID:Kn74uLBe!=null と Try{}catch{}じゃ雲泥の差
0514デフォルトの名無しさん
2016/01/08(金) 11:53:31.18ID:UaTuFyFJ馬鹿かこいつら
0515デフォルトの名無しさん
2016/01/08(金) 13:29:56.26ID:SPwv8IXVこのコードでファイルの種類を取得すると
ファイルフォルダー が イルフォルダーとか
IrfanView JPG File が nView JPG Fileとか
文字が切れるのですが何処がおかしいのでしょうか?
0516デフォルトの名無しさん
2016/01/08(金) 14:51:42.41ID:EVmIpiZQ何が良くなる?
0517デフォルトの名無しさん
2016/01/08(金) 14:52:36.86ID:EVmIpiZQ俺は見た目が悪いと思う
0518デフォルトの名無しさん
2016/01/08(金) 14:53:35.45ID:EVmIpiZQ変換失敗する事有るのか?
0519デフォルトの名無しさん
2016/01/08(金) 14:54:41.12ID:EVmIpiZQ作った奴に聞けよ
0520デフォルトの名無しさん
2016/01/08(金) 14:55:21.36ID:jv1GyZfRas使ったことまだ無い
0521デフォルトの名無しさん
2016/01/08(金) 15:04:00.28ID:9v7QtVbFSHFILEINFO構造体2番目のpublic IntPtr iIcon;の型は多分intが正解
MSのKB319350からして間違ってる
0522デフォルトの名無しさん
2016/01/08(金) 15:49:40.87ID:SPwv8IXVintに変えたらちゃんと表示されました。本当に感謝致します。ありがとうございました。
0523デフォルトの名無しさん
2016/01/09(土) 01:11:44.49ID:eXTQYEr70524デフォルトの名無しさん
2016/01/09(土) 01:18:17.70ID:fjSGmDWG0525デフォルトの名無しさん
2016/01/09(土) 01:44:07.56ID:/BDqjX/gxがHoge型であることを確信しているなら当然x as Hogeとした結果のnullチェックは行わないよな?
そのとき、もしバグでxがHoge型でなかったときには
xのメンバを使おうとした時点でヌルポが発生する。
これはキャストの瞬間InvalidCastExceptionで即死するのに比べると原因がわかりづらい。
(x as Hoge).Foo() のようにすぐ死亡してくれる場合はまだいいが、
結果を一旦フィールドに入れて後で使っていたりすると厄介。
0526525
2016/01/09(土) 01:47:16.65ID:/BDqjX/g(そいつもas厨仲間ならともかく)asでキャストしてたら
「これは失敗する可能性のあるキャストなんだな」と誤解する可能性が高い。
仕様の誤解はあらゆるバグの元だ。
0527デフォルトの名無しさん
2016/01/09(土) 01:55:26.70ID:d7OyTAQ00528デフォルトの名無しさん
2016/01/09(土) 02:18:34.33ID:RXN434tLC++を初めていじった時C#の型の少なさに感謝すべきだということに気がついた
0529デフォルトの名無しさん
2016/01/09(土) 02:42:58.16ID:fjSGmDWG0530デフォルトの名無しさん
2016/01/09(土) 06:53:51.72ID:ipKoJt7Z>型が確定してる場合にas使うのは誤解とバグの元
だなんて、ミスリードもいいとこ。
逆に InvalidCastでコケるようなコードの方が殺意沸く。
0531デフォルトの名無しさん
2016/01/09(土) 07:03:17.17ID:4yYuKqnIキャストが絶対に成功する場合を話してんのにキャスト失敗するコードが腹立つとかお門違いでしょ
0532デフォルトの名無しさん
2016/01/09(土) 07:15:36.45ID:1PcbP7SA>>529-530みたいな発想は出てこないと思うのだが
きっと彼らは最近までInvalidCastをキャッチするようなクソコードを書いていたか、
仕事でそういうクソコードに悩まされているんだろうな
0533デフォルトの名無しさん
2016/01/09(土) 09:42:44.41ID:RV595/l0一回だけ処理を行うというのと違いがわかりません
0534デフォルトの名無しさん
2016/01/09(土) 09:53:25.50ID:KRieFRf7人生に行き詰まって、失敗を永遠ループしていないかい?
視野を広げてごらん。
ほらすぐそこに抜け道があるんだよ。
0535デフォルトの名無しさん
2016/01/09(土) 09:54:45.10ID:8dWnCTXuBitmapオブジェクト自体画像を描けるものですよね
その中にGraphicsオブジェクトがあってそこにも画像を描ける?
概念が分かりません
0536デフォルトの名無しさん
2016/01/09(土) 10:30:38.60ID:rnbze7sittp://ufcpp.net/study/csharp/misc_as.html
によると、キャストのほうが僅かに早いみたいだけど変わったの?
まぁ、一割とか誤差レベルだけど
0537デフォルトの名無しさん
2016/01/09(土) 11:00:00.50ID:J5rs+efGそういうのを手段と目的の逆転ってんだよ
死んどけトンチキ
0538デフォルトの名無しさん
2016/01/09(土) 11:11:36.62ID:d7OyTAQ0この手の1割速いネタのせいで、未だにforeach使わずに頑なにfor使っている人が実在するから困る
0539デフォルトの名無しさん
2016/01/09(土) 11:24:22.86ID:/BDqjX/gBitmapは画像データ
Graphicsは描画命令を出すための操作パネル
Bitmapにつながっている操作パネルを使えば画像データへ描画できるし、
Formにつながっている操作パネルを使えば直接フォームへ描画できる
両方とも操作パネル自体は同じだから同じ操作で違うものへ描画できる
そういう意味ではGraphicsを独立したクラスにするんじゃなくてインターフェースとして
FormやBitmapに直接実装してもいいんだけど、それだと一つのクラスが大きくなりすぎるから分かれてるわけ
0540デフォルトの名無しさん
2016/01/09(土) 11:38:02.59ID:n8HSIjmOfor使いたいならCでも使えよとw
最大値設定しなくていいのに慣れちゃうとforは使う気しない
C#でfor使ってる奴は.NET分かってない奴
0541デフォルトの名無しさん
2016/01/09(土) 11:57:11.00ID:eXTQYEr7Select通すのは微妙だし、ForEachは標準に入ってないし
Ixが標準に入ることはないんだろうか…
0542デフォルトの名無しさん
2016/01/09(土) 12:36:29.73ID:y2qOksGBありがとうです
Graphicsが操作パネルだとすると
Bitmap bmp = new Bitmap(100, 100);
Graphics g = Graphics.FromImage(bmp);
とあった場合、
FromImage(bmp) というのは「bmpを読み込んで」じゃなくて
「bmpオブジェクトを操作するよ」ってことでしょうか
FromImage(bmp) を「bmpを読み込んで」と解釈してたので
BitmapオブジェクトにもGraphicsオブジェクトにも画像を
描けるという認識だったのですが
0543デフォルトの名無しさん
2016/01/09(土) 13:02:03.35ID:sj0zN9uOまあ要素置き換える場合にはfor使うしかないけどね。
>>542
内部実装はどうなってるか知らないけど、画像だろうがWindowの表面だろうがプリンタだろうが
統一的に描画するためのラッパーだと思っておけばいいと思うよ。
0544デフォルトの名無しさん
2016/01/09(土) 14:03:23.09ID:FulZHjyK10年前の記事を鵜呑みにするのは
烏賊がな物かと
0545デフォルトの名無しさん
2016/01/09(土) 14:24:55.99ID:UqTdOJvqList<T>の場合は内部実装が配列だから実際はforeachでも昇順になるとしても
全走査か順次処理かの意図を伝えるために使い分けるわ。
>>533
while(true) {
処理A
if XXX break;
処理B
if XXX break;
処理C
break;
}
後続処理
みたいに1回しか通らないけど中断してGOTO的に使ってるコードはたまにあるね
0546デフォルトの名無しさん
2016/01/09(土) 14:42:42.32ID:6gDXs0JP>foreachって順不同だよね?
何を馬鹿なこと言ってるんだお前は
0547デフォルトの名無しさん
2016/01/09(土) 14:47:49.69ID:+7ynE4D6配列の時は格納順ってイメージ
List型も格納順ってあるよね?
0548デフォルトの名無しさん
2016/01/09(土) 14:53:03.65ID:/zf3lzOM漏れの推測で書くけど、
メモリ上に、画像を作る
Bitmap bmp = new Bitmap(100, 100);
画像を、抽象的なデバイスで、扱えるように変換する(ラッパー)
Graphics g = Graphics.FromImage(bmp);
その後、実際のビデオカードか、
ディスプレイの規格にあった、GPUへ送られる
0549デフォルトの名無しさん
2016/01/09(土) 15:20:58.09ID:ghZcmnXD順不動もなにも辞書の順番て何だって話。
C#はどうかしらんが他の言語にはだいたsortedmapみたいな
何らかの並び順を保障した辞書がある
0550デフォルトの名無しさん
2016/01/09(土) 15:24:46.91ID:6gDXs0JP日本語が不自由な人?
0551デフォルトの名無しさん
2016/01/09(土) 15:26:40.04ID:ghZcmnXDいや、書いた瞬間それ言われるのは覚悟したから優しくスルーしてほしい
0552デフォルトの名無しさん
2016/01/09(土) 15:34:19.37ID:+7ynE4D6勉強になった(´・ω・`)
0553デフォルトの名無しさん
2016/01/09(土) 15:39:32.75ID:YRzABCdfそれ勘違いしてる恐れあり
Hashtable ←いわゆるhash
Dictionary ←Hashtableのジェネリック版
SortedDictionary ←キーに基づいて並べ替えられたDictionary
いちおう
0554デフォルトの名無しさん
2016/01/09(土) 15:49:40.27ID:+7ynE4D6別物なのね
じゃあやっぱりDictionaryをkeyでforeachしたら順不同か
0555デフォルトの名無しさん
2016/01/09(土) 15:58:41.79ID:aPlZ2XXYなってる保証はないはずだけど。
(現実にはインデックス順だろうけど、列挙子がそういう実装になってなくても文句は言えない)
それはコレクションの中で要素がどういう順番で並んでいるかとは別問題。
0556デフォルトの名無しさん
2016/01/09(土) 16:26:25.85ID:321rOZDzもっと言えば、IEnumeratorインターフェイス MoveNext()の実装による
というものだと思ってたんだけど。
認識合ってる?
0557デフォルトの名無しさん
2016/01/09(土) 16:44:34.30ID:+7ynE4D6sortするコストが必要かどうかって事だと思うから
ただのDictionaryの場合のイテレータの処理順序は保証されないってのが正解な気がする
0558デフォルトの名無しさん
2016/01/09(土) 17:06:55.86ID:eXTQYEr7なんでLinkedDictionaryって無いんだろうな…
0559デフォルトの名無しさん
2016/01/09(土) 18:01:24.62ID:weJV1QM8配列とかのGetEnumeratorは実装によって順番が定義されるから順不同じゃない
C#じゃなく日本語の問題だろ
0560デフォルトの名無しさん
2016/01/09(土) 18:09:52.56ID:J5rs+efG仕様に書いてあればそのように認識して良いし
書いてないなら変な前提を置くな
推測するのも止めろ
0561デフォルトの名無しさん
2016/01/09(土) 18:29:36.44ID:v8FL872Jどっちでもいいって感じですか?
使い分ける目安みたいなのがあれば、教えて下さい
0562デフォルトの名無しさん
2016/01/09(土) 18:41:50.87ID:d7OyTAQ0個人的には型とnull以外であることが保障されていてるオブジェクトならキャスト、それ以外はasとnullチェックや?? 演算子を1セットにしているわ
仕事なら上に聞けばいいし、個人の範疇なら好きにすればで
0563デフォルトの名無しさん
2016/01/09(土) 18:42:34.40ID:UqTdOJvq基本キャストに統一。InvalidCastExceptonは完成までに根絶する。
変換できないパターンを自分でハンドリングしたい場合だけas使用
0564デフォルトの名無しさん
2016/01/09(土) 18:46:02.38ID:AZkh53jv例外発生したら切腹しなければならないならキャスト
そうでないならas
目安じゃなくて
人に見せるコードなら守って
0565デフォルトの名無しさん
2016/01/09(土) 18:53:33.65ID:vv5IN0Y00566デフォルトの名無しさん
2016/01/09(土) 18:53:56.30ID:J5rs+efGas使いたいからasを使って、次の行にDebug.Assert置くみたいな、一般的でないことをすると
レビュー中に「何やってんだこいつ」と思わせるだけで時間の無駄だから
0567デフォルトの名無しさん
2016/01/09(土) 18:56:49.72ID:vv5IN0Y00568デフォルトの名無しさん
2016/01/09(土) 19:02:34.65ID:RV595/l0サンプルの少なさは俺にとって致命的だ
一旦諦めてCからやり直す
0569デフォルトの名無しさん
2016/01/09(土) 19:35:19.51ID:eXTQYEr7間違ったキャストだったら例外になるのが親切じゃね
型で処理を分ける場合のみ as
0570デフォルトの名無しさん
2016/01/09(土) 19:43:28.87ID:GQZs9W2l無暗に例外投げられても面倒な場合が多いからTry○○系のメソッドが
好まれるようになってる訳で。
0571デフォルトの名無しさん
2016/01/09(土) 19:44:36.57ID:eXTQYEr7キャスト間違いって明らかなバグじゃん
0572デフォルトの名無しさん
2016/01/09(土) 19:49:53.81ID:GQZs9W2l何が言いたいのかよく分からん。
デバッグと例外処理は本来まったく次元の違う別個の問題。
0573デフォルトの名無しさん
2016/01/09(土) 19:58:41.34ID:eXTQYEr7間違ったキャストなら、例外吐いてくれた方が親切
例えば>>503でButtonにキャストするコードを書いたらInvalidCastExceptonを期待するだろ
0574デフォルトの名無しさん
2016/01/09(土) 20:33:44.77ID:1IbXuGB2> 無暗に例外投げられても面倒な場合が多いからTry○○系のメソッドが
だからそれは、
> 処理を分ける場合
でしょ
0575デフォルトの名無しさん
2016/01/09(土) 20:56:31.33ID:GQZs9W2lそれはただのバグ。
デバッグと例外処理の区別がつかないって何なの。
>>574
いや意味が分からない。
0576デフォルトの名無しさん
2016/01/09(土) 21:13:42.13ID:J5rs+efGマヌケ
0577デフォルトの名無しさん
2016/01/09(土) 21:22:18.90ID:GQZs9W2l0578デフォルトの名無しさん
2016/01/09(土) 21:25:09.61ID:FulZHjyKサンプルなんて腐る程あるだろ
0579デフォルトの名無しさん
2016/01/09(土) 21:27:07.17ID:1IbXuGB2> いや意味が分からない。
マジで言ってるなら、マをやめた方がいい
0580デフォルトの名無しさん
2016/01/09(土) 21:32:23.08ID:GiqjJrGRTry○○系はキャストできたら処理A、できなければ処理Bを実行するというように処理を分けたい場合に使う。
>>573 が言っているのは、as を使ってコードを書いて
private void Panel_Click(object sender, EventArgs e)
{
var panel = sender as Button;
if (panel != null)
panel.Focus();
}
本来FlowLayoutPanelとすべきところを間違ってButtonと書いてしまった場合、
panel.Focus() が実行されていないことを見落とすかもしれないってこと。
as を使わずに
var panel = (Button)sender;
って書いてあればInvalidCastExceptonになるから間違いに気付ける。
0581デフォルトの名無しさん
2016/01/09(土) 21:33:13.42ID:GQZs9W2lお前がな。
TryXXXパターンのようにboolを返すのでなく例外を投げる仕様のメソッドを使った場合も
(通常は)例外をキャッチする箇所で例外の有無で処理を分けるんだけど分かってるのかね。
0582デフォルトの名無しさん
2016/01/09(土) 21:37:33.42ID:GQZs9W2lだから何度も言ってるように、デバッグと例外処理はまったく別問題。
バグが疑われる箇所は普通にAssertを使う。
バグを例外で検出できない恐れがあるからダメなんだ、なんて議論が通用するなら
TryXXXパターンも使うなという結論になる。
0583デフォルトの名無しさん
2016/01/09(土) 21:57:57.02ID:ElI3ItOe例外じゃなくお前の玉を握り潰すぞ。
0584デフォルトの名無しさん
2016/01/09(土) 22:32:08.15ID:N/cvH//+class Date
{
public int Month { get; private set; }
public int Day { get; private set; }
public void SetDate(int month, int day) { Month = month; Day = day; }
}
class Person
{
public Date Birthday { get; private set; }
public Person() { Birthday = new Date(); Birthday.SetDate(1, 9); }
}
Personクラスでは、Birthdayは外部から変更されたくなくて、参照だけを許可したいとします(※)。
このため、Birthdayのsetプロパティをprivateにしています。
しかし、Birthdayのgetプロパティが内部データへの参照を返すため、クラスを利用する側が
Person man = new Person();
man.Birthday.SetDate(12, 31);
とすれば、Birthdayを変更できてしまいます。
このような場合、(※)のような制約をつけたければ、どう書くのが普通なのでしょうか?
Birthdayのgetプロパティで、新しいDateのインスタンスを作って、コピーを返すべきなのでしょうか?
C++だと、
const Date& Birthday() { 略 }
と、Get関数の戻り値に const をつければ、内容を変更できない参照を返せるのですが…。
0585デフォルトの名無しさん
2016/01/09(土) 22:33:33.29ID:eXTQYEr7例えばDictionaryの"hoge"キーがあるのが分かっててTryGetValue使うか?
0586デフォルトの名無しさん
2016/01/09(土) 22:40:50.88ID:eXTQYEr7DateTimeじゃいかんのか?と思うけど、
Dateクラスのコンストラクタにmonthとday引数を用意する
0587デフォルトの名無しさん
2016/01/09(土) 22:41:56.27ID:y2qOksGBありがとうです
操作パネルと考えてもラッパーと考えてもいいですよね
bmpに直接点を打つことはできるけど、線を描くのは無理
その為にGraphicsオブジェクトに線を描く命令があるよ
って思えばいいのかな
FromImageの意味を考えてしまうから駄目みたい
でも考えてしまう
0588デフォルトの名無しさん
2016/01/09(土) 22:49:21.28ID:eXTQYEr7後、DateとPersonを、呼び出し元と別DLLにできるなら、SetDateメソッドをinternalにする手もある
0589デフォルトの名無しさん
2016/01/09(土) 23:06:48.44ID:N/cvH//+例で言えば、Dateクラスのコンストラクタにmonthとday引数を用意して、そもそもSetDateなんて作らなければ
いいじゃないか、と言われるかもしれませんが…。
Dateクラスは質問のために書いただけで、日付を扱うプログラムを実際に書きたいわけではありません。
質問の内容としては、
入門書には、「内部データを直接公開せずに、set/getプロパティ等を使って内部データを隠蔽しよう」
みたいなことが書かれているけど、getプロパティをprivateにしても、参照型の場合は内部データの参照を
返してしまうから、内部データ側のクラスに設定メソッドが公開されていれば、取得だけではなくて設定も
されてしまう。こういう場合、一般的に、どう書くのが普通なのかな?
ということなのです。
0590デフォルトの名無しさん
2016/01/09(土) 23:11:27.27ID:N/cvH//+×) getプロパティをprivateにしても、
○) setプロパティをprivateにしても、
です。
0591デフォルトの名無しさん
2016/01/09(土) 23:37:02.57ID:eXTQYEr7せいぜいできるのはDLL分離してinternalで隠す >>588
0592デフォルトの名無しさん
2016/01/09(土) 23:50:16.69ID:N/cvH//+フィールドがクラス型で、それを読み取り専用にしたいというのはよくあることのような気がするのですが、
単純にはできないんですね。
せっかくsetとかgetとかの仕組みがあるのに、意外と融通が利かないものなんですね。
どうもありがとうございました!
0593デフォルトの名無しさん
2016/01/10(日) 00:18:42.60ID:2fzuCWWoもともとのお話は失敗する可能性のない物にTryXXXパターン使うな
失敗する可能性があるように見えるって話でしてね
小学校からやり直してきてね
あと、よく分かりもしないのに大人の話に口を挟まないように
0594デフォルトの名無しさん
2016/01/10(日) 00:23:52.70ID:4UItudR1馬鹿だろお前。
どこにそんなことが書いてあるのか言ってみろ。
0595デフォルトの名無しさん
2016/01/10(日) 01:04:47.28ID:hZikTLMsそれバグ隠蔽っていうんだぞ。
asはキャスト失敗を許容する時に使うもんなんだから、こっちの方がスマートとかそういう話じゃないんだが。
まず、例の箇所は必ずキャスト成功させる場面なんだから文句あるなら例文を変えろよ
0596デフォルトの名無しさん
2016/01/10(日) 01:08:07.66ID:7SYpesUH0597デフォルトの名無しさん
2016/01/10(日) 01:40:47.71ID:G9FCRkLf0598デフォルトの名無しさん
2016/01/10(日) 01:58:46.07ID:ZmHi4ONW要素置き換える場合でも、魔法の合言葉ToArray()を唱えれば大丈夫じゃん
forをつかうのは、処理にi自体を使う場合だけかな?
0599デフォルトの名無しさん
2016/01/10(日) 03:00:36.73ID:9aNZGNbQ何を言ってるのか全然分からないけど、キャストよりas、例外を投げるメソッドよりTryXXXが好まれるのは、
処理の成否だけ分かれば十分でなケースの方が圧倒的に多く、例外を捕まえて詳細な情報が必用な
ケースなんかむしろあんまりないからだ。
>>598
ToArrayなんか使ってもforeachで要素の置き換えなんかできないと思うけど
0600ネットワークエンジニア(プロ)です
2016/01/10(日) 07:16:09.54ID:IGqj8XoF例外の警告ってなんのために出すと思う?
例外だからだよwww
0601デフォルトの名無しさん
2016/01/10(日) 07:21:13.55ID:XSe/Cltbあんまりないは全くないと非なるものだよ
自分で言ってて妙に感じないのww
0602デフォルトの名無しさん
2016/01/10(日) 07:57:59.45ID:3SBznyor破壊的に変更したいって場合が結構あるからね
0603デフォルトの名無しさん
2016/01/10(日) 08:06:36.61ID:ZmHi4ONWforeach(var x in hoge.ToArray())
{
0604デフォルトの名無しさん
2016/01/10(日) 08:08:31.73ID:ZmHi4ONW>>599
foreach(var x in hoge.ToArray())
hoge.Remove(x);
はエラー無く実行できますよ
0605デフォルトの名無しさん
2016/01/10(日) 09:07:42.53ID:mRELau7Eアホが1名ゴネてるだけ
0606デフォルトの名無しさん
2016/01/10(日) 10:29:56.90ID:5YyabK/90607デフォルトの名無しさん
2016/01/10(日) 12:21:10.40ID:HI8AxqBs>>604
んな簡単なことに気付かなかったんだと自覚させちまうと
マウント取るために清水亮並みに絡んでくるぞ
0608デフォルトの名無しさん
2016/01/10(日) 12:39:14.45ID:Cij84z8x>>607
それは「置き換え」じゃなくて「削除」。
0609デフォルトの名無しさん
2016/01/10(日) 12:40:47.28ID:Cij84z8x0610デフォルトの名無しさん
2016/01/10(日) 13:13:32.00ID:ZmHi4ONW置き換えって削除と挿入だろ?順番変えるだけならLinqを使うのが常套手段だし一体どんなものを想定しているの?
0611デフォルトの名無しさん
2016/01/10(日) 13:25:20.59ID:JeKaLAZ3それでも正しいと確信できるなら納得させるだけの説明と根拠を示せないと
ただ単に言い負かせたいだけの自己中で自己満足したいという、程度の低い人物になってしまう
0612デフォルトの名無しさん
2016/01/10(日) 14:37:24.71ID:lZOXy80Pしかし一方で、議論が盛り上がるほど「誤解される」という最大の問題の裏付けになっていることにas君は気付いてないのかな
正しい正しくないじゃなくて、これは作法の問題なんだよ
共通認識があることに意味があるの
0613デフォルトの名無しさん
2016/01/10(日) 14:56:43.57ID:HvvrKc9L今日はこのぐらいで勘弁しといたるワ、と言ってるようにしか聞こえない。
しかし、こういう連中って自分の言葉を自分自身にまず適用するだけの知恵もないのか。
重症だな。
0614デフォルトの名無しさん
2016/01/10(日) 15:11:50.64ID:G9FCRkLf0615デフォルトの名無しさん
2016/01/10(日) 15:16:09.85ID:HvvrKc9L食って掛かってくるんだから泣けてくるよな。
0616デフォルトの名無しさん
2016/01/10(日) 15:49:44.82ID:vHEBiB0A0617デフォルトの名無しさん
2016/01/10(日) 15:51:15.54ID:Q6iPmnC+0618デフォルトの名無しさん
2016/01/10(日) 16:21:33.83ID:U57x58WF置き換えってインデクサのセットじゃないの?
破壊的変更って奴
as君はこの辺りでも読んどけ
https://blogs.msdn.microsoft.com/ericlippert/2009/10/08/whats-the-difference-between-as-and-cast-operators/
http://stackoverflow.com/questions/132445/direct-casting-vs-as-operator
0619デフォルトの名無しさん
2016/01/10(日) 16:22:26.11ID:2fzuCWWo0620デフォルトの名無しさん
2016/01/10(日) 16:47:26.66ID:FWhWg0iK無駄話を連鎖あぼーんできれば便利だろ。
0622デフォルトの名無しさん
2016/01/10(日) 17:12:48.82ID:FWhWg0iK0623デフォルトの名無しさん
2016/01/10(日) 17:20:15.29ID:sEmozDXF結論を教えろよ
0624デフォルトの名無しさん
2016/01/10(日) 17:54:47.93ID:1UfP7RSB0625デフォルトの名無しさん
2016/01/10(日) 18:09:53.43ID:5YyabK/9本屋にもゴミしか無かった
0626デフォルトの名無しさん
2016/01/10(日) 18:20:49.80ID:ZmHi4ONW上のやつ
例えばどんなケースで問題になるのですか?通常はToArrayやっちまった後なら、ループ内でコレクションをどう弄ろうがエラーにならないはずだが
気になるのでコード書いてくれませんか?
0627デフォルトの名無しさん
2016/01/10(日) 18:30:07.87ID:vO5UEyhNここの人たちにゴミじゃない教科書が書けると思っているのですか?
0628デフォルトの名無しさん
2016/01/10(日) 18:56:26.74ID:U57x58WF>>543じゃないから正確なことは分からないけど
values[i] = value
が置き換えじゃないのってだけ
0629デフォルトの名無しさん
2016/01/10(日) 19:37:43.36ID:yMwz0uOc子コントロールのリネームを楽にする方法があれば教えてほしいです
Tabpage1
tabpage1_label1
tabpage1_label2
tabpage1_label3
をコピーすると
Tabpage2
label4
label5
label6
このlabel4,5,6をtab2_tabpage1_label1のような形で複製したいです
0630デフォルトの名無しさん
2016/01/10(日) 21:25:14.39ID:ZmHi4ONWそれだとシーケンスは壊さないからToArrayなしのforeachでもエラーにならんよね
0631デフォルトの名無しさん
2016/01/10(日) 21:50:29.99ID:lZOXy80P考え方がおかしい
同じならユーザーコントロールにしたらリネームなんかいらない
0632デフォルトの名無しさん
2016/01/10(日) 23:45:47.54ID:srmp5NkDまだ懲りずに「今日はこのぐらいで勘弁しといてやるワ」か。
0633デフォルトの名無しさん
2016/01/10(日) 23:54:41.01ID:5YyabK/9は5章で詰んだ
死ね猫
0634デフォルトの名無しさん
2016/01/10(日) 23:56:51.45ID:5YyabK/90635629
2016/01/10(日) 23:59:26.28ID:2wOOq237Windowsフォームである程度作ってしまったのですが、Tab以下のユーザーコントロール化ってできたりしませんか…
オブジェクト数が100超えてるので1から作り直すのは辛いです…
0636デフォルトの名無しさん
2016/01/11(月) 00:00:56.67ID:I2wHpsxZチェッカーズの歌詞みたいなやつだなお前。
その異常地味た攻撃性向って生まれつき?
0637デフォルトの名無しさん
2016/01/11(月) 00:07:15.15ID:gm1WMBnHだからどういう自己中心性だよ。
お前の世界では他人に幼稚なレッテルを張って上から目線で命令を下すのは攻撃的じゃないのか馬鹿。>>618
ほんっと重症だな。
こっから先は完全に余談だけど、こういう馬鹿がマ板くんだりで自分の無能を棚上げして
ブラック企業被害妄想に浸ってるんだろうね。
ゆとり教育の成果なのか少子化で一人っ子が増えてるせいか知らんけど、
生まれながらに自分だけが特別扱いされる特権を持ってると勘違いしてる馬鹿が
今世紀に入って確実に増えてる。
0638デフォルトの名無しさん
2016/01/11(月) 00:13:00.17ID:gm1WMBnHTab以下っていうのが何のことを言ってるのか良く分からないけど、
単純に作ったユーザーコートロールをTabPageに貼るだけ。
そもそもユーザーコントロール化が可能かどうか要件が分からないから何ともいえないけど。
0639デフォルトの名無しさん
2016/01/11(月) 00:36:17.86ID:UeX+hyF3お前ほんとに>>618読んだ?
それとも転載してあげた方がいい?
And finally, of course the use cases of the two operators are superficially similar, but semantically quite different.
A cast communicates to the reader “I am certain that this conversion is legal and I am willing to take a runtime exception if I’m wrong”.
The “as” operator communicates “I don’t know if this conversion is legal or not; we’re going to give it a try and see how it goes”.
0640デフォルトの名無しさん
2016/01/11(月) 00:48:06.28ID:gm1WMBnHだから何?としか言いようがない。>>599
それで鬼の首でも取ったような気になれる感覚が理解に苦しむ。
0641デフォルトの名無しさん
2016/01/11(月) 00:52:53.12ID:50Ta3fhs0642デフォルトの名無しさん
2016/01/11(月) 00:57:46.87ID:MPguxAcmうらやましいわ
0643デフォルトの名無しさん
2016/01/11(月) 00:59:31.22ID:FmNI4iA+馬鹿じゃねーの。
0644デフォルトの名無しさん
2016/01/11(月) 01:02:11.73ID:gm1WMBnHキャストが使ったプログラマが必ずしも仕様上常に正しい変換が行われることを意図しているとは限らないし、
(不適切な変換が行われて例外が投げられる場合もありうる仕様かもしれない)
asを使ったからってその逆とも限らない。
0645デフォルトの名無しさん
2016/01/11(月) 01:11:48.08ID:JvrlUDJ80646デフォルトの名無しさん
2016/01/11(月) 01:13:42.52ID:JvrlUDJ8毛の壁に匹敵するわ
0647デフォルトの名無しさん
2016/01/11(月) 02:53:52.16ID:dvaW+Y9E論理をすりかえるなよ
意図した型じゃなかった時に次の行に進んで良いかどうかだ
0648デフォルトの名無しさん
2016/01/11(月) 08:14:31.32ID:cVa7oOJ2そんなこと書いてない。
馬鹿じゃないのか
0649デフォルトの名無しさん
2016/01/11(月) 08:15:27.33ID:cVa7oOJ2本気で思ってるなら酷い馬鹿だ。
0650デフォルトの名無しさん
2016/01/11(月) 08:21:44.29ID:cVa7oOJ2デバッグと例外処理の区別がついてないからこういう頓珍漢なこと言うんだろうね。
「バグがあっても検出できないじゃないか!!!」ってそれは例外処理じゃなくてデバッグしろよって。
まあ恐らく言っても分からない。
0651デフォルトの名無しさん
2016/01/11(月) 08:32:48.19ID:gUndm2esバグを検出したからデバッグするんだろ
0652デフォルトの名無しさん
2016/01/11(月) 10:12:59.68ID:vXiBlDdD0653デフォルトの名無しさん
2016/01/11(月) 10:48:12.65ID:D1R/kCSG0654デフォルトの名無しさん
2016/01/11(月) 10:56:55.03ID:D1R/kCSGすでに感染して流せなくなっちゃった奴はともかく
そうじゃない奴は迂闊に近寄っちゃ駄目
感染っちゃうよ
0655デフォルトの名無しさん
2016/01/11(月) 11:13:41.89ID:D1R/kCSG・「馬鹿」もしくは「幼稚」をほとんどのレスに含む
・「>>>数字みたいな」の安価を含む
・句読点は入れる派だけど完璧じゃない
が特徴なので分かりやすいはずです
ちなみに222も同じ人です(4回連続で馬鹿って書いてますね)
0656デフォルトの名無しさん
2016/01/11(月) 14:00:12.87ID:LfDMv3TV0657デフォルトの名無しさん
2016/01/11(月) 18:46:35.40ID:U/eWhfN7君はテスト実施しないのかなw?
テスト済みならデバッグコードを組み込む必要はないんだけとw?
0658デフォルトの名無しさん
2016/01/11(月) 18:52:52.19ID:U/eWhfN7そういう状況なら納得ですね。
0659デフォルトの名無しさん
2016/01/11(月) 21:33:20.63ID:Dzm9rVm2馬鹿もこもまでくるとすがすがしいね。
どこにデバッグコードを組み込めなんて書いてある。
むしろそんなことをするなと言ってるんだけど。
0660デフォルトの名無しさん
2016/01/11(月) 21:47:39.23ID:Dzm9rVm2こんな幼稚なレスで勝ったつもりになれる奴って哀れだね。人間として終わってる。
こちらはちゃんとなぜasの方が使い勝手がよいか理由付きで書いてるのに、
噛みついてる奴は幼稚な人格攻撃かデバッグ段階で排除すべき可能性を例外で
検出しろとかいう類のよく分からない話しか出てこない。
あとは>>580ぐらいだけど、これもかなり無理がある。
0661デフォルトの名無しさん
2016/01/11(月) 21:48:16.78ID:Dzm9rVm20662デフォルトの名無しさん
2016/01/11(月) 22:03:09.58ID:Dzm9rVm2凄い自己中心性だなw
ポジティブ思考と言えば聞こえが良いけどただの恥知らず。
0663デフォルトの名無しさん
2016/01/11(月) 23:39:23.51ID:EnmyN0sRでも完全に自分で蒔いた種だよね
0664デフォルトの名無しさん
2016/01/12(火) 00:24:36.31ID:8YRirrTO今後間違ったコード追加したらエラー発生しないから、間違っていることにすら気づけないじゃん。
ところで、foreachにT[]の配列渡すとT型のitemを回せるけど、
T[].GetEnumrator()するとノンジェネリックのEnumratorが返るのはなぜ?
IEnumrable<T>が明示的宣言されているの?
0665デフォルトの名無しさん
2016/01/12(火) 01:14:45.93ID:7RSj72FG荒れるような質問失礼しました
0666デフォルトの名無しさん
2016/01/12(火) 01:21:47.13ID:xcvGIOveもっと単純で効率的なILに展開されるようになっとるで
0667デフォルトの名無しさん
2016/01/12(火) 01:31:12.25ID:Cs06pQDp> the System.Collections.Generic.IList<T>, System.Collections.Generic.ICollection<T>,
> and System.Collections.Generic.IEnumerable<T> generic interfaces.
> The implementations are provided to arrays at run time, and as a result,
> the generic interfaces do not appear in the declaration syntax for the Array class.
> In addition, there are no reference topics for interface members
> that are accessible only by casting an array to the generic interface type
> (explicit interface implementations).
0668デフォルトの名無しさん
2016/01/12(火) 01:32:50.51ID:8YRirrTOだけど、疑問はGetEnumrator<T>が実装されてないのか。
パフォーマンス的な問題??
0669デフォルトの名無しさん
2016/01/12(火) 01:35:39.33ID:8YRirrTOありがとう。
なぜ明示的なんだろう・・・?
0670デフォルトの名無しさん
2016/01/12(火) 01:38:39.32ID:rxS/9o6Uその「配列とGetEnumratorとジェネリックの謎」はみんなが通る道と思う
んで調べまわった挙句
https://msdn.microsoft.com/en-us/library/czz5hkty
にコソーっと一文書いてあるだけという
俺も毎回これ忘れた頃に調べなおしてる
0671デフォルトの名無しさん
2016/01/12(火) 01:48:37.39ID:8rTTpObLインデックスアクセスが必要ならIList<T>になるのが微妙だけど
0672デフォルトの名無しさん
2016/01/12(火) 02:00:27.12ID:iDDwmGx/IEnumerator e = array.GetEnumerator();
使うときは、(型名)e とキャストすれば、
T型しか入っていないから安全
0673デフォルトの名無しさん
2016/01/12(火) 02:35:52.19ID:tu2jRtpsだからバグってのはデバッグ作業で洗い出すものであって例外で検出するものじゃない。
バグが残ってた場合でも安全側に倒せるとか言いたいのかもしれないが、普通asやキャストを使う目的は
変換後のオブジェクトを操作するためなんだから、asを使ったところでその段階で例外が起こるんだから同じこと。
0674デフォルトの名無しさん
2016/01/12(火) 04:03:23.28ID:vzKvvw6Wデバッグで潰すんだからいいよな。
0675デフォルトの名無しさん
2016/01/12(火) 08:00:08.31ID:8rTTpObL() でキャスト失敗 → そこで InvalidCastExcepton
どっちがバグが分かり易い?
0676デフォルトの名無しさん
2016/01/12(火) 08:24:17.06ID:EEhodjTqどっちも同じ。
どちらの例外もなぜその例外が発生したかの情報は何も与えてくれない。
バグは変換そのものではなく、返還対象の変数にオブジェクトが格納される箇所にあるのだから当たり前だ。
0677デフォルトの名無しさん
2016/01/12(火) 08:31:04.57ID:EEhodjTqTryXXXパターンについても同様でなければならない。
例外投げるメソッドよりTryXXXを好んで使うけどasはダメ、なんて態度は頭の悪い論理矛盾でしかない。
0678デフォルトの名無しさん
2016/01/12(火) 09:02:58.57ID:8rTTpObLInvalidCastExceptonてだけでキャスト失敗したんだって一目で分からない?
Dictionaryの値取得も全部TryGetValue使うの?
凄いソースになりそう…
0679デフォルトの名無しさん
2016/01/12(火) 09:39:04.39ID:8YRirrTOバグ出さない人がなぜデバッグしてるのか不思議w
0680デフォルトの名無しさん
2016/01/12(火) 11:15:58.30ID:sWEOWf3Zまあ記録は残せるようにした方がいいけど放置でも問題ない場合も少なくない
0681デフォルトの名無しさん
2016/01/12(火) 16:50:04.88ID:4jtZl+9Xデバッグってのは、バグが出てから修正する作業の事を言うんじゃないのか?
バグが無いかチェックするのはテストだろ
0682デフォルトの名無しさん
2016/01/12(火) 19:58:37.10ID:KW/Xw3D4ソフトによるとしか言えんわな
かね扱うソフトでテキトーな結果出されても困るし
>>681
言葉遊びしたいなら、チラシの裏にでも書いとけよ…
0683デフォルトの名無しさん
2016/01/12(火) 20:22:54.77ID:jfJr9zebお前らは人間初心者をいつ卒業すんの?
0684デフォルトの名無しさん
2016/01/12(火) 22:10:08.21ID:MMw4PyB+0685デフォルトの名無しさん
2016/01/12(火) 23:11:14.34ID:nYMhZmRIint[] a = {0,1,2,3};
int[] b = new int {0,1,2,3};
の違いって何ですか?
0686デフォルトの名無しさん
2016/01/12(火) 23:35:20.63ID:NzXAV9Z/下の右辺はそれ単体で新しい配列を作って初期化する式で、その結果をbに代入している
右辺のintを省略したいなら上の書き方はやめて int[] c = new[] {0, 1, 2, 3}; とするのが今風
この場合もnew[] {0, 1, 2, 3}で一つの式になる
0687デフォルトの名無しさん
2016/01/12(火) 23:38:48.58ID:guZomEnPint[] b = new int[] {0,1,2,3};
が正しいな
0688デフォルトの名無しさん
2016/01/12(火) 23:50:25.04ID:nYMhZmRIありがとうございました!
newするときintを省略することもできるんですね。
bの表記は間違っていましたね。すみません。
0689デフォルトの名無しさん
2016/01/12(火) 23:54:15.55ID:8rTTpObLvar a = new[] {1, 2, 3};
0690デフォルトの名無しさん
2016/01/13(水) 21:08:40.32ID:0D7P8fwj改行が多すぎて書き込めないので、分割をしつつ改行を縮尺しているソースです。
お見苦しい中、お答えできる方がいましたらよろしくお願い致します。
0691デフォルトの名無しさん
2016/01/13(水) 21:09:04.75ID:0D7P8fwjnamespace ConsoleApplication2
{class Program
{static void Main(string[] args)
{
Recurrence x = new Recurrence { Depth = 8 };
x.Excute();
Console.ReadLine();
}}
class Recurrence{
public int Depth { get; set; }
public void Excute() { Stack(0); }
private void Stack(int value)
{
++value;
Show(value);
if (value < Depth) Stack(value);
Show(value);
}
private void Show(int value)
{
for (int i = 0; i < value; ++i)
{
Console.Write("〇");
}
Console.WriteLine();
}}}
0692デフォルトの名無しさん
2016/01/13(水) 21:10:16.17ID:0D7P8fwj--------------------------------------
○
○○
○○○
○○○○
○○○○○
○○○○○○
○○○○○○○
○○○○○○○○
○○○○○○○○
○○○○○○○
○○○○○○
○○○○○
○○○○
○○○
○○
○
連投すみません。再帰でStackメソッドを呼び出して"○"を描画していますが、
実行結果の○が段々減っていく理由が分かりません。
デクリメントされているコードは何もないのに、どうして"○"が減っていく描画ができるのでしょうか?
"○"を8個描画した時点でプログラムは終了しそうな気もします。
0693デフォルトの名無しさん
2016/01/13(水) 21:10:49.48ID:ss4YLmpA>>1にソースコード貼るサイトあるよ
0694デフォルトの名無しさん
2016/01/13(水) 21:18:54.54ID:0D7P8fwjありがとうございます。
あんまり使い方分からないのですが、URL作成できました!
http://ideone.com/Wa2rX3
0695デフォルトの名無しさん
2016/01/13(水) 21:20:51.41ID:eQ7mLiC6デバッガでステップ実行しながらスコープ内の変数を眺めてみろ
0696デフォルトの名無しさん
2016/01/13(水) 21:32:49.98ID:iJSjjgsI0697デフォルトの名無しさん
2016/01/13(水) 21:39:16.74ID:0D7P8fwjF11でソースを追いました。
すると"○"を8個描画した後にプログラムは終了しそうなのに、何故か
if (value < Depth) Stack(value);
上記のコードにステップが移って、value値がデクリメントされながら再帰されます。
どうしてデクリメントされながら再帰されるのか理解できません。
知っている方がいらっしゃいましたら、ご教示お願い致します。
>>696
知っています。何故デクリメントされてしまうのかが疑問です。
0698デフォルトの名無しさん
2016/01/13(水) 21:45:46.55ID:fAujecyUデクリメントしてるんじゃないぞ。
インクリメントする前の値が下の方のShow()で表示されているだけだ。
0699デフォルトの名無しさん
2016/01/13(水) 21:53:29.44ID:c8iEzaaj呼んだ先で加えた変数と戻ってきたときの変数は別の箱だぞ
>>696が再起呼び出しってヒントくれてるんだからそこを意識してみよう
0700デフォルトの名無しさん
2016/01/13(水) 22:02:38.12ID:+fcVBJhy0701デフォルトの名無しさん
2016/01/13(水) 22:04:53.20ID:0D7P8fwj>>699
ありがとうございました!
>呼んだ先で加えた変数と戻ってきたときの変数は別の箱だぞ
これで何とかピンときました。
0702デフォルトの名無しさん
2016/01/13(水) 22:06:54.36ID:c8iEzaajおめでとう
0703デフォルトの名無しさん
2016/01/14(木) 00:25:40.16ID:Jez1UKoL{class Program
{st
この括弧の付け方むかつくから辞めろ
0704デフォルトの名無しさん
2016/01/14(木) 00:32:52.74ID:NYaSS3ys中括弧をステートメントの後につけるか、改行した後につけるかって決まってますか?
例えば
if{
...
}
なのか
if
{
...
}
です
ご教授お願い致します。
0705デフォルトの名無しさん
2016/01/14(木) 00:36:44.01ID:WOK4h5YCVSのデフォルトだと後者だよね
0706デフォルトの名無しさん
2016/01/14(木) 09:54:57.88ID:Xyg9nF3V0707デフォルトの名無しさん
2016/01/14(木) 11:45:07.50ID:GjXsqQpw0708デフォルトの名無しさん
2016/01/14(木) 12:41:48.14ID:E5jysWRa当たり前だけど、usingはフィールドやプロパティに対しては使えないよ。
例えばストリームなんかフィールドで持つことも多いからそういう場合には使えない。
0709デフォルトの名無しさん
2016/01/14(木) 18:03:50.77ID:tOYn4HIEよくわかりません。
今の自分の勉強法:
本のソースコードを写す
↓
解説を読み関数の役割を知る
↓
写しているのでエラーは出ない
↓
始めに戻る
皆さんこのように勉強なさっているのでしょうか?
よろしければ皆さんがどのようにしてプログラミングを
学んだかを教えていただけないでしょうか?
0710デフォルトの名無しさん
2016/01/14(木) 18:30:09.70ID:ET7JKkBD俺も最初はその手の本を読んで勉強してたな。
間違った勉強方法なんて基本的にないんだから
それで満足ならそのまま続ければいいと思う。
まあ目標によってはもっといい方法もあるだろうけどね。
あとはグーグルで知りたい知識を検索できる能力と
わからないことをちゃんと文章化して質問できる能力があればいいんじゃない?
0711デフォルトの名無しさん
2016/01/14(木) 18:59:40.54ID:FteGdT+lDisopseがそれらと同一で、スコープ終了時以外にDisposeする必要がないなら
それでいいんじゃね
>>708
推奨はされないが、使えない事は無かったはずだが
0712デフォルトの名無しさん
2016/01/14(木) 20:58:14.08ID:YZJ24glt最初はもどかしいが写経は読むたけより確実に効果ある。信じて続けたまえ
0713デフォルトの名無しさん
2016/01/14(木) 21:48:18.40ID:S/qmyCNx俺はこんな感じだった(★が追加部分)
本のソースコードを写す
↓
解説を読み関数の役割を知る
↓
写しているのでエラーは出ない
↓
★いろいろ数値や変えたいところをいじってみる
↓
★結果がどう変わるか確認したり、エラーが出たら調べてみる
↓
★気が済んだところで
始めに戻る
改造っていいぞ
0714デフォルトの名無しさん
2016/01/14(木) 22:12:56.03ID:wdzz2Qmvこうしたい
↓
どーしたらこーできる?
↓
リファレンスを最初のページから順にペラペラ
↓
試す&デバッグ
どの言語もこの方法で覚えたような気がする
目的が先で、そのための手段を探してたと思う
本を写したり纏めたり蛍光ペン使ったりしたことは皆無
考えたら入門書の類も買ったことが無いと思う
0715デフォルトの名無しさん
2016/01/15(金) 11:23:26.57ID:y8oLhUCG最初はソースコートやプロパティを色々と変更してみるのがいいな
わざとエラーを出してみるといいし
で、慣れたところで簡単な物を1から作ってみる
書籍は基本的に入門書だけでいい
0716デフォルトの名無しさん
2016/01/15(金) 14:16:50.39ID:Jozr4WCO一つ作ってみたら色々判ることが多い
0717デフォルトの名無しさん
2016/01/15(金) 17:53:08.29ID:/akxGQYe0718デフォルトの名無しさん
2016/01/15(金) 18:58:43.56ID:jkJxSpfVもちろん関数電卓さ
0719デフォルトの名無しさん
2016/01/16(土) 04:02:44.36ID:PH3YsaQA移譲とか言われても意味が分かりません
他のメソッドの実行を肩代わりする意味が分からないです
普通にそのメソッド実行するのと何が違うのか・・・
0720デフォルトの名無しさん
2016/01/16(土) 04:36:59.21ID:RMhSJKcp0721デフォルトの名無しさん
2016/01/16(土) 05:42:44.11ID:fCKattgx0722デフォルトの名無しさん
2016/01/16(土) 07:54:09.81ID:4iVYdLKE0723デフォルトの名無しさん
2016/01/16(土) 08:33:35.43ID:Huy9AB1c0724デフォルトの名無しさん
2016/01/16(土) 09:32:50.53ID:PH3YsaQAもちろんlinqについての解説ページ(未確認飛行とか)も何度も読みましたが
正直普通に理解できませんでした
頭が悪いと言われればそれまでなんですが・・・
やっぱり一番分かりやすいページって未確認飛行なんでしょうか
0725デフォルトの名無しさん
2016/01/16(土) 09:55:07.12ID:iwKS8iBRコレクションの中から条件に一致する最初の探して、っていう
Enumerable.First<T>(IEnumerable<T>, Func<T, bool>)
がある
まあざっと実装するなら
foreach (var item in collection) if (ISMATCH(item)) return item;
って感じのメソッドになるよね
でFirstメソッドはこのISMATCHっていう条件関数以外は実装してくれてて、
あとはISMATCHに該当するのだけくれればあとはやっとくよ、という状態
で、そのISMATCHを渡すためにデリゲートを使う
public bool IsMatching(Person p) { return p.Name == "hoge"; }
っていうメソッドが存在していれば、あとは
persons.First(new Func<Person, bool>(IsMatching))
と言う記述でFirstにIsMatchingを渡すことができる
// 実際には省略してpersons.First(IsMatching)とか書く
// さらにいちいち"hoge"しか探せないメソッド用意するのは馬鹿馬鹿しいので
// ラムダ式を使ってpersons.First(_person => _person.Name == "hoge")とか書く
0726デフォルトの名無しさん
2016/01/16(土) 10:04:13.28ID:RMhSJKcp0727デフォルトの名無しさん
2016/01/16(土) 10:31:40.22ID:RZSnFlcjC# Taskでググれ
昔はデリゲートの非同期呼び出しとかリモート呼び出しとかあったけど今は事実上の非推奨
0728デフォルトの名無しさん
2016/01/16(土) 10:55:35.08ID:Huy9AB1c0729デフォルトの名無しさん
2016/01/16(土) 11:01:02.87ID:PH3YsaQAちょうむずかしいです…
サル向きのデリゲート解説ページとかないですかね
ラムダ式は、左辺を入力として右辺を実行するとか、ラムダ式使えば匿名メソッドが簡単に?書ける
とかくらいしか分かってないです
linqのorderbyあたりで使う分にはそれくらいで何とかなってしまったので
0730デフォルトの名無しさん
2016/01/16(土) 11:09:09.66ID:2WfpqfPQ心配しなくていいよw
実はそんなに難しいことじゃないから
0731デフォルトの名無しさん
2016/01/16(土) 12:19:48.29ID:1tZpiiVY何ともならなくなったら考えろ
100%理解しないと前に進めないならそもそも向いてないから
0732デフォルトの名無しさん
2016/01/16(土) 13:27:02.32ID:ycK3j5Q3コールバックしてもらいたい処理を渡すだけ。
関数ポインタ・関数の参照(アドレス)を渡すだけ
0733デフォルトの名無しさん
2016/01/16(土) 13:39:02.04ID:hyYE+GORMethodA()
{
PreMethod();
_MethodA();
PostMethod();
}
MethodB()
{
PreMethod();
_MethodB();
PostMethod();
}
こんな場合は、_MethodA,_MethodBをdelegateにすれば、PreMethodとPostMethod()を実行する部分を1つに纏められる。
MethodX( action X )
{
PreMethod();
X();
PostMethod();
}
MethodX( _MethodA );
MethodX( _MethodB );
0734デフォルトの名無しさん
2016/01/16(土) 14:04:11.50ID:Vki0rxI6ADO.NET Entity でValidateはどこに書くのでしょうか?
DBから自動生成した.edmxファイルの中に書くと
上書きしたときに整合性がとれなくなりそうだけど
[Required]
public string test { get; set; }
0735デフォルトの名無しさん
2016/01/16(土) 18:05:49.48ID:kQ++eYvWリードモデルでなら使えるかなと思ってた時期もあったけど
今時は最初から非正規化されてるテーブルあるいはドキュメントをそのままGETが主流だし
View側もわざわざPOCOにマップするコストを払いたくない
0736デフォルトの名無しさん
2016/01/16(土) 19:42:42.71ID:qf+Fjc450737デフォルトの名無しさん
2016/01/16(土) 21:09:35.97ID:zciXAlmpLINQ使えてるなら自分がLINQ自体を実装するならどうするか考えてみればいい
orderByメソッドの引数を評価関数にするにはどうするか?
それを汎用的に宣言するには?→delegate
0738デフォルトの名無しさん
2016/01/16(土) 21:58:33.49ID:Dk3A0eRo>>734みたいな使い方は廃れるかもね。
単なるテーブルとクラスとのマッパーならDapperで事足りる。
0739デフォルトの名無しさん
2016/01/16(土) 22:11:31.39ID:nU3glmtt自分も勉強中の初心者だけど、理解してる範囲で解説してみる。
デリゲートとは、「メソッドを入れる型」のこと。
int型の変数に整数が入るのと同様に、デリゲート型の変数にはメソッドが入る。
なんの役に立つかというと、「処理を場合に応じて随時変更できる」ということ。
(続く)
0740デフォルトの名無しさん
2016/01/16(土) 22:12:01.60ID:nU3glmttvoid Convert()
{
処理1;
処理2;
処理3;
}
というメソッドがあるとする(>>733と同じような例だけど…)。
処理1と3は必ず固定の処理。処理2は、場合によって処理をいろいろ切り替えたいとする。
(ある場合は、処理2のところでMethodA()を呼びたい。また別の場合にはMethodB()を呼びたい、とか。)
こんなとき、処理2の部分で、デリゲート型変数fを使って、
void Convert(デリゲート f)
{
処理1;
f();
処理3;
}
と書けばいいい。
先に言ったように、デリゲートとはメソッドを入れる変数のこと。つまり、Convert()は、
「引数としてメソッドを受け取るメソッド」ということになる。
Convert()の呼び出し元では、
デリゲート f = MethodA;
Convert(f);
とする。これで、処理2のところでMethodA()が呼ばれるようになる。
MethodB()を呼びたいときは、かわりに
デリゲート f = MethodB;
とすればいい。
(続く)
0741デフォルトの名無しさん
2016/01/16(土) 22:12:28.22ID:nU3glmtt「Convert()の引数で、メソッド自体を渡さなくても、かわりに処理番号か何かを渡せばいいじゃん」。
つまり、
void Convert(int n)
{
処理1;
if(n==1) { MethodA() };
else if(n==2) { MethodB() };
処理3;
}
とすればいいじゃん、と。
これは確かにその通りだが、問題がある。
それは、Convert()は、事前に想定したメソッド(MethodAとMethodB)しか呼べないということ。
デリゲートを使えば、どんな処理でも渡せるので、
・Convert()は >>719 が作成して、ライブラリとして他の人に公開する
・具体的な処理の中身は、そのライブラリを使う側の人が自由に作る
みたいなこともできるようになる。
「処理のひな型だけは作るけど、具体的な処理は、引数にメソッドとして渡してね」と。
(続く)
0742デフォルトの名無しさん
2016/01/16(土) 22:13:03.13ID:nU3glmtt例えば、Windowsフォームアプリで、フォームにボタンを貼り付ける。
ボタンをクリックしたら、自分の書いたハンドラが呼ばれる。
これは、デリゲートの仕組みを利用している。
Microsoftが作った.Netのライブラリの中では、
void ボタン押下()
{
f(); // fはデリゲート
}
みたいに、ボタンが押されたらデリゲートfを呼ぶ。(あくまで概念なので、実際にこんな感じかは知らない。)
ボタンを押された時に実際に何の処理をしたいかは、Microsoftはわからない(個々のアプリ作者にしかわからない)。
だから、ライブラリを作る側の人は、具体的に書きようがないので、デリゲートの形で呼ぶ。
一方、アプリの作者は、自分の書いた具体的なメソッドをデリゲートに結びつける。
これによって、ボタンを押したときに、自分の書いたメソッドが(デリゲート経由で)呼ばれるようになる。
なお、最後の例(Windowsフォームの例)は、厳密には、デリゲートじゃなくて「イベント」のはず。
だけどイベントもデリゲートの仕組みを使ってるので、ここでは単純に「デリゲート」と書いた。
(以上)
0743デフォルトの名無しさん
2016/01/16(土) 22:24:26.63ID:U350HfObストラテジーパターンだよ、で充分
0744デフォルトの名無しさん
2016/01/16(土) 22:43:24.18ID:Ip/Ue952だから言葉を尽くしたところで無駄
0745デフォルトの名無しさん
2016/01/16(土) 23:16:08.09ID:eoc6QJ5z0746デフォルトの名無しさん
2016/01/16(土) 23:40:43.42ID:oUSx9HiB1行目「だけ」読むとそう思えるね
0747デフォルトの名無しさん
2016/01/16(土) 23:42:57.81ID:nU3glmtt> 他のメソッドの実行を肩代わりする意味が分からないです
> 普通にそのメソッド実行するのと何が違うのか・・・
ということだったので、自分なりに答えたつもりだったんですが、総スカンですね。
グダグダ長文を書いてしまってすみませんでした。
スレ汚し失礼しました。ごめんなさい。
0748デフォルトの名無しさん
2016/01/16(土) 23:47:24.63ID:Ip/Ue952聞いたって理解できないだろってだけ
0749デフォルトの名無しさん
2016/01/17(日) 00:11:47.87ID:DW1lkDapたくさんレスありがとうございます
ちょっとすぐに理解して返信できないので、とりあえずついたレスを
全部読ませて頂きます
レスありがとうございました
0750デフォルトの名無しさん
2016/01/17(日) 00:18:25.50ID:DW1lkDapデリゲートとは何だろう?
↓
何サイトかググってデリゲートとは?の概要とサンプルをいくつか見る
↓
移譲とも呼ばれ、C言語で言う関数ポインタに相当しメソッドの実行を肩代わりしてくれるものです
ラムダ式として使えば匿名関数を簡単に書けます
↓
?????
となったので、結局「デリゲートが何か(何をするものか)分からない」
という事なのかもしれません
ラムダ式で使う使い方は、少なくともACTIONデリゲート型を使ったデリゲートよりは分かるのですが
デリゲート型変数にメソッドを入れて何の意味が?っていう感じです
ただ、複数のメソッドを一つのデリゲート型に入れられ、実行時には順次実行される、というのは
確かに複数の機能を手続きのように実行できるので、使い方として普通にメソッドコールするより便利だな
というのは分かりました
0751デフォルトの名無しさん
2016/01/17(日) 00:40:03.68ID:DW1lkDapストラテジーは一度だけ使った事あります(使い方が正しいかは分かりません・・・)
その時はMethodAとMethodBで共通のIFを実装して
IViewer viewer;
switch (hoge)
{
case A:
viewer = new Viewer_A(); (breakは省略)
case B:
viewer = new Viewer_B();
}
spViewer.Start();
みたいな事をやりましたがデリゲート型にメソッド入れて実行する使い方っていうのは
ID:nU3glmt様の説明を見ると、似たような意味合いで使われるんですね
0752デフォルトの名無しさん
2016/01/17(日) 00:46:17.28ID:wm0zglwedelegateはラムダ式の入れ物ってことで理解できない?
Action printStr = () => Console.WriteLine("Str");
↑delegate ↑ラムダ式
>ただ、複数のメソッドを一つのデリゲート型に入れられ、実行時には順次実行される
これはたぶんeventの機能かな
0753デフォルトの名無しさん
2016/01/17(日) 00:51:37.12ID:DW1lkDapswitch (hoge)
{
case A:
viewer = new Viewer_A(); (breakは省略)
case B:
viewer = new Viewer_B();
}
viewer.Start();
すみません、こうでした
0754デフォルトの名無しさん
2016/01/17(日) 01:27:37.04ID:Pwa5r+52データベース上のテーブルaを参照して処理をするクラスXとYがあったとする。
すぐに思いついたのはaからデータを引っ張るクラスを作ってXとYに包含させることなんだけど、
リソースやパフォーマンス上の理由からaから引っ張ったデータをXとYで共有することになった。
だからaから引っ張ったデータをキャッシュしておいて、キャッシュしたデータを返すメソッドへのアクセス方法を、
delegateかinterfaceとしてXとYにprivateで定義してpublicメソッドでそのフィールドに参照を格納できる方法を実装するのを考えた。
しかしながらそのデータはXとYにとっては結構クリティカルなデータなのに、
リソースを共有したいというアプリケーション側の都合でそれを参照する方法を外部に移譲していいのかと疑問に思って行き詰まった。
ケース・バイ・ケースだと思うけどこの場合どういう実装がいいんだろうか。
オブジェクト指向について記事書いてるページ回りながら3日くらい悩んでるんだが思いつかないので意見を聞きたい。
0755デフォルトの名無しさん
2016/01/17(日) 01:35:48.39ID:R7UCENDaXとYが共にテーブルaからの取得結果Zをコンストラクターで受け取る
0756デフォルトの名無しさん
2016/01/17(日) 01:40:34.65ID:TkYjcAHoaからデータを引っ張るクラスZを作ってXとYに包含させる
キャッシュはZの内部でやる
0757デフォルトの名無しさん
2016/01/17(日) 02:23:38.46ID:Pwa5r+52>>755
コンストラクタで受け取るようにすれば確かにデータなり参照なりを引き渡さないとインスタンスを作れなくなるからいいかもしれない。
>>756
クラスZをXとYに包含させるとして問題はそのクラスZへの参照をどうやってXとYに渡すかなんだ。
XとYの内部でZのインスタンスを作ってしまうと結局データは共有されないからどうしようかなって考えてる。
0758739
2016/01/17(日) 11:00:01.49ID:mdoFHj7B> デリゲート型変数にメソッドを入れて何の意味が?
それは、「int型変数に整数を入れて何の意味が?」と言ってるのと同じこと。
なぜわざわざint型変数を使うかというと、
�@プログラム実行時に、中身の整数を動的に変更できる
�Aメソッドの引数として変数を使うことにより、整数を扱う処理を共通化(汎用化)できる
といったメリットがあるから。
デリゲートも同じ。大雑把に言えば、「整数」が「メソッド」になったというだけ。小難しく考える必要はない。
例えば>>725のいうLINQのFirstメソッドは、「ご指定の条件に一致するものを検索します」というメソッドで、
First(コレクション, デリゲート)
のように、デリゲート型の引数で検索条件を受けとる仕様になっている。
これにより、First()を呼ぶ側が、検索条件を自由に指定(入れ替え)できる。
つまりデリゲートのおかげで汎用の検索メソッドにすることができたわけで、これは要するに、上に書いた�Aと同じことだよね。
0759739
2016/01/17(日) 11:00:26.84ID:mdoFHj7Bもしかして、ラムダ式とデリゲートとをごちゃ混ぜに考えてる?
イメージを一言で言えば、
・デリゲートは、「メソッドを入れる型、もしくはその型の変数」
・ラムダ式は、「メソッドをシンプルに書いたもの(式)」
なので、両者は全然別のもの。
で、ポイントとして「デリゲートには、通常のメソッド以外に、ラムダ式を代入することもできる」。
上のFirst()の例で言えば、検索条件をメソッドで渡せるおかげで、どんな条件でも指定して検索できるんだけど…。
裏返せば、First()を呼ぶには、「検索条件をあらわすメソッド」を作らなければならないということ。
でも、ちょっとした検索をするだけのために、わざわざ検索条件用のメソッドを用意するのは邪魔臭いよね。
そんなときにラムダ式を検索条件として渡せば、メソッドを別途用意する必要がなくなるってこと。
0760デフォルトの名無しさん
2016/01/17(日) 11:01:33.57ID:MLXXnKHy終わり
0761デフォルトの名無しさん
2016/01/17(日) 11:18:50.14ID:7AwZoLrq0762739
2016/01/17(日) 11:27:25.16ID:mdoFHj7B自分的には、ストラテジーパターンは、「多態性を利用して戦略を動的に変更すること」と理解してます。
で、デリゲートの場合は、多態性を用いるのではなく、メソッドそのものを直接指定しているだけなので、ストラテジーパターンとは呼べないのでは?
もちろん、やってることはどちらも「戦略を動的に切り替える」なので、意味合い的には同一だと思うのですが。
0763デフォルトの名無しさん
2016/01/17(日) 11:39:15.14ID:DW1lkDapありがとうございます
分かりやすかったです
>>740-741を見た時、Strategyパターンと全く同じ(IFを使うかデリゲート型を使うかが違うだけ)では?
と思いましたが、>>762の説明で違いが分かりました
0764デフォルトの名無しさん
2016/01/17(日) 11:43:32.09ID:mdoFHj7B>IFを使うかデリゲート型を使うか
むしろ、IFを使わないためにストラテジーパターンがあるような気が…
0765デフォルトの名無しさん
2016/01/17(日) 11:51:01.51ID:DW1lkDapマジですか?
ttp://www.nulab.co.jp/designPatterns/images/chapter2/6-1.gif
こんな感じで、複数のクラス(機能)が共通のIFを持ち、戦略的に
IFを持った機能を切り替えるのがStrategyパターンと認識していましたが
すみません、こっちも認識間違ってるかもしれません。出直してきます・・・
0766デフォルトの名無しさん
2016/01/17(日) 12:06:42.79ID:wm0zglweAction printStr = () => Console.WriteLine("Str");
Expression<Action> printStrExpr = () => Console.WriteLine("Str");
0767デフォルトの名無しさん
2016/01/17(日) 12:21:10.76ID:uVM8Tzne最近言語仕様を勉強して自慢したくなっちゃったんだね。
せめて式ツリーをもう少し勉強してから出直すべきだったな。
0768デフォルトの名無しさん
2016/01/17(日) 12:27:11.80ID:yhafN9XZ0769デフォルトの名無しさん
2016/01/17(日) 12:27:35.39ID:mdoFHj7Bすみません。IFというのは、インターフェースのことだったのね。
if〜elseのifのことかと思った。
>>764は忘れてください。
0770デフォルトの名無しさん
2016/01/17(日) 12:32:39.06ID:wm0zglwe勉強したのは2年前くらいだけど、最近に入るか?
0771デフォルトの名無しさん
2016/01/17(日) 12:37:28.12ID:OdtYk10r0772デフォルトの名無しさん
2016/01/17(日) 12:55:42.09ID:rOaFrH3nCのポインタ変数なんて実態はアドレスの入れ物だって理解するのが一番簡単なように、
デリゲートなんて関数ポインタの.NET版だと理解するのが一番簡単だって。
intのリテラル1とintの変数aの違いは、1はコンパイル時に値が確定するのに対してaの値は実行時に決まること。
デリゲートも同様。
普通のメソッド呼び出しはコンパイル時にどのメソッドが呼び出されるか確定するが、
デリゲート型の変数を使えばこれを実行時に決めることが出来る。
ただそれだけだよ。
0773デフォルトの名無しさん
2016/01/17(日) 13:38:07.37ID:P2fArTeK0774デフォルトの名無しさん
2016/01/17(日) 13:57:29.65ID:87291EgDラムダ式を悪く言う人はまずいない。
LINQは賛否両論かもしれん。
0775デフォルトの名無しさん
2016/01/17(日) 14:01:46.08ID:2mSqMAWVC# を使うなら
Microsoftに従うしかない
0776デフォルトの名無しさん
2016/01/17(日) 14:02:10.99ID:Xy4jFrpaラムダ式でそうそう可読性悪くなることはないと思うけど
偶に糞長い行入れる人とかいるけど、ユニットテスト使ってないんだろうなと
0777デフォルトの名無しさん
2016/01/17(日) 14:06:58.57ID:pSWLpytBどの方法でソートするかを、ブロックで指定する。
例えば、ABC順とか、ファイルサイズの大きい順とか、
enum.sort_by {|item| block }
つまり、お好みの処理を指定できる。
ラムダ式・ブロック・クロージャ・無名関数・関数ポインタなども、
大雑把に言えば同じ
Pythonでは、関数に機能を追加・装飾する、
デコレータ・アノーテーションもある
def deco(func):
関数の内容を書いておいて、アノーテーションをつける
@deco
def foo():
これで、foo()を呼び出すと、
decoに書いておいた処理が実行される
0778デフォルトの名無しさん
2016/01/17(日) 14:12:52.26ID:HIxL+QT3ボケ老人か
0779777
2016/01/17(日) 14:17:08.76ID:pSWLpytBこの場合、foo()を呼び出すと、A, Bの順
@A
@B
def foo():
C#のデリゲートも、たぶん実行順番を指定できる
0780デフォルトの名無しさん
2016/01/17(日) 14:34:16.40ID:SO28ogQy重要な意味合いを持たずコードが短く寿命も短いなら可読性上がる
そうじゃなきゃバカじゃないと使う気にならないね
0781デフォルトの名無しさん
2016/01/17(日) 14:38:03.96ID:yhafN9XZ間違いは犯す
ラムダ式とLINQは廃止すべき
0782デフォルトの名無しさん
2016/01/17(日) 14:43:04.52ID:GIfr36xN>関数ポインタの.NET版だと理解するのが一番簡単
ってのはみんなわかってそれをどうやって別の言葉で表現するか苦労してるわけよ
C#から入ったプログラムにはいった人にまずはCをマスターしてから来いっていうのは放漫だし
0783デフォルトの名無しさん
2016/01/17(日) 15:01:07.47ID:kU6BDJls0784デフォルトの名無しさん
2016/01/17(日) 15:11:29.81ID:HIxL+QT30785デフォルトの名無しさん
2016/01/17(日) 15:15:15.58ID:SO28ogQy0786デフォルトの名無しさん
2016/01/17(日) 15:32:55.32ID:fyCSQ8gdラムダ式は他言語でも採用されるくらい好評みたいだが?慣れだ慣れ。
Linqもクエリ構文はともかく、メソッド構文なら普通のメソッドと変わらないぞ。ラムダ式と組み合わせることが多いってだけで。
0787デフォルトの名無しさん
2016/01/17(日) 15:35:27.31ID:E98+Jifa0788デフォルトの名無しさん
2016/01/17(日) 15:57:47.18ID:8TKcXYcp逆だろう?
lisp のラムダ式をC#が後で採用したんだよ
で,そのC#のラムダ式は,Yコンビネータを表現できるのかね?
0789デフォルトの名無しさん
2016/01/17(日) 15:58:01.70ID:SO28ogQy0790デフォルトの名無しさん
2016/01/17(日) 16:00:47.64ID:wm0zglweでもあんなものそうそう必要にならないだろ
0791デフォルトの名無しさん
2016/01/17(日) 16:07:34.79ID:B0dK5BN7デリゲートを書くときタイピング数を減らそうとして使う
https://msdn.microsoft.com/ja-jp/library/bb882516.aspx
delegate void TestDelegate(string s); // こーやって定義して…
static void M(string s) {Console.WriteLine(s);} // こーいうメソッドがあるとき
TestDelegate testDelA = new TestDelegate(M); // かつてはこう。あらかじめ定義したメソッドを使って初期化
TestDelegate testDelB = delegate(string s) { Console.WriteLine(s); }; // C#2.0からは匿名メソッド使ってラク
TestDelegate testDelC = (x) => { Console.WriteLine(x); }; // C#3.0からはラムダ式でさらにラク
0792デフォルトの名無しさん
2016/01/17(日) 16:10:16.93ID:2WuVGkbt常時
0793デフォルトの名無しさん
2016/01/17(日) 16:12:57.54ID:Xy4jFrpaもう最近じゃdelegateという記述自体やらないよね
ActionとFunctionさまさまや
0794デフォルトの名無しさん
2016/01/17(日) 16:14:28.72ID:FugsQaG70795デフォルトの名無しさん
2016/01/17(日) 16:21:26.80ID:7AwZoLrqばんばん使う場面ならいいけど
linqクラスに明示的にキャストしたい。
0796デフォルトの名無しさん
2016/01/17(日) 16:38:22.25ID:pSWLpytB最初は、メソッド1つだけのクラスを作って渡していた。
その次に、引数の中で、無名クラスを定義するようになった。
そしてラムダ式
func(クラス)
func(無名クラス)
func(ラムダ式)
0797デフォルトの名無しさん
2016/01/17(日) 17:06:56.49ID:2WuVGkbtusing消しとけ
0798デフォルトの名無しさん
2016/01/17(日) 22:39:32.61ID:K2essoph今は改善されたのかな?
0799デフォルトの名無しさん
2016/01/17(日) 22:52:06.56ID:ZDGiYXBbDataGridViewにDataSetから流し込んで編集→更新してるんですが、
セルの値変更→Updateは問題なし
続けて同じセルの値を別の値に変更してUpdateCommandを実行すると
同時実行違反のエラーがでております
IDあたりが怪しいのはぐぐってわかったのですが、(IDはAutoIncrementで主キーを設定)
同じセルの値を変更したときのRowのIDが-1になってるんですよね
データベース側のIDとは当然違うので、エラーになるんだろうなとは思っているんですが、
どう解決していいものか・・・どなたかヒントをいただければ
0800デフォルトの名無しさん
2016/01/17(日) 23:01:59.20ID:1oqLgnXzenddate 2016/1/20
という二つの情報があって、
nowdate 2016/1/17
が、startdateとenddateの期間内かどうか
判定する、スマートな方法はありますでしょうか?
linqなどで、綺麗に書けそうな気もするので、
よろしくお願いします。
0801デフォルトの名無しさん
2016/01/17(日) 23:22:59.74ID:D8ah+tTvクソデータをフォローしてやるためにLINQがあるわけじゃねーんだけどな
0802デフォルトの名無しさん
2016/01/17(日) 23:23:08.55ID:VemjrG46無名クラスはあくまで型を実装するものだから
一個のメソッドを扱いたいのとは動機がちょっと違う
JFrame f = new JFrame();
JLabel label = new JLabel("");
f.getContentPane().add(label, BorderLayout.CENTER);
f.addMouseListener(new MouseAdapter() {
private int count = 0;
private void updateLabel() {
label.setText(String.valueOf(count));
label.setForeground(count < 10 ? Color.BLACK : Color.RED);
}
public void mouseClicked(MouseEvent e) {
count++;
updateLabel();
}
public void mouseExited(MouseEvent e) {
count = 0;
updateLabel();
}
});
こういう風にして、関連する複数のメソッドを同時に書きたいときに役立つ
0803デフォルトの名無しさん
2016/01/17(日) 23:25:35.96ID:aEwXbHoX大小比較の方法も聞かないと分からないようでは生きているのもつらいだろうな。
もし日付という概念をDateTime型に入れているならまずその誤った方法を見直せ。
0804デフォルトの名無しさん
2016/01/17(日) 23:36:33.47ID:1oqLgnXzC#どころかプログラムを始めたのも3ヶ月程度の初心者で
すみません
やはり、そういうメソッドは、自作しないと
存在しないものなのでしょうか?
C#のような歴史のある汎用開発言語なら、
自分が求めるようなメソッドがあるような気がして
お聞きした次第なのですが
0805デフォルトの名無しさん
2016/01/17(日) 23:41:14.04ID:Xy4jFrpaなんで毛嫌いするのかしらんけど、DateTime型ならDateプロパティ同士で比較すればいいだけじゃないの?
0806デフォルトの名無しさん
2016/01/17(日) 23:44:34.53ID:fadv0MbS>>803に駄目だって言われたからやっぱわかんね
0807デフォルトの名無しさん
2016/01/17(日) 23:45:46.61ID:6oiqScYX0808デフォルトの名無しさん
2016/01/17(日) 23:46:31.64ID:fadv0MbSお馬鹿な手法を言語がカバーするというのは本末転倒だろ
そんなのPHPだけだ
0809デフォルトの名無しさん
2016/01/17(日) 23:48:31.91ID:VemjrG46あらためてDateTimeで持つんなら
startdate = new DateTime(2016, 1, 1);
enddate = new DateTime(2016, 1, 20);
nowdate = new DateTime(2016, 1, 17);
でもって
if (startdate <= nowdate && nowdate <= enddate) {/*期間内*/}
これでおkのはず
0810デフォルトの名無しさん
2016/01/17(日) 23:55:45.92ID:taBDRBiwなんでstartとend?
0811デフォルトの名無しさん
2016/01/17(日) 23:58:37.39ID:VemjrG46>>800
0812デフォルトの名無しさん
2016/01/17(日) 23:59:16.44ID:D8ah+tTv0813デフォルトの名無しさん
2016/01/18(月) 00:04:18.57ID:2ulx2Isr非常に明快で、これ以上スマートに書く方法は無さそうですね。
質問のレベルが低すぎて、逆に難しく
捉えられたかも知れないので、
失礼しました。
0814デフォルトの名無しさん
2016/01/18(月) 00:05:00.02ID:vO3VhahX"2016/01/17"
"2016/01/20"
文字列を大小比較すればOK
0815デフォルトの名無しさん
2016/01/18(月) 00:28:18.51ID:pw6UDtYr0詰めされてるとは限らんし、一旦DateTime.Parse()した方が確実だろうな。
0816デフォルトの名無しさん
2016/01/18(月) 00:37:08.79ID:cbExZGig0817デフォルトの名無しさん
2016/01/18(月) 00:51:22.00ID:5iYFR+Uq0818デフォルトの名無しさん
2016/01/18(月) 01:23:01.87ID:4n8xvv+pよきに計らった気になるのは間抜けの所作
0819デフォルトの名無しさん
2016/01/18(月) 01:24:32.80ID:wW0WiShFそれとも荒らしが沸いているだけか?
803が言っているのは、DateTimeはただの64ビット数値でしかないからそのまま比較できるって話だろ。
それをToStringで変換したら日付の文字列になるだけであって、
日付文字列自体はDateTimeの中には持っていないし、
そもそもC#で日付を文字列で確保するのはおかしいだろ。
つまり800の時点で
DateTime startdate, enddate
でなければおかしいのであって、その比較はif文で不等号(<)を使えば良いだけだし、
そんなのいちいち聞くようならプログラミングなんて無理だって話だろ。
>>813
スマートさを求める以前に君はもっとまず書いた方がいいよ。
言っちゃ悪いが何がスマートかも判断できないレベルだと思うよ。
0820デフォルトの名無しさん
2016/01/18(月) 01:29:06.09ID:LBoJ+JUg>>803とか言わずに俺と素直に言えばいいのに
0821デフォルトの名無しさん
2016/01/18(月) 01:41:15.22ID:pw6UDtYr日付をDateTimeで扱うことを否定しているようにしか読み取れないが。
0822デフォルトの名無しさん
2016/01/18(月) 01:44:24.84ID:L7UVOaGN(例:postgresqlの場合timestamp, date, time)
そういうノリで日付だけを扱え、という意味かと読んだ
0823デフォルトの名無しさん
2016/01/18(月) 01:48:23.83ID:wW0WiShFまあお前らがどう思おうが好きにすればいいが。
ただ>>817もそうだが、DateTimeは10000年-1カウントまでは保証している。
この点は>>818の言うとおりで、.NET自体はかなり完成したフレームワークだから、
変に気を使うよりは素直に使った方がいい。
DateTimeは直接比較できるように数値にマッピングしてあるわけだし、
逆に直接比較できないのなら演算子オーバーロードが為されているか、メソッドが用意されている。
というか、ある程度やっていれば、これはよく使う/余り使わない、というのは分かるようになる。
そして.NETとかなら大概その「よく使う」物は実装されている。
日付の比較なんてよく使うだろ。だったら普通に出来るように設計されている。
それがピンとこないのは書いてないからだよ。
0824デフォルトの名無しさん
2016/01/18(月) 02:55:47.40ID:F4LpYkVcうーん、やっぱり肌に合わん
IDEを持ってしても見にくいわ
ラムダ式でさえそこそこ長くなるとメソッドに分割させたくなる
0825デフォルトの名無しさん
2016/01/18(月) 06:22:50.07ID:9moHsOv1例の書き方、説明の端折り方からしてプロのための本だとわかる
0826デフォルトの名無しさん
2016/01/18(月) 06:23:33.23ID:9moHsOv10827デフォルトの名無しさん
2016/01/18(月) 06:59:08.20ID:f+dY9NM80828デフォルトの名無しさん
2016/01/18(月) 07:23:16.31ID:tfxh7JIU0829デフォルトの名無しさん
2016/01/18(月) 07:36:24.94ID:bqfXjorQ0830デフォルトの名無しさん
2016/01/18(月) 08:44:43.56ID:tv0b2zna0831デフォルトの名無しさん
2016/01/18(月) 09:39:25.03ID:TV7ry5Rbそんなコボラー脳は早く捨てろよ
0832デフォルトの名無しさん
2016/01/18(月) 13:48:04.35ID:doNY95zT0833デフォルトの名無しさん
2016/01/18(月) 15:36:37.61ID:I1m11BCAわしはbinとかobjとかの並びにlibってフォルダ作っていれてる
0834デフォルトの名無しさん
2016/01/18(月) 17:52:51.30ID:rmPY04Uv外部依存解決のためにプロジェクトひとつ作ってそのプロジェクトルートに打ち込む
0835デフォルトの名無しさん
2016/01/18(月) 22:15:25.80ID:wW0WiShFエセプログラマは黙れよ。迷惑だよ。
自分で試したり調べたりする能力がない奴は、プログラマとしては大成しない。
>>804はプログラマとして一番大事な部分がない。
それが分からない>>830もセンスないし、それ以前にエセプログラマだね。
或いはお前の周りにはその程度の奴しかいないから、それが理解できないだけ。
0836デフォルトの名無しさん
2016/01/18(月) 22:34:44.19ID:vfhYYxU5長文がむなしく響く
0837デフォルトの名無しさん
2016/01/18(月) 22:43:02.61ID:1ZCUtN790838デフォルトの名無しさん
2016/01/18(月) 22:52:22.18ID:wW0WiShFまあそれでも邪魔だというならおさらばすることにするよ。
0839デフォルトの名無しさん
2016/01/18(月) 23:03:17.73ID:8ePQenzf0840デフォルトの名無しさん
2016/01/18(月) 23:08:21.52ID:o2Fcp8K+0841デフォルトの名無しさん
2016/01/18(月) 23:08:33.48ID:4n8xvv+p0842デフォルトの名無しさん
2016/01/18(月) 23:24:29.55ID:3Kl3L3Zzインターフェースというものがいまいちピンとこないんです。
クラスだったら、そのクラスのインスタンスの実体が作られるってのが何となくイメージがつかめるのですが、
インターフェースの場合、例えば、
var a = Enumerable.Range(1, 5);
って書いたとき、このaはいったい何者なんでしょうか?
Visual studioで、aのところにマウスポインタを持っていくと
System.Collections.Generic.IEnumerable<T>, (Tはint)
みたいな情報が出てくるのですが、つまりは何者やねん?!
「列挙できる何か」でしかないのでしょうか?
実際には何らかのクラスのインスタンスなのでしょうか?
何者かなんて、そもそも気にする必要はないんでしょうか?
なんというか、まるで「抽象クラスなのにその実体が作られちゃった」みたいな、モヤモヤした気持ちです。
うまく表現できなくてすみません。
0843デフォルトの名無しさん
2016/01/18(月) 23:38:23.28ID:2MLDnvjn0844デフォルトの名無しさん
2016/01/18(月) 23:48:03.16ID:o2Fcp8K+http://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs,7865685802e14913
なので実態はあまり気にしなくていい
0845デフォルトの名無しさん
2016/01/18(月) 23:55:22.92ID:k4/XVfUV中の人なんていないんだよ
0846デフォルトの名無しさん
2016/01/19(火) 00:03:46.46ID:Nad2kIAsEnumerable.Rangeの中では
static IEnumerable<int> RangeIterator(int start, int count){
for (int i = 0; i < count; i++) yield return start + i;
}
をコールしてるだけでした。
確かに実体なんて気にしなくてよさそうですね。
今度からは着ぐるみだと思うことにします!
ありがとうございました。
0847蒸し返し君
2016/01/19(火) 00:22:17.59ID:tsEnAc4D>>803
> もし日付という概念をDateTime型に入れているならまずその誤った方法を見直せ。
これ結局どういう意味? 日付は何に入れるべき?
>>819
> 803が言っているのは〜って話だろ。
> それを〜であって、〜だろ。
> つまり〜であって、〜って話だろ。
あまりに雄弁>>803をに代弁する人の存在はさておき…
>>830
> 最初からスマートさを求める初心者って、優秀なセンス持ってると思うけどな
逆!逆ぅ!
初心者ほど妙にそれを求めるのを見てきた
何を求めているのか、何が手に入ったのかまったく判断つかないくせに
駆け出し三日目みたいな奴が「コードの美しさ」とか抜かしてたら頭カチ割りたくもなる
0848デフォルトの名無しさん
2016/01/19(火) 01:00:29.78ID:3XHdRo+8でもスマートさを求めない初心者ってコピペプログラマーになったりしないの?
0849デフォルトの名無しさん
2016/01/19(火) 07:10:54.73ID:HexSh7v2日付とtimepointの概念の違いくらい理解しろ
0850デフォルトの名無しさん
2016/01/19(火) 12:26:57.20ID:w8PSLHxgこんなコード今時書かねーよ死ねとか言うよね
0851デフォルトの名無しさん
2016/01/19(火) 12:31:40.51ID:w8PSLHxg究極のC#プログラミング 新スタイルによる実践的コーディング
って本読むといいよ。順番を追って説明されてるから。
頭いい人はネットの断片的な情報を繋ぎ合せて分かるだろうけど、初学は本で学んでから必要な分をネットで調べるほうがいい
0852デフォルトの名無しさん
2016/01/19(火) 12:37:22.58ID:lHVrmma2列挙できる何か
この理解でパーフェクト。
0853デフォルトの名無しさん
2016/01/19(火) 16:06:33.38ID:0OZUZxB2これってなんで?
リビルドし直したり、閉じて開き直すと元に戻るんだが
0854デフォルトの名無しさん
2016/01/19(火) 20:12:45.09ID:hCzDBBLk0855デフォルトの名無しさん
2016/01/19(火) 23:35:50.94ID:I8eUz+bb+=で追加されたラムダの方をコールする事は出来るのでしょうか?
こういう書き方がどう嬉しいのか掴めないのですが、
後学のためにお伺いしたく
delegate void HelloDelegate(string name);
class Program
{
static void StaticHello(string name)
{
Console.WriteLine("(static) : Hello1 {0}!", name);
}
static void Main(string[] args)
{
Foo foo = new Foo();
HelloDelegate funcs;
funcs = StaticHello; // static 関数の格納
// 無名関数の格納
funcs += (string name) =>
{
Console.WriteLine("(lambda) : Hello2 {0}!", name);
};
funcs("world");
}
}
0856デフォルトの名無しさん
2016/01/20(水) 00:25:59.71ID:/jAqE9aQ0857デフォルトの名無しさん
2016/01/20(水) 08:41:21.18ID:Q5scciVe0858デフォルトの名無しさん
2016/01/20(水) 08:44:04.79ID:6Nwq+BmNSystem.Avctionでいいでしょ
0859デフォルトの名無しさん
2016/01/20(水) 13:48:46.45ID:OYaq8QnH0860デフォルトの名無しさん
2016/01/20(水) 19:40:56.68ID:zd+3gPU+TryHoge(result => 成功時(result), err => 失敗時(err))
でいい
0861わからない奴はしね
2016/01/20(水) 19:41:30.79ID:2BWCguJwp25の最初
0862わからない奴はしね
2016/01/20(水) 19:41:56.50ID:2BWCguJw0863わからない奴はしね
2016/01/20(水) 19:50:34.01ID:2BWCguJwなぜか名前空間を最後に飛ばす
なぜか図解がひとつもない
オブジェクトの説明すらない
大丈夫か?
0864855
2016/01/20(水) 22:28:30.97ID:NCZhL0ASラムダの部分もちゃんと動きました
すみませんでした
委譲をすると何が便利なのか?
普通に関数をコールするより便利なのか
今一つ実感が湧きませんが
多用されるということは便利な部分があってのことだろうと思うので
とりあえず使ってみたいと思います
0865デフォルトの名無しさん
2016/01/21(木) 00:09:50.07ID:a7yd+tZ2>普通に関数をコールするより便利なのか
私と全く同じ質問してますね・・・
上の方で答えて頂きました
0866デフォルトの名無しさん
2016/01/21(木) 00:17:25.15ID:u55dqyZV0867デフォルトの名無しさん
2016/01/21(木) 01:38:58.64ID:88LciSZZ0868独習C ◆2EF1A8jABI
2016/01/21(木) 01:59:05.24ID:OcjdRNV30869デフォルトの名無しさん
2016/01/21(木) 02:00:00.03ID:OcjdRNV30870デフォルトの名無しさん
2016/01/21(木) 02:08:22.88ID:bcCC1z7K0871デフォルトの名無しさん
2016/01/22(金) 00:32:35.06ID:fKj1OuCZウィンドウのリサイズ時にボタンなどもリサイズさせるにはどのようにすればいいのでしょうか?
初心者の質問で申し訳無いのですが、初心者すぎて調べても関係ないことが出てきてしまい、
途方にくれています。
0872デフォルトの名無しさん
2016/01/22(金) 01:08:34.19ID:Mcw4vPxlAnchorとかでググると手がかりがつかめるかもしれないよ!
0873デフォルトの名無しさん
2016/01/22(金) 01:38:02.72ID:fKj1OuCZセルを配置してからその中にボタンを入れてAnchorを設定してみたところ、
無事にできました。ありがとうございました。
0874デフォルトの名無しさん
2016/01/22(金) 22:23:30.00ID:vvX+CTNiプロパティをset,getするための構文はありますか? それとも、参照を持つクラスAで
クラスBをnewする時に自身(クラスA)への参照を渡しておく等の必要がありますか?
0875デフォルトの名無しさん
2016/01/22(金) 23:03:25.03ID:cH2NbEwD0876デフォルトの名無しさん
2016/01/22(金) 23:26:23.68ID:aDNowO67後者。
0877デフォルトの名無しさん
2016/01/23(土) 00:59:15.45ID:1nX2r7W+0878デフォルトの名無しさん
2016/01/23(土) 02:07:13.38ID:z9alu8d/{
ClassB b;
Property { set ;get; }
}
class ClassB
{
Method()
{
// ClassA.Propertyを操作したい
}
}
って、ことでしょ。」
0879デフォルトの名無しさん
2016/01/23(土) 02:07:58.44ID:isFkecmI0880デフォルトの名無しさん
2016/01/23(土) 06:06:00.80ID:2K8/GI2s{
ClassB b;
Property { set ;get; }
}
class ClassB
{
Method()
{
foreach (var a in allACollection)
a.b = this;
}
}
0881デフォルトの名無しさん
2016/01/23(土) 11:02:23.57ID:D5H1L8g00882デフォルトの名無しさん
2016/01/23(土) 11:12:08.93ID:VoXQl1Qadereference?
0883デフォルトの名無しさん
2016/01/23(土) 11:49:07.35ID:gwJcz5VZ0884デフォルトの名無しさん
2016/01/23(土) 13:25:30.20ID:VoITVh8Pもう既になくて、XNAもサポートなくなるらしいし
wiki をみてみると Windows API Code Pack for Microsoft .NET Framework とかってのがあるらしいのだけれど
NuGetをみてもないし、リンクも切れている
今、デスクトップアプリからDirectXを使うとしたら、どういうやり方が標準的になってるんでしょうか?
#しばらく見ない内に随分変わったな・・・
0885デフォルトの名無しさん
2016/01/23(土) 13:54:40.53ID:pu55AA1rC#ならUnity
0886デフォルトの名無しさん
2016/01/23(土) 13:58:50.63ID:VoITVh8P作ってるのは、データの可視化ツールで、マウスだと操作がちょっと大変だったからという所なので
ゲーム開発用プラットホームに行くわけにはいかないです
0887デフォルトの名無しさん
2016/01/23(土) 14:08:48.80ID:KCwna5vHMS的には一寸前はそういう用途にはXAMLを推奨してたけど、もうMS自身がElectron使ってるし
0888デフォルトの名無しさん
2016/01/23(土) 14:19:30.66ID:I9i6VINo0889デフォルトの名無しさん
2016/01/23(土) 14:20:04.04ID:l5TKWQpo0890デフォルトの名無しさん
2016/01/23(土) 14:21:13.61ID:pu55AA1r1k行もいらんだろ
0891デフォルトの名無しさん
2016/01/23(土) 14:21:26.90ID:VoITVh8P0892デフォルトの名無しさん
2016/01/23(土) 14:25:27.37ID:VoITVh8P終わってしまっていたか・・・
0893デフォルトの名無しさん
2016/01/23(土) 14:29:09.18ID:pu55AA1r.NETに対するMSの投資は今や完全にWebへ全振りしてるから
0894デフォルトの名無しさん
2016/01/23(土) 14:33:18.90ID:GlocuAeT以下のページの、「発音したユーザー」の右隣の△のボタンをプログラムから押す操作をしたいです。
http://ja.forvo.com/word/pr%C3%A9sumer/#fr
ソースを見ると、以下のようになっています。
<a class="play" id="play_1620405" href="http://ja.forvo.com/word/pr%C3%A9sumer/" title="presumer の発音を聞
く" onclick="Play(1620405,'OTE4Njc0Ny80OS85MTg2NzQ3XzQ5XzE4MjQ3MDZfMS5tcDM=','OTE4Njc0Ny80OS85MTg2NzQ3XzQ5XzE4MjQ3MDZfMS5vZ2c=');return false;" rel="nofollow">presumer の発音を</a>
ヒントをいただけると助かります。
0895デフォルトの名無しさん
2016/01/23(土) 14:35:25.47ID:VoITVh8P見る限りサポート体制が薄くなるんじゃなくて、打ち切りだからな
組織が瓦解しているのかもしれない
0896デフォルトの名無しさん
2016/01/23(土) 22:57:33.94ID:tJzq42nP維持したいのですが、例えば左右の余白が10%ラベルが90%として固定したい場合
プロパティとかではなく、座標計算してリサイズと当時に設定するしか無いのでしょうか?
0897デフォルトの名無しさん
2016/01/24(日) 01:27:15.13ID:m3rL1jl7なんでもいいけどSharpDX使っとけDirectX API網羅してるから
NuGetにもある
0898デフォルトの名無しさん
2016/01/24(日) 01:41:33.80ID:htniKezyどうにかしてフォームアプリで使いたいんだが、どうしたもんか・・・
0899デフォルトの名無しさん
2016/01/24(日) 02:10:36.19ID:GSUVPgMJ何を言ってるのかさっぱり分からん。
リサイズするのはFormなのかラベルなのか。
余白っていうのはどの部分を言ってるのか。
0900デフォルトの名無しさん
2016/01/24(日) 05:34:54.12ID:zmKxqTJl計測機器から拾ったアナログデータのプロット、FFTのプロットなどに、付属のChartコントロール使ってますか?
それとも、全てオーナードローでやってますか?
0901デフォルトの名無しさん
2016/01/24(日) 12:08:24.15ID:Y10O6Yt50902デフォルトの名無しさん
2016/01/24(日) 12:33:49.14ID:sDnfZi6xそうでないなら自分で描けばいい
0903デフォルトの名無しさん
2016/01/24(日) 14:27:36.78ID:pNY+NcnR0904デフォルトの名無しさん
2016/01/24(日) 15:14:04.44ID:bw3MWu8tってカッコつけて言いたいお年頃なんだろ
0905デフォルトの名無しさん
2016/01/24(日) 15:23:52.77ID:30PPh5ie0906デフォルトの名無しさん
2016/01/24(日) 15:36:09.53ID:sDnfZi6x0907デフォルトの名無しさん
2016/01/24(日) 19:42:07.46ID:Aj6v4F1zList<string> listStr;
が有って、それを10個ずつに分割したリストを作りたいのですが、
ループで回してやる方法しか思いつかないのですが、LINQとかラムダ式とか、何かそういう方法でスマートに出来ますか?
取り出す要素 List<string>を5つ作りたい
00~09 listStr0
10~19 listStr1
20~29 listStr2
30~39 listStr3
40~45 listStr4
出力は、
List<string>のリストか配列でお願いします。
0908デフォルトの名無しさん
2016/01/24(日) 19:45:33.47ID:efwl3LYy0909デフォルトの名無しさん
2016/01/24(日) 20:28:00.81ID:rqxMFPcYLinqでインデックス使えるので、こんな感じで
var listStr0 = list.Where((n, i) => i >= 0 && i < 10);
Listにするには最後にToListで
0910デフォルトの名無しさん
2016/01/24(日) 20:31:37.19ID:pllviQHm0911デフォルトの名無しさん
2016/01/24(日) 20:32:39.79ID:58N9T2+A0912デフォルトの名無しさん
2016/01/24(日) 20:37:20.79ID:LpWoFh+wラムダのアロー演算子?ってもう少しわかりやすいチョイスなかったのかね
0913デフォルトの名無しさん
2016/01/24(日) 21:17:16.68ID:njH/x6oD0914デフォルトの名無しさん
2016/01/24(日) 21:23:57.56ID:Aj6v4F1zレスありがとうございました。
Skip()とTake()と言うのを初めて使ってみたら出来たのですが、
結局ループ変数iを使って
Skip(i*10).Take(10).ToList<string>() みたいにして取り出しました。
このiをループさせない方法はありますか?
0915デフォルトの名無しさん
2016/01/24(日) 21:31:17.31ID:H1CMcA7Z事故解決しました。
ごめんなさい、formのリサイズ時にコントロールも余白の比率を維持したまま
リサイズしたいってことでした。
formの縦横の大きさから、座標とコントロールの比率を出して、
リサイズ後に計算してリサイズすることで解決しました。
0916デフォルトの名無しさん
2016/01/24(日) 21:35:23.64ID:HlsipTodまぁどっちも押しにくいけど
0917デフォルトの名無しさん
2016/01/24(日) 21:38:30.89ID:efwl3LYyiをforじゃなくてEnumerable.Range()にしたらLINQっぽくならない?
var n = Enumerable.Range(0, 5).Select(i => listStr.Skip(i * 10).Take(10)).ToList();
foreach (var x in n) {
foreach (var y in x)
Console.Write("'" + y + "' ");
Console.WriteLine();
}
0918デフォルトの名無しさん
2016/01/24(日) 22:41:38.27ID:Aj6v4F1zサンプルありがとうございました。
出来ました。
でもEnumerableというのは型が分からなくなって混乱するので苦手です。
0919デフォルトの名無しさん
2016/01/24(日) 23:05:37.93ID:IvXHpVfl0920デフォルトの名無しさん
2016/01/24(日) 23:15:56.05ID:CtPdemUL0921デフォルトの名無しさん
2016/01/24(日) 23:30:57.09ID:sDnfZi6x0922デフォルトの名無しさん
2016/01/25(月) 00:08:27.28ID:GD04/nQGそんな事言ってるとJava8のStreamにも取り残されるぞ
0923デフォルトの名無しさん
2016/01/25(月) 01:27:52.23ID:HQphZQpT「linqやラムダなんて使わなくても書ける。今までも使わずやってきたんだからこれからも使う必要はない」
って言ってきます
どうしたらいいでしょうか?
0924デフォルトの名無しさん
2016/01/25(月) 02:08:49.84ID:5LljS1Ocまた、どうしても使いたいならば説得に足る材料を集めればよいのではないでしょうか。
0925デフォルトの名無しさん
2016/01/25(月) 02:59:55.70ID:fpkb5Ns6レベルが合う環境に行くかだ。
過去を理由に出すやつは脳死してるから話すだけ無駄だけど。
0926デフォルトの名無しさん
2016/01/25(月) 03:11:39.59ID:pk9HSDt/0927デフォルトの名無しさん
2016/01/25(月) 03:20:49.36ID:fpkb5Ns60928デフォルトの名無しさん
2016/01/25(月) 04:58:58.13ID:HcUKLD+/0929デフォルトの名無しさん
2016/01/25(月) 06:10:08.22ID:0hbOE3mN0930デフォルトの名無しさん
2016/01/25(月) 21:03:36.23ID:FVVwJ32O0931デフォルトの名無しさん
2016/01/25(月) 21:20:49.19ID:Irrux0BT・WinRTコンポーネントとしてJavaScriptを呼び出す
・WebBrowserを使う (汚物)
・JScript.NET (産廃)
・WSH JScript (遺物)
0932デフォルトの名無しさん
2016/01/25(月) 21:27:46.41ID:Irrux0BT・IKVMでNashhornを利用する
遅くていいならまあ使えないこともない
0933デフォルトの名無しさん
2016/01/25(月) 21:43:37.17ID:FVVwJ32O情報ありがとうございました。
C#なので、JScript.NET (産廃) が良いかと思ったのですが、
どのあたりが 産廃でしょうか?
0934デフォルトの名無しさん
2016/01/26(火) 07:49:53.97ID:fPoW1lYFの意味なのかな。
0935デフォルトの名無しさん
2016/01/26(火) 21:07:17.48ID:96cI6c2/0936デフォルトの名無しさん
2016/01/27(水) 10:41:38.67ID:sapMCej10937デフォルトの名無しさん
2016/01/27(水) 14:40:58.56ID:LCHBmKl2するとエラー出ますよね。
そういう場合でも、強制的に削除してしまう事は可能でしょうか?
0938デフォルトの名無しさん
2016/01/27(水) 14:47:33.34ID:C1RoeKPM0939デフォルトの名無しさん
2016/01/27(水) 14:47:35.86ID:sapMCej10940デフォルトの名無しさん
2016/01/27(水) 14:48:15.18ID:Ky0LnzPtおよびそのファイルを含むディレクトリは削除できません
0941デフォルトの名無しさん
2016/01/27(水) 20:08:50.71ID:sdy15MxI例えば
var hoge = List<String>;
として
hoge.RemoveAt(hoge.Count - 1)
としているのですが
もっといい方法がある気がしてなりません
これより適切な方法がありましたらご教示頂きたく…
よろしくお願いします。
0942デフォルトの名無しさん
2016/01/27(水) 20:17:52.96ID:vDIuwjF/病気かと思いますけどね
0943デフォルトの名無しさん
2016/01/27(水) 20:19:04.34ID:sdy15MxIググッて無いとは思っているのですが
本当に無いのか?というのが引っかかってしまいまして…
0944デフォルトの名無しさん
2016/01/27(水) 20:22:08.77ID:ODr2GTmu0945デフォルトの名無しさん
2016/01/27(水) 20:23:13.61ID:sdy15MxI0946デフォルトの名無しさん
2016/01/27(水) 20:43:51.68ID:DbJX7SkT0947デフォルトの名無しさん
2016/01/28(木) 02:34:11.42ID:t3813frz0948デフォルトの名無しさん
2016/01/28(木) 11:45:41.90ID:BmnTht0Cusing System.Windows
using System.Windows.Forms;
のどちらでもOKみたいですが何が違いますか?
0949デフォルトの名無しさん
2016/01/28(木) 13:31:07.11ID:59XGHKPq参考になる本やサイト等教えてください
0950デフォルトの名無しさん
2016/01/28(木) 13:55:24.77ID:Zt+/Dst2MessageBox は System.Windows.Forms.MessageBox のことだよね
using System.Windows.Forms;
しておけば System.Windows.Forms が省略できるから MessageBox.Showと書けるというだけのこと
using System.Windows でもOKというのは意味がちょっとわからない。
0951デフォルトの名無しさん
2016/01/28(木) 16:02:37.72ID:hRq9ptwfできることは同じなのでどっち使っても良い
0952デフォルトの名無しさん
2016/01/28(木) 16:08:51.53ID:BmnTht0C>>950
ありがとうございました
0953デフォルトの名無しさん
2016/01/29(金) 14:21:40.45ID:6UBQnz7A2回連続で押した時に最短で何秒間隔まで対応出来るの?
ググってもTimerのイベントばっかり出てくるので教えてください。
0954デフォルトの名無しさん
2016/01/29(金) 14:42:49.30ID:2UArfT3fそしてダブルクリックになるかどうかは環境次第
0955デフォルトの名無しさん
2016/01/29(金) 15:34:43.76ID:6UBQnz7AButtonは例に出しただけで、単純にイベントの入力最短時間が知りたかっただけなんです。
ただSystem.Form.Timerの誤差が大きいから、
フォームコントロールのイベントの最短時間も環境次第で誤差は大き目ってことでよろしいでしょうか?
0956デフォルトの名無しさん
2016/01/29(金) 15:52:31.55ID:2UArfT3f0957デフォルトの名無しさん
2016/01/29(金) 16:25:35.49ID:6UBQnz7A0958デフォルトの名無しさん
2016/01/29(金) 17:04:10.37ID:hRxA1dAH0959デフォルトの名無しさん
2016/01/29(金) 18:14:23.57ID:LSfqF04s性的=コンパイル時にフィールドの型を決める
動的=プログラム実行時に型を決める
らしいですが、それによって何が変わるのかが分かりません
定数やリテラルはコンパイル時に決められるんですよね?
0960デフォルトの名無しさん
2016/01/29(金) 18:33:36.85ID:5/3V3hxl0961デフォルトの名無しさん
2016/01/29(金) 19:36:25.78ID:Q4yHpTCmC#は基本的に静的型付けなので初心者のうちは動的型付けなんてものは気にしないのが良い
0962デフォルトの名無しさん
2016/01/29(金) 19:57:53.04ID:qdqnYPC0データを取り込むように作っています
DataTableのUpdateの段階でデバックでは取り込んでデータが意図した順番で並んでいるのですが、
MySQLWorkBenchで取り込んだデータを見ると、なぜか順番通りに入ってきていません
ID列にはPrimaryKey、AutoIncrementを割り当てていて、IDそのものは意図した番号順に割り当てられているのですが
WorkBench上ではIDが大きいものから並んでいるんです
AutoIncrementで割り当てられている数字と実際に割り当てられるIndexはまた違うのでしょうか
0963デフォルトの名無しさん
2016/01/29(金) 20:06:58.75ID:/I2B0b0V何らかの順番でデータが欲しいなら明示的にORDER BY使うなりしないといけない
0964デフォルトの名無しさん
2016/01/29(金) 20:47:52.20ID:2UArfT3f0965デフォルトの名無しさん
2016/01/29(金) 21:01:40.42ID:9TvUQCIM>MySQLWorkBenchで取り込んだデータを見ると
これクエリ指定で結果を見るとかならともかく、データだけなら順不同になるのは当たり前じゃね
0966デフォルトの名無しさん
2016/01/29(金) 21:15:32.93ID:LSfqF04s了解しました
ありがとうございます。
0967デフォルトの名無しさん
2016/01/29(金) 21:31:33.87ID:LOv7Ax2Hファイル数分のスレッドを作成してその中で
string[] lns = System.IO.File.ReadAllLines(filename)
のようにしても問題ありませんか?
ReadAllLinesを複数スレッドから同時に使用しても問題ないかということです。
0968デフォルトの名無しさん
2016/01/29(金) 21:35:32.70ID:buwyBTyq0969デフォルトの名無しさん
2016/01/29(金) 21:38:31.01ID:CBTGpVRc0970デフォルトの名無しさん
2016/01/29(金) 21:49:59.80ID:LOv7Ax2H速度とかは重要ではなくて各スレッドの処理が正しく終わるかどうかが問題なのですが
ReadAllLinesで返される配列のメモリがどう確保されるのか分からなくて質問させてもらいました。
遅くなるだけで壊れはしないという事は
同時に呼ばれた場合もちゃんと別の領域を確保してそれを返してくれるという事でしょうか。
0971962
2016/01/29(金) 22:06:05.85ID:U6iFcKOKなるほど・・・
しかし、格納順はID(PrimaryKey,AutoIncrement)で作成順にナンバリングされていきますよね
それを保持するカラムとして機能すると思っていたのですが違うんでしょうか
いままでテーブル作成していてWorkBenchで表示させたときはいつもID順に並んでいたので
別に気にならなかったんですが、今回だけはなぜか違う
その辺なにが違うんでしょうか
IDの順序が気になったのは、DataTableに入れた値を変えてUpdateしていたときに
2回目(フォーム上のボタンから更新→フォーム閉じる→再びフォーム開いてボタンから更新)の処理で
同時実行違反になってしまい、プライマリキーがIDに設定されているか確認したり、
原因を探しているときに気づいたんですが・・・ その辺も何か関連してるのでしょうか
0972デフォルトの名無しさん
2016/01/29(金) 22:41:00.55ID:/cWmSx8Uだから、RDBの行は格納順は(論理的には)不定だって
取り出すときにOrder byしないと、どんな順番で出てくるかはわからない
今までID順で出てたのは、たまたまそうなっただけ
WorkBenchとやらがどうなってるか知らんが、並べ替えて表示する機能もってるんじゃないのか
0973デフォルトの名無しさん
2016/01/29(金) 22:53:59.41ID:u8nDFqF+いつのまにかそこを触っていたとか…
0974デフォルトの名無しさん
2016/01/29(金) 22:55:12.25ID:2UArfT3fDBエンジンにもよるけれどトランザクションを確定させる順序は挿入順とは限らないのです
0975デフォルトの名無しさん
2016/01/29(金) 22:56:57.11ID:2UArfT3fID順で十分って要件も普通にある
でも本当に必要な並び順が存在するなら明確にカラムを持てって話です
0976962
2016/01/30(土) 00:51:07.94ID:je1TvcVU単純にPrimaryKeyを基準にWorkBenchはソートしてるのかと思っていたのですが、
その辺はMySQL自体とは関係ないようですね
GridViewに表示させてるときはIDできちんと並べ替えしてましたので
その点についてはこれまで通りで参ります
>>973
デフォルトで開いたときに表示されるのとIDが逆順に並んでます
もちろん列名クリックすれば並び替えもできてます
WorkBench(SequelProでも該当のテーブルだけIDが逆順に並ぶ)は
いったい何を見て並べてるんでしょう・・・
同時実行違反はわからずじまいで、フォーム閉じる度にDataSetを再インスタンス化してます
最初に読み込んだものと1回目に更新した値、2回目に更新する値で問題が起きてるんだとは思うのですが
1回目の更新が、いわゆる他人が更新したような状態で同時実行違反につながっていると
考えているのですが、再インスタンス化以外にもっとスマートな方法がないもんでしょうか
0977デフォルトの名無しさん
2016/01/30(土) 01:49:08.58ID:WPy6oV1/そういう時は、MSDNのFileクラスの一番下を見るんだ
「この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。」
ただし!でかいファイルを読み込むとこの方法だと大量のメモリを消費して最悪失敗するから注意
できれば一行ずつ処理すべき
0978デフォルトの名無しさん
2016/01/30(土) 02:52:45.01ID:97c75ht0List<string> list12 = list1.Concat(list2); だとエラーで
List<string> list12 = list1.Concat(list2).ToList<string>(); ならOKなのは
なぜですか?
0979デフォルトの名無しさん
2016/01/30(土) 03:36:25.57ID:+bXCU4qnIEnumerable<TSource> Concatだからlist1.Concat(list2)はIEnumerable<string>になるのでTolistが必要になる
0980デフォルトの名無しさん
2016/01/30(土) 03:47:36.83ID:97c75ht0List<string>を連結しているのだから、結果も自動的にList<string>になる
ほうが便利だと思うのですが、何故そうなっていないのですか?
0981デフォルトの名無しさん
2016/01/30(土) 03:59:16.44ID:z1eJzV/m0982デフォルトの名無しさん
2016/01/30(土) 04:48:55.53ID:ZlzREZMQToArray()にしたい場合もあるからじゃね
それにforeachにすぐ掛けることもできるし
0983デフォルトの名無しさん
2016/01/30(土) 08:06:28.17ID:Io+HPEGm"aaa{0}bbb"なら1
"aaa{0}bb{1}ccc"なら2
"aa{0}bb{0}cc{1}ccc"なら2
といった具合に値を返して欲しいのです
0984デフォルトの名無しさん
2016/01/30(土) 08:41:02.59ID:96ElhlW80985デフォルトの名無しさん
2016/01/30(土) 08:56:46.75ID:C5JZiLR50986デフォルトの名無しさん
2016/01/30(土) 09:35:25.65ID:xTElL0w9便利だと思うのは、あなたの私見だから。
0987デフォルトの名無しさん
2016/01/30(土) 09:38:13.63ID:xTElL0w9可変長引数で関数作成して、その長さを返せば良い。
何の意味があるのかは知らないが。
0988デフォルトの名無しさん
2016/01/30(土) 11:28:38.58ID:opD0leUp0989デフォルトの名無しさん
2016/01/30(土) 11:39:09.91ID:6Po/ckh8リストインスタンス作るコストはただじゃないから
0990デフォルトの名無しさん
2016/01/30(土) 12:20:22.02ID:+FxrPnS0そーゆうあなたは定脳
0991デフォルトの名無しさん
2016/01/30(土) 12:21:19.10ID:WViD2aM90992デフォルトの名無しさん
2016/01/30(土) 13:16:43.52ID:WPy6oV1/実装を見るとわかるけど、yield returnを順番にしてるだけでメモリも時間もほとんどかからないから
ToListすると、全部コピーすることになり、ものすごいコストがかかる
0993デフォルトの名無しさん
2016/01/30(土) 20:06:58.13ID:PQgbVUpF0994デフォルトの名無しさん
2016/01/30(土) 23:02:46.48ID:ahDYA9hb0995デフォルトの名無しさん
2016/01/30(土) 23:38:53.79ID:I7tE4l0oConcatの正体はIEnumerable<T>の拡張メソッドで、引数もIEnumerable<T>だからIEnumerable<T>を返すのは自然だったりする
0996デフォルトの名無しさん
2016/01/30(土) 23:40:25.46ID:xTElL0w90997デフォルトの名無しさん
2016/01/30(土) 23:42:03.59ID:K5qkBmzk0998デフォルトの名無しさん
2016/01/31(日) 00:53:16.84ID:OtXGSzkVhttp://peace.2ch.net/test/read.cgi/tech/1454169140/
0999デフォルトの名無しさん
2016/01/31(日) 00:54:30.83ID:OtXGSzkV1000デフォルトの名無しさん
2016/01/31(日) 00:54:57.79ID:WZAhYY4A10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。