ふらっと C#,C♯,C#(初心者用) Part135

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 8b75-uWnk)
垢版 |
2018/02/04(日) 22:02:28.59ID:FbKpa1HN0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part134
http://mevius.5ch.net/test/read.cgi/tech/1511951038/
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/

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

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2018/02/13(火) 11:06:19.59ID:i7fy8Ihld
>>428
>MainWindow.xamlのtextbox name=“A” “B”を
これの意味がよく分からない
TextBoxを2つ配置してそれぞれの名前をAとBにしたってこと?
2018/02/13(火) 19:39:40.10ID:VYHMGw6PM
queue使わずにListでも似たことが実装可能だと思いますが、queueのメリットってありますか?
2018/02/13(火) 20:05:26.97ID:hyhJ5vah0
Listを使わずに済む
2018/02/13(火) 20:09:36.43ID:MkuiJNyl0
キューのデータ構造を直感的に操作できることに意味があるのでは?
速度的な話は知らんにゃ。
2018/02/13(火) 20:16:33.15ID:ElvL/+ZbM
わざわざ「似たことを実装」せんですむ
List使わなくても配列で似たことを実装できるよね?
2018/02/13(火) 20:20:20.62ID:VxQLTbdHa
>>431
真面目に聞いてるなら、たぶんQueueかListのどちらかまたは両方を理解してないだけだと思う
理解してたらそんなアホな質問はしないと思うなあ
2018/02/13(火) 20:23:27.54ID:IAqZQvKL0
>>435
検討違いだから引っ込んでていいよ
2018/02/13(火) 20:25:51.93ID:4GSdWauJ0
マウンティング
2018/02/13(火) 21:08:44.99ID:i7fy8Ihld
>>431
一般的なキューの作業に限るならパフォーマンスがいい
検索みたいな作業をさせると落ちるけど
2018/02/13(火) 21:36:16.98ID:EkKTn+I70
>>431
特化していることに意味がある。

・キュー動作(先入れ先出し)以外が出来ない。(途中に入れたり取り出したり出来ない)
・キューに最適化した構造なのでパフォーマンスが良い。
2018/02/13(火) 22:15:30.17ID:3CyK4CdI0
パフォーマンスより、それがキュー(FIFOバッファ)であることが明らかなのがメリットなんじゃね
2018/02/13(火) 22:45:35.17ID:67cSYExB0
メモリリークや速度に問題がでたときはコードの美しさよりもカリカリに動く方が優先されるかな
どっちのがなんて気にしないでどっちもメリットって考える方が建設的だよ
2018/02/13(火) 22:56:07.10ID:MkuiJNyl0
コードポリポリ
2018/02/13(火) 22:59:32.72ID:1xfxQHcIa
今時は速度に問題が出たらマウスでポチポチしてちょっと高いインスタンスに変えたら解決
無駄な開発とメンテのコストをかけるよりずっと安上がり
2018/02/13(火) 23:06:25.02ID:YVR14H+qM
運用コスト無視か
2018/02/14(水) 05:18:51.14ID:DeENz/ESH
FIFO構造のqueueの機能がいかせる場面って、最近は局所的な場面だけだわな。
通信ぐらいか?
2018/02/14(水) 07:24:46.45ID:bdz0yRJGM
くそコードを綺麗にリファクタリングしてくれるサービスないですかね
2018/02/14(水) 07:45:36.60ID:DeENz/ESH
ILSpy
2018/02/14(水) 07:52:00.11ID:Dh0Ktwjhd
きれいにコメントを消してくれるな
2018/02/14(水) 09:25:34.75ID:iXQGvev/0
C#始めようと思ったら他と比べて教材あんま出てないし、中古も出回ってなくて高いなあ
2018/02/14(水) 09:28:37.15ID:9uGoJbXy0
未確認++でよくね
451デフォルトの名無しさん (ワッチョイ 62e0-jA6l)
垢版 |
2018/02/14(水) 12:42:24.63ID:pSHgdCSe0
猫でもわかるは?
2018/02/14(水) 12:42:36.42ID:Dh0Ktwjhd
>>449
ネットにいくらでもある
453デフォルトの名無しさん (ワッチョイ c29d-+g9t)
垢版 |
2018/02/14(水) 13:17:41.66ID:UFv5UzG30
>>445
キュウは意外と使われていないな。しかし本来連続処理をする場合はキューが必要になる。
例えばフィルターとか、通信処理ではなくてもメッセージの改行ごとの切り出しとか。キューを使うべきなのだが
つかってる例がない。
 そもそもこのQueueの仕様がだめなんだよな。まるでハードFIFOのまんまじゃないか。笑える。
折角オブジェクト指向で柔軟に作り込みできるのに、何の機能もついてない。ライトするときの型とリードするときの型を
変えられないと意味ないだろ。W
というわけで、
配列でライトして、バイトリードできる利口なキューReQueを作りたいんだが、どう定義したらいいんだ?
2018/02/14(水) 13:28:38.96ID:gTX+9oIaa
BCLのQueueは使いづらいのは確か
昔byte[]でもANSIのstringでもpush/popできるQueueを自作したよ
455デフォルトの名無しさん (ワッチョイ c29d-+g9t)
垢版 |
2018/02/14(水) 13:38:10.36ID:UFv5UzG30
ReQue<int[], byte > qq;
とか
ReQue <strigng, LineString>pp;
とか
1.は array をライトしてByteでリード
2.はStringでライトして、CRLFの区切りで切り出し
こんなのはできないか?
456デフォルトの名無しさん (ワッチョイ c29d-EuZI)
垢版 |
2018/02/14(水) 16:33:41.33ID:UFv5UzG30
 適当に言ってみただけだが、わりと簡単に作れそうだな。
C#って無茶苦茶強力だな。何でもできる。
2018/02/14(水) 18:34:43.79ID:9PWsvYdNM
>>435
な?これだけの議論になる。基礎から勉強し直してこい
2018/02/14(水) 18:38:04.56ID:SoqZVQB/0
いいからさっさとプログラム作れよって思う
2018/02/14(水) 20:23:01.20ID:NjiVKZ8+0
猫でもわかるはやめとけ
460デフォルトの名無しさん (ワッチョイ c29d-EuZI)
垢版 |
2018/02/14(水) 20:39:24.65ID:UFv5UzG30
楽しいC# 川保昌 が楽しい。
2018/02/14(水) 20:42:58.50ID:VDW2B33b0
実戦で役立つ C#プログラミングのイディオム/定石&パターン
独習c#(この前でたもの)が良いと思う
2018/02/15(木) 15:56:01.26ID:5f53kE1X0
WPFってほとんど使われてないって本当ですか?
windows formの方がいまでも需要あるんですかね?WPFしかやったことないから知らなかった。
2018/02/15(木) 16:29:04.46ID:TVpLPkaar
ざまりんと共に使う
2018/02/15(木) 19:39:58.36ID:A5/xapSq0
慣れればWPFの方が楽チン。

WPF用のスレあるから、そっちで
2018/02/16(金) 10:47:11.43ID:whVATIbQ0
https://qiita.com/nskydiving/items/3af8bab5a0a63ccb9893
>Windows Formsの高DPI

VS2017の新機能に高DPIってあるけども、
別にVS2010とかでも、高DPIは使用出来ますよね?
ただちょっとフォントがボケるくらいで、表示不可能とか位置がズレることは無いって認識で合ってますか?
2018/02/16(金) 11:39:04.54ID:gNYDvrte0
Winformsは中途半端なHiDPIサポートが元々入っているせいで
注意深く組まないとネイティブアプリよりもむしろレイアウト崩れやすいレベルだぞ
4.7で追加されたHiDPIサポートとやらもWin10のCUからでないと有効にならない
2018/02/16(金) 13:47:07.04ID:whVATIbQ0
Win10もアップデート次第でレイアウトが異なることがあるのですね・・・。
ありがとうございます。
468デフォルトの名無しさん (ワッチョイ ff8a-F5uH)
垢版 |
2018/02/16(金) 21:43:20.45ID:Mt/w8W0Z0
テキスト編集ソフトを作ってるんですが、ユーザーが開いたテキストファイルの一覧を、
外部ファイルを使用せずにアプリ自身に保存するにはどうしたらいいでしょうか?
2018/02/16(金) 21:56:21.48ID:A7OU5IQxM
GetManifestResourceStream
2018/02/16(金) 21:59:34.47ID:aWM8HJJf0
アプリ自身とは?
2018/02/16(金) 22:02:30.71ID:nFmF7Hof0
>>468
レジストリにでも書いたら?
2018/02/16(金) 22:02:51.33ID:PU4qYOCy0
ゲームのカートリッジみたいに読み書き可能な領域がexe内にあると思ってんじゃないのか
2018/02/16(金) 22:07:54.18ID:aWM8HJJf0
アプリケーション設定とかでいいのでは
2018/02/16(金) 22:10:44.38ID:QLkhweBna
ネタ質問だと思うけど無理なことは無理と言ってあげた方が
2018/02/16(金) 22:12:01.91ID:PU4qYOCy0
C++で似たようなことをやったときは
exe起動→exeのコピーを作成して起動。オリジナルは終了→
メイン処理→オリジナルのexeを書き換えてPEのチェッサムを再計算
とやった
2018/02/16(金) 22:18:35.64ID:PU4qYOCy0
これだとexeが増えてしまうが
exeをコピーして起動でなく、CreateRemoteThreadで他のプロセスに寄生してしまえばexeを増やさなくてすむ
いかにもウイルス的だけど
2018/02/16(金) 22:55:11.48ID:znnk/TEX0
javaかじってこっちに流れてちょっと学び始めたけど驚くほどjavaとそっくりなんだね
2018/02/16(金) 22:59:37.74ID:eSiK1MpKM
完成度は全然違うけどな
2018/02/16(金) 23:39:51.32ID:eZovZERlM
c#8.0ではjavaの機能取り入れるけどな
2018/02/17(土) 00:00:34.91ID:TPVLAw2w0
まあ、後発なんで優れてるのは当たり前
2018/02/17(土) 00:36:33.22ID:j0IS5ultM
そりゃJava使いならJavaと対応してるものに目が行くから似てるように感じるのは当然だろう
今のC#は拡張に拡張を重ねてC++に匹敵するくらい複雑怪奇な言語だよ
2018/02/17(土) 01:06:15.13ID:Pl8OneCg0
>>481
確かに複雑になっては来てるけど、C++に匹敵ってのは大げさだろ。
C++はC++11/14/17と着実に先を進んでるからな。
2018/02/17(土) 01:29:36.78ID:bbXvf+EMM
c#は最近は後発気味
毎回追加される仕様は他の言語から引っ張って来てるものばかり

typescriptの仕様とかそろそろ入れてくるんじゃないかと思ってる
2018/02/17(土) 01:32:34.38ID:+o87Nyag0
議論するならもうちょっと具体的に話してよ
2018/02/17(土) 02:41:03.42ID:BrkeBPe80
>>483
昔からそうやろ
2018/02/17(土) 02:51:15.89ID:YrEj1JRO0
タイプスクリプトにあってC#にない機能しないなんてある?
2018/02/17(土) 02:51:59.54ID:YrEj1JRO0
x 機能しない
o 機能
2018/02/17(土) 08:38:05.68ID:OoNlElF90
TypeScriptの肝とも言える structual type と type guard はC#にはないんじゃないかな。
2018/02/17(土) 09:08:22.67ID:Wng2aIfJ0
型関連は TypeScript の方が高度で精密
型消去されるので CLI の仕様に縛られない
2018/02/17(土) 10:08:20.03ID:y9IWVG5ba
TypeScriptの型システムは完全なstructual subtypingで、そもそも型に対する考え方が大きく違う
「同名のメンバを一つでも持っていれば、共通する部分については同じ型と見做す」という、
高度で精密という表現からはかけ離れた大雑把な型システムだよ
インターフェイスの明示的実装なんかは原理的に不可能だし
2018/02/17(土) 10:56:49.75ID:OoNlElF90
既存の型との相互運用は限定されるだろうけど、一つの言語に両者を混在させるところまでは可能だろうな。
ようは型ヒント付きのVariant。
2018/02/17(土) 10:58:44.71ID:YrEj1JRO0
>>483が言ってるのって構造的型と型ガードのことなの?
他にはないの?
2018/02/17(土) 13:18:14.51ID:JhxlZtl8a
uniontypeとか入れたい人がいるようだけど

void aaa(string | int | double a )
{

こんな感じで複数の型を受け入れられる
2018/02/17(土) 13:43:29.29ID:FvBroJk9p
c#始めて少しだけど、最初にデータバインドでつまづいて
今は非同期処理を使いこなせなくて辛い
linqもまだまだだし、1人前になるには少なくとも1年はかかるだろうか
2018/02/17(土) 14:13:33.07ID:7mikedr/0
>>494
言語に振り回されてる
大事なことはプログラムを完成させることだし
処理を実現すること
2018/02/17(土) 14:34:56.50ID:FvBroJk9p
>>495
その通りなんだけど、そもそもやりたいことを実現するために機能が必要なことが多い

xamlに値を直接書きたくない→データバインド
webリクエストを投げてかえってきた結果をスクレイピングして使いたい→非同期処理
コレクションの処理を簡潔に記述したい→linq

全部使わなくても出来るとは思うけど、
どうせあとで書き換えることになるだろうし、
ちゃんと学んでおいた方が後の手戻りが少なくなると思う
2018/02/17(土) 14:37:48.23ID:m4knDq8I0
まあ頑張れ
要は慣れだ
2018/02/17(土) 14:38:59.68ID:JhxlZtl8a
動いてるものを書き換えることは少ないよ

特にlinqへ書き換えは趣味の世界
2018/02/17(土) 14:41:34.73ID:7mikedr/0
>>496
なんか君なんもできなさそうw
2018/02/17(土) 14:42:04.74ID:JhxlZtl8a
継続的に開発して変化に対応しやすいようにするならlinqは短いコードだけ
ちょっと複雑なのは普通にforやforeachがいい場合がある

linqは結局一つの列挙しか返さないから要素数が違ったりするものを組み合わせられない
2018/02/17(土) 19:07:10.24ID:YrEj1JRO0
zipとか使えばいい普通にできるやろ
2018/02/17(土) 19:20:25.20ID:Q3QDcnMIM
>>500
たぶん設計が狂ってるんだろうな
複雑なループってトランザクションスクリプト的な汚いシステム特有の現象だよ
要素数が違うってことは異なるエンティティってことだからそれらを同時に列挙してる時点でなにかがズレてるんじゃないの
2018/02/17(土) 19:49:37.27ID:7mikedr/0
>>502
誰も複雑なループなんて言ってねーじゃん
2018/02/17(土) 19:53:57.55ID:DOQJ47ER0
レベルの低い知ったかにいちいち構わなくていいよ
2018/02/17(土) 20:02:16.62ID:Q3QDcnMIM
>>500
>ちょっと複雑なのは普通にforやforeachがいい場合がある

forやforeachってループじゃないのかぁ
2018/02/17(土) 20:10:45.35ID:JhxlZtl8a
理解力が低い自慢はいいよ

使いたい人はなんでもlinq使えばいい

linqは限られた用途で光るもの
上の方のレスにある属性がMaxの要素を取り出すにはlinqでは2回ループがいる
foreachやforでは1ループでいい
それがどうだと思う人は永遠に初心者のまま
2018/02/17(土) 20:18:29.66ID:Q3QDcnMIM
複雑さと関係ない例だよねそれ
まあLinqで困るようじゃ区別つかんか
2018/02/17(土) 20:19:41.50ID:Jdt4KZPZa
しっくりこないんです、まで読んだ
509デフォルトの名無しさん (ワッチョイ 3783-qi38)
垢版 |
2018/02/17(土) 20:38:57.31ID:cHSXrfCe0
10年前からLINQは糞で遅いから普及しないって言われてた。
2018/02/17(土) 20:42:15.77ID:eicgzYYd0
>>506
ほう
試しにMaxだと2回ループが走って、foreachだと走らないコード書いてみて
2018/02/17(土) 20:42:54.34ID:42ie9Ser0
初心者の質問スレなんで質問でも回答でもない「先生方」は別のところに行ってください
512デフォルトの名無しさん (ワッチョイ 3783-qi38)
垢版 |
2018/02/17(土) 20:44:25.26ID:cHSXrfCe0
関数型言語がなんで廃れてるかがよく分かる。KYなんだよ、彼らは。
2018/02/17(土) 20:51:25.85ID:2dhflQ+l0
「そうそう、アメリカは悪いーヤツなんだよね…」
「あ、俺、最近は洋楽聞いてるんだ…」
「関数型言語がなんで廃れてるかがよく分かる。KYなんだよ、彼らは…」
「コーヒー、砂糖入れなくていいからな…」
2018/02/17(土) 21:07:14.35ID:7mikedr/0
>>505
バカ?
複雑な処理はって話で
「複雑」はループにかかってる修飾語じゃねーだろ
プログラム言語の前に日本語なんとかしろよバーカ
2018/02/17(土) 21:23:13.78ID:Q3QDcnMIM
>>514
あのさ文脈少しは気にしたら?

複雑な処理をLinqでやるかループでやるかって比較してたんだろ
ならここでの複雑な処理っての複雑なループか複雑なLinqのどっちかなんだよ

このロジック君にはLinqより難しかったかな?
516デフォルトの名無しさん (ワッチョイ 5710-brYG)
垢版 |
2018/02/17(土) 21:29:52.32ID:lDUnRFry0
jsonresultの使い方がよくわからないのですが、Ajaxとかでpostしたら結果を受けることができるって感じなんでしょうか
何故かあんまり解説落ちてない
2018/02/17(土) 21:37:14.41ID:7mikedr/0
>>515
はぁ?
処理は複雑だけど
複雑なループになる確証はねぇだろ
早く死ねよw
2018/02/17(土) 21:48:19.37ID:Q3QDcnMIM
>>517
やっぱりわからないんだね
2018/02/17(土) 21:50:55.57ID:RP1Lckbc0
Linqで書けないような複雑なコレクション操作を何度も書くのはしんどいよ
仮にループで書くとしても1回書いたらそれをLinq拡張として再利用すべきだろうね
2018/02/17(土) 22:30:36.59ID:YrEj1JRO0
[1]
var maxItem=null;
foreach(var item in list){
if(maxItem!=null&&item.Value>maxItem.Value)
maxItem=item;
}

[2]
var maxItem=list.OrderBy(item=>item.Value).Last();

[3]
var max=list.Max(item=>item.Value);
var maxItem=list.Select(item=>item.Value==max).First();
2018/02/17(土) 22:35:44.05ID:7mikedr/0
>>518
ハイ、逃げたw
2018/02/17(土) 22:37:00.85ID:Q3QDcnMIM
>>521
お前がな
2018/02/17(土) 22:46:43.47ID:XsSESzO/0
一般的にLINQコードのほうが少ないワーキングメモリで理解できる
2018/02/17(土) 22:52:46.47ID:7mikedr/0
>>522
いいよ
受けて立つよ
お前雑魚だし
2018/02/17(土) 23:00:29.41ID:Q3QDcnMIM
>>524
OK
じゃレス読み返してこい
2018/02/17(土) 23:02:57.51ID:ttY9XQata
馬鹿らしい勝負だな

適材適所
linqが使い良い場所ならそこで使う
forやforeachが使い良い場所ならそこで使う

汎用性はfor foreachが上
2018/02/17(土) 23:13:34.50ID:vxC6ekeQ0
なんでいつもlinqの話になると荒れるんだよ
2018/02/17(土) 23:22:34.74ID:I0BNlfaX0
最近書き直された独習C# ってどんなぐあいですか?
C#2.0 から知識は止まっているので、買ってみようと思うときもあるのですが
2018/02/17(土) 23:28:11.51ID:ttY9XQata
>>520
[2]は悪手
ループが多すぎる
並べ替えで何回ループしてるかわからない

しかも無駄にループする可能性があるので
OrderBy Lastの組み合わせじゃなくてOrderByDescending First使うべき
2018/02/17(土) 23:33:32.24ID:4BHNVcm10
>>516
JsonResultで検索して真っ先に出てきたここで
http://www.atmarkit.co.jp/ait/articles/0907/10/news109_3.html
解説十分に思うし何が分からんのか分からんのだけども
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況