ふらっと C#,C♯,C#(初心者用) Part131 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/09/08(金) 18:12:11.06ID:Ej7G00WU
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part130
https://mevius.2ch.net/test/read.cgi/tech/1500327645/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
101デフォルトの名無しさん
垢版 |
2017/09/12(火) 11:29:54.29ID:FDETfUWp
Enum使う手もあるけど
用途次第
2017/09/12(火) 11:42:24.56ID:3hDQXbkU
>>97
linqは遅いので使わない方法に直す
2017/09/12(火) 12:06:09.15ID:vpJikBX5
>>102
その程度の差が問題になるくらいシビアなパフォーマンスを求められる場合ならばね
2017/09/12(火) 12:23:45.40ID:1FkmH3QI
class Product
{
  string Field1 ...
  string Field2 ...
  ...
  private static Dictionary<string, Func<Product, string>> mSelectorTable
  = new Dictionary<string, Func<Product, string>>()
  {
    {"Field1", p => p.Field1},
    {"Field2", p => p.Field2},
    ...
  }

  public static Func<Product, string> GetSelector(string key)
  { return mSelectorTable[key]; }
}

...

var s = Product.GetSelector(input);
var result = list.select(s);
2017/09/12(火) 12:27:58.67ID:3hDQXbkU
>>103
わざわざ遅い方法で書く必要もないだろ
2017/09/12(火) 12:31:47.09ID:UuTpmvic
また無駄な最適化野郎か
2017/09/12(火) 12:36:22.11ID:vpJikBX5
>>105
わざわざ冗長な方法で書く必要もないだろ
2017/09/12(火) 13:05:09.61ID:02LA08SS
無駄な時間ならいくらでもある人らが語る最適とは…?
2017/09/12(火) 13:11:24.60ID:3hDQXbkU
>>107
でも遅いのは問題だよね
2017/09/12(火) 13:12:12.91ID:3hDQXbkU
わざわざ変な書き方して遅いとか最悪だよね
2017/09/12(火) 14:33:34.10ID:FDETfUWp
>>97
とにかくswitch文をなくしたいならGetPropertyとGetValue
2017/09/12(火) 14:57:46.17ID:vpJikBX5
>>109
その遅さが問題になるくらいシビアなパフォーマンスを求められる場合ならね
2017/09/12(火) 14:58:53.99ID:DYcGerqT
>>110
もしlinq自体を変な書き方と言っているのであれば論外やな
2017/09/12(火) 15:54:15.87ID:PKo4ssy2
車輪やねん
115デフォルトの名無しさん
垢版 |
2017/09/12(火) 16:11:01.84ID:BNnArjmm
>>111
GetPropertyとGetValueで一行で出来ました!ありがとうございます
2017/09/12(火) 17:18:31.24ID:3hDQXbkU
>>113
え?
linq流行ってると思ってるの?
いつリストラされてもおかしくない機能
2017/09/12(火) 17:22:05.97ID:pxacDdSl
絶対構うなよ
2017/09/12(火) 17:33:49.59ID:3hDQXbkU
>>117
単発に言われてもね
2017/09/12(火) 17:42:06.71ID:ZIY9GNtc
Linqはいらないけどイテレーターパターンとλ式は要るよね
2017/09/12(火) 17:44:55.63ID:3hDQXbkU
>>119
俺はいらねぇ
使いたい奴は使えばいい
2017/09/12(火) 17:47:10.30ID:ZIY9GNtc
そうだね
じゃあこの話題は終わりだね
2017/09/12(火) 19:25:39.37ID:DYcGerqT
こいつASP.NET Coreのテンプレ見たら発狂しそうだな
2017/09/12(火) 19:37:32.63ID:DSJ7r+Sb
Linq使わないでどうやってんの?
毎回foreach回してんの?
2017/09/12(火) 19:52:04.69ID:3hDQXbkU
>>123
まあ、初心者には難しいよね
2017/09/12(火) 19:57:40.23ID:ymUUq88t
>>123
荒らしはスルー推奨
2017/09/12(火) 19:59:52.92ID:3hDQXbkU
>>125
単発に言われてもね
2017/09/12(火) 20:06:00.88ID:qnTxA+Nu
誰だアホの逆鱗に触れたのは
責任もって殺しとけよ
2017/09/12(火) 21:29:57.85ID:3hDQXbkU
>>127
単発に言われてもね
2017/09/12(火) 21:36:08.20ID:3hDQXbkU
こういう状況になると必ず単発ばっかりになるよねw
ビビリのくせに発言してんじゃねーよクズがw
2017/09/12(火) 21:44:26.71ID:8OQVQBrq
さすがにここまで幼稚で恥知らずだと引くね
2017/09/12(火) 21:45:04.44ID:JIE9XJ1l
for使っている会社のおっちゃんにforeach楽ですよとそれとなく言ったら、遅いしそれに添字使えねえだろと叱られた
2017/09/12(火) 21:49:02.28ID:3hDQXbkU
>>130
って単発で言うんだ?w
2017/09/12(火) 23:13:52.09ID:ZIY9GNtc
添え字っていつ使うんだ?
2017/09/12(火) 23:34:48.50ID:AR+my0wk
さいて〜
2017/09/12(火) 23:50:16.50ID:gWobfM7L
ID:3hDQXbkU(13)
2017/09/12(火) 23:55:21.70ID:3hDQXbkU
>>135
匿名掲示板でもそんなビビリで大丈夫なのかお前w
137デフォルトの名無しさん
垢版 |
2017/09/13(水) 02:42:40.26ID:LyfBWgxR
C#で使える軽量なWebブラウザコンポーネントを教えてください。
SHDocVwはAxImportしてもレジストリ編集しないとIE7相当でしか動作しないですし、Chromeだとインストールしないといけないので・・・・
exeと同じフォルダにdll置いておくだけで使えるのが欲しいのですが。
2017/09/13(水) 07:55:13.31ID:szmZ8wjk
>>131
foreachってコレクションのアクセス順序保証してるんだっけ?
2017/09/13(水) 08:05:28.36ID:RaLzloEv
質問です。よろしくお願いします。

システムカラーを変数で指定するにはどうしたら良いでしょう?
SystemColors defBGC;
defBGC = SystemColors.ActiveCaption;
簡単に言うと↑のような事をやりたいのですが、宣言ではローカル変数として扱われますが、代入でエラーが出てしまいます
どのようにして代入すればよいのでしょうか?
2017/09/13(水) 08:05:39.55ID:NbPbWVRY
Linqが遅いって言う馬鹿はなんでC#使ってるの?
機械語で直接プログラミングでもしてろw
2017/09/13(水) 08:20:31.29ID:efGCb2+a
>>140
そんな遅さじゃ無いよね?
下手すると10倍ってレベルだし
2017/09/13(水) 08:22:40.72ID:Lhui2ZmI
それがシステムのボトルネックになる場合のみ気にしろ
2017/09/13(水) 08:23:54.63ID:NbPbWVRY
>>141
はあ?
2017/09/13(水) 08:24:37.37ID:KoAlYIGF
10倍君って前にも暴れてたよーなと思ってログ検索したら100倍だった
IBMがどうとか言ってたから多分別人のバカだ
2017/09/13(水) 08:29:18.96ID:efGCb2+a
いや、流石にそこまで遅くなる処理わざわざ使う意味ねーし
俺は遠慮させてもらうわ
2017/09/13(水) 08:32:14.78ID:efGCb2+a
あ、ちょっと気になって
いまもそうなのかなぁと思って前書いたコードでやってみたけど
100倍も有り得る数字出るな
激遅いじゃん
これは普通に使ってると問題出るね
2017/09/13(水) 08:36:51.86ID:NbPbWVRY
>>145-146
そんなに遅いのが嫌なら別の言語やれよ低脳w
2017/09/13(水) 08:37:47.60ID:efGCb2+a
>>147
お前の作るものが欠陥品過ぎて気になってないだけ
2017/09/13(水) 08:40:07.14ID:NbPbWVRY
>>148
どうしてC#使ってるの?ねえ?なんで?w
150144
垢版 |
2017/09/13(水) 08:46:03.62ID:KoAlYIGF
IBMじゃなくてOracleだったわ
統計的結果がどーたらって

もう6年も前の話なんだなあ
いまだにこんなのが湧いてくるくらい、C#ユーザも新陳代謝してるんだな
感慨深い
2017/09/13(水) 08:51:52.43ID:2OL+AYLM
oracle()
2017/09/13(水) 09:00:16.82ID:jUJn8YC2
>>149
10倍も遅くならないから
でもlinqは普通に10倍ぐらいは遅いよ
2017/09/13(水) 09:08:49.90ID:NbPbWVRY
>>152
1ナノ秒が10倍遅いのと1秒が2倍遅いのとでは10倍の方が結果速いって例えは理解できる?
Linqは前者。てーのーくんにはわからないだろうな〜w
154デフォルトの名無しさん
垢版 |
2017/09/13(水) 09:10:16.92ID:NSWcHcOm
>>139
SystemColorsの各プロパティが返すのはColor型だよ
システム色だけを代入できる型ってのはSystem.Drawingには存在しない
全部Color構造体で扱われる
2017/09/13(水) 09:14:16.27ID:jUJn8YC2
>>153
問題は同じ処理だとしてもネックになる箇所で同じ処理でも別の処理書かなきゃいけないじゃん
それも面倒だし
全体に散りばめたときに10倍っていうと流石に問題が起きる遅さだよね

linq禁止のがぶっちゃけ楽だねぇ
2017/09/13(水) 09:18:11.66ID:AIHl3Jwd
>>150
C#は入りやすいし、色々作りやすいから好きだわ
GUIもちゃと作れるし、Unityでゲームも作れる
今後はxamarinでアプリ開発もできるようになるし
やったねC#!
2017/09/13(水) 09:22:17.18ID:uHFm/dQd
>>155
コード晒せ
2017/09/13(水) 09:24:03.36ID:RaLzloEv
>>154
ありがとうございます
できました
2017/09/13(水) 09:26:53.05ID:NbPbWVRY
>>155
え?処理のかき分けが面倒なんだw
Linq禁止する方が面倒なのにな〜wてーのーくんは世界の人々がどうしてLinq使ってるか考えたことないの?ねえ?
2017/09/13(水) 09:50:09.34ID:jUJn8YC2
>>159
だってかき分けの工数見積りに入ってねーし
2017/09/13(水) 10:04:51.90ID:a0xLHUjR
http://qiita.com/wilfrem/items/0cbece30e278353eb941
LINQが遅いと言われてたので速度比較してみた

結論
LINQは遅いっていうのは、ボトルネックの考え方的に間違いである。
ただし、LINQの一部関数は遅いので改良の余地はありそう。
162デフォルトの名無しさん
垢版 |
2017/09/13(水) 10:07:49.89ID:MBL3+jC1
売国安倍は憲法改正で国民主権と基本的人権
を奪うつもりだ。 ← 民主主義の崩壊

http://www.data-max.co.jp/280113_ymh_02/

↑ マスコミは 9条しか報道しないが 自民案
の真の恐怖は21条など言論の自由を奪うこと

http://blog.goo.ne.jp/kimito39/e/ec37220f64a8e1d6ed732dd0ab95cbf0

↑超危険な緊急事態条項で人権無視の内閣独裁に!

https://www.youtube.com/watch?v=h9x2n5CKhn8

上のビデオで 自民党は 国民に基本的人権
は必要ないと怖いことを平気で主張。

http://xn--nyqy26a13k.jp/archives/31687

↑ 都民ファーストも安倍と同じく 憲法改正で 人権
無視の大日本帝国憲法に戻すつもりだから
絶対に投票してはだめだ。 民主主義が崩壊する

http://blog.goo.ne.jp/ngc2497/e/8899f65988fe0f35496934dc972e2489

↑ ネトウヨ= 安倍サポーター工作員はネットで国民を騙す。

https://dot.asahi.com/aera/2016071100108.html?page=3
http://blog.goo.ne.jp/kimito39/e/c0dd73d58121b6446cf4165c96ebb674

↑ 安倍自民を操るカルト右翼「日本会議」は国民主権否定。
国民投票や選挙では自民党、維新、小池新党に絶対に入れるな。
2017/09/13(水) 10:20:15.53ID:NbPbWVRY
>>160
はー?そんなんだから底辺なだよ君はw
もっとさぁ勉強してきなさい
2017/09/13(水) 10:26:50.59ID:jUJn8YC2
>>163
実際二度手間じゃん
わざわざ遅い処理使う意味もよくわかんないし
2017/09/13(水) 10:28:43.32ID:uHFm/dQd
>>164
コード晒せ
2017/09/13(水) 10:35:04.05ID:NbPbWVRY
>>164
はあ?二度手間?これだから低脳はw
自分の考えとやってる事が手間になってるという現実にはやく気付こう?ね?
2017/09/13(水) 10:40:39.80ID:krw6K623
>>166
は?実際二度手間じゃん
使わなければそれに悩むこともないし
しかもこれを使ったからといってそんなに手間が減るわけじゃないよ

でも、10倍遅いんだよ
リスクばっかり高いよね
2017/09/13(水) 10:45:51.78ID:+YTT5det
>>166
君も自分が確信犯で荒らしてる寂しいバカの共犯にとっくになってることに早く気づけ。
っていうかこんな幼稚なバカ相手にして何が楽しいんだ
2017/09/13(水) 10:45:59.33ID:NbPbWVRY
>>167
使い分けができない底辺プログラマーですって自己紹介してるようなものだよ?
それとも自分はそうですって認めちゃってるのかな??
2017/09/13(水) 10:47:58.15ID:krw6K623
>>169
え?どうやって使い分けるの?
見積りに必要なのに見積り時に出てこないじゃん
かき分けの工数が
2017/09/13(水) 10:50:09.53ID:9sNAvSM9
>>138
これ見る限り大丈夫じゃね

https://msdn.microsoft.com/ja-jp/library/aa664754(v=vs.71).aspx
>foreach が配列の要素を走査する順序は、次のように定義されます。1 次元配列の場合、要素はインデックス 0 から始まってインデックス Length ? 1 で終わるインデックスの昇順に走査されます。
>多次元配列の場合、要素は、最初に右端の次元のインデックスが増加し、次にその左側の次元のインデックスが増加し、さらにその左側の次元のインデックスが増加する、というように走査されます。
2017/09/13(水) 10:51:21.99ID:NbPbWVRY
>>170
あ、やっぱり出来ないんだね
その歳で可哀想
2017/09/13(水) 11:14:56.36ID:rN6iPy1t
やばすぎワロリーヌ
2017/09/13(水) 11:21:14.85ID:dr0a1QEl
$"{num:D4}"
こういうふうに書式を指定して数字を表示したいときに、この4の部分を変数に変えるのってどうすればいいの?
2017/09/13(水) 11:46:51.07ID:szmZ8wjk
>>171
なる程、大丈夫そうだね。サンクス
176デフォルトの名無しさん
垢版 |
2017/09/13(水) 11:47:30.22ID:NSWcHcOm
>>174
多分無理
$"{num.ToString("D"+x)}"
みたいにそこだけToStringすれば?
2017/09/13(水) 11:48:53.98ID:krw6K623
>>172
ん?でどうやるの?
答えられないのに煽りだけは一丁前なの?
2017/09/13(水) 11:54:11.91ID:NbPbWVRY
>>177
あれあれ?
さっきからてーのーくんの言ってること全部ブーメランしてるよ
2017/09/13(水) 12:04:54.00ID:krw6K623
>>178
は?どこが?
このままだと負けちゃうからって変なこと言い出すなよw
2017/09/13(水) 12:08:41.80ID:+9qu6YUz
キチガイにさわんなすな
2017/09/13(水) 12:08:44.02ID:NbPbWVRY
>>179
負けるとか何言ってるのかな?本当に頭悪いね〜w
使い分けができないのを言い訳にしないでまずはちゃんと勉強しなさい
2017/09/13(水) 12:23:06.88ID:krw6K623
まあ、俺をやっつけたところでlinqがおっそいことは変わらないけどね

お前の作るものって全部ナチュラルに10倍遅いだろ
今時のPCだから大丈夫って?
いやー、俺の使うアプリでは遠慮して欲しいなw
メモ帳とかお前が作ると普通に起動に10倍かかるんだろ?w
2017/09/13(水) 12:23:18.90ID:+YTT5det
>>175
これ、前にも話題になったけど、
foreachが列挙する順序はコレクションの列挙子の実装に依存するよ。

>>171の記述は配列についてのもの
2017/09/13(水) 12:28:02.59ID:NbPbWVRY
>>182
Linq使うと起動に10倍も時間かかるんですか〜?w
無知を曝け出して恥ずかしくないの?あ、低脳だから気付いてないのかw
2017/09/13(水) 12:30:29.30ID:X5nLy4IB
private void Form1_Load(object sender, EventArgs e)
とForm1ロード時に実行されるイベントハンドラを
Form1上のボタンが押された時に再度実行したい時に
ボタンクリックのイベントハンドラに
Form1_Lord(null,null);
と書いて呼び出した場合、何かまずいことありますでしょうか?
今のところ、Form1_Load内でthis.はForm1として作動しているようですが、
Form1を明示的に指定したほうが良い気がしますが、
Form1_Lord(null,null);
のnullの部分にどう書くとForm1からの呼び出しという体になりますか?

やりたいことはボタンで追加した配列を再度読み込んでForm1_Lordを動かしたい
いわばForm1のリロードといった感じです

言葉を間違えてるかもしれませんが、よろしくお願いします
2017/09/13(水) 12:38:12.21ID:krw6K623
>>184
でもお前が作ったもんって普通に遅いと思うよ
どこでもそういう遅い処理書いて全体に散りばめちゃってるとネックになるとこしかみないっしょ?
でもロードとかちょっとしたとこでも処理使い回してるから
いまるところで微妙に遅いっしょw
積もり積もってクソ遅いけど比較対象がないからバレにくいって感じ
2017/09/13(水) 12:43:04.63ID:NbPbWVRY
>>186
そうやって事実でないことを思い込みで事実だとして今までの人生を生きてきたのかな?
君の頭の中ではLinq使うと起動が10倍遅いんだもんね〜
そろそろ現実を見ようよ?
2017/09/13(水) 12:52:48.02ID:U2Uyxd+B
マジキチの共演か
ただのプロレスか
2017/09/13(水) 13:04:29.12ID:xEywpSPi
>>185
よくやります。
自分は
Form1_Lord(this,null);
にして、呼ばれ側で e がNULLがどうか見て、自然なイベントか人為的イベントか区別したりしてます。
2017/09/13(水) 13:16:33.38ID:+YTT5det
>>185
>>189
いや、そういう場合は今Form1_Loadに書いている処理を別の独立したメソッドHogeに移して、
FormのLoad、ButtonのClickそれぞれのイベントからHogeが呼ばれるようにしましょうよ

方法はラムダ式使って
this.Load += (s, e) => Hoge();
Button1.Click += (s, e) => Hoge();

でもいいし、ラムダ式が分からないならデザイナで追加したイベントハンドラから
Hogeを呼んでもい
2017/09/13(水) 13:30:55.02ID:PNHj0wS/
決まった目的のために作られたイベントハンドラを別の目的に使うのはよくないよ

すでに書いたコードを実行したいだけなら別のメソッドにしたほうがいいというかすべきだよ
VSのリファクタリングが便利
メソッドにしたい部分を選んでおいてメソッドの抽出を行うだけ
2017/09/13(水) 13:53:58.18ID:efGCb2+a
>>187
いや、普通に遅いだろ
2017/09/13(水) 14:17:03.48ID:NbPbWVRY
>>192
起動が10倍遅いって本気で思ってるんだ?呆れた
2017/09/13(水) 14:23:53.02ID:GgMwIiBh
LINQに親を殺されたマン
2017/09/13(水) 14:35:06.35ID:X5nLy4IB
>>190
>>191
どうもありがとうございます
やはり行儀悪そうですよね。スッキリもしてないし、なんとなくロジカルじゃない。
別メソッドに移してソレを呼び出す方向でいきます

>>189
どうもありがとうございます
「あぁここでリロードかからないから更新されないんだぁ〜」と気づいた時に応急処置的に使ったんですが、
「あ、結構ちゃんと動くw」のでこれ良いのかな?ってっ感じでしたが、人為的呼び出しを区別するという使い方もできるんですね

今は勉強中なので、私には裏技的なものはまだ早いですね
2017/09/13(水) 16:56:12.13ID:bmJBLYID
このスレはラムダ、LINQ、デリゲート禁止なんで
2017/09/13(水) 16:57:28.21ID:szmZ8wjk
あとvarもな
2017/09/13(水) 16:59:44.77ID:Lhui2ZmI
varは宗教戦争
ラムダとlinqは新しい物に適応出来ない老害が喚いてるだけ
2017/09/13(水) 17:02:03.09ID:efGCb2+a
>>198
えーあの遅さを老害で片付けるってなくね?
10倍だぜ10倍
2017/09/13(水) 17:04:29.26ID:NbPbWVRY
頭の遅れも10倍のてーのーくんにはLinqが理解できないらしい
2017/09/13(水) 17:06:30.00ID:cy/tvTzl
することないからと言って初心者の質問スレで雑談するな。他行けよ
■ このスレッドは過去ログ倉庫に格納されています