ふらっと 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/12(月) 11:59:07.50ID:1msBxh9/0
じゃあもうやめたらいいんじゃないかな、C#使うの
2018/02/12(月) 11:59:21.31ID:GfEZnF0r0
>>403
https://github.com/dotnet/roslyn/blob/features/NullableReferenceTypes/docs/features/NullableReferenceTypes/Nullable%20reference%20types.md#opting-in-and-opting-out
2018/02/12(月) 12:01:32.14ID:VyGKD4Czd
議論はこちらへ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
2018/02/12(月) 12:04:27.54ID:N6F2lE5bd
>>401
大方どっかのチュートリアル通りの手順を踏んだだけで、現在のproposalなんか確認してないんだろうな
そんなん猿でもできるわ
2018/02/12(月) 12:15:49.51ID:mwueXHhJ0
>>380
生まれてきたのが間違い
2018/02/12(月) 15:08:20.51ID:nCVnsVXOa
素朴な疑問だがnull非許容参照型はGC送りはどうやるんだ?
変換構文などがあってnull代入できるのか?
2018/02/12(月) 15:28:58.13ID:V1lBSRUOd
>>409
GC送り?オレオレ用語は定義と併せて書いてくれ
2018/02/12(月) 15:47:46.56ID:nCVnsVXOa
null非許容参照型の参照を外してガベコレの対象にするにはどうするんだ?

従来だと a=null;などで解放してたものだが
2018/02/12(月) 15:49:47.24ID:+qsRixLI0
値型は?
2018/02/12(月) 15:59:58.64ID:GfEZnF0r0
>>411
null代入なんて無意味
2018/02/12(月) 17:31:58.03ID:b4Df/qb8a
GCは八丈島かw
2018/02/12(月) 19:01:58.78ID:e2TKDGEW0
値型はとられる領域違うでしょ
なんのための参照型なのかわかってる?
null代入ってnullを指すだけでオブジェクトは残るよね?
GCが参照されなくなったオブジェクトと判断して回収するかはGCのアルゴリズムしだいだけど、基本は使わなくなった参照を指定して解放するよね?
416デフォルトの名無しさん (ワッチョイ 319d-+g9t)
垢版 |
2018/02/12(月) 20:36:47.70ID:z/E2YHwX0
値型の代入でもコピーしない場合もあるみたいだね。コピー元が直ちに不要になる場合は
その参照をわたしてそのエリアをそのまま利用する。その方が合理的だから。
まあ単に想像だけど。
そして直ちに不要なのをおもいだして、値を渡したのを忘れて解放してしまう。どうもそういう
バグが偶に出るケースがある。特に初心者があれこれ考えられないような変なことを
やった後とかにそういう現象がでたりする。
2018/02/12(月) 20:43:08.79ID:F3ZoN7fb0
>>415
> なんのための参照型なのかわかってる?
わかってないのはお前だろ w
別にnull代入するためだけにあるわけじゃないし
普通に参照してる変数が無くなったら解放対象になる
418デフォルトの名無しさん (ワッチョイ 319d-+g9t)
垢版 |
2018/02/12(月) 20:50:09.59ID:z/E2YHwX0
Enumがdummyを入れないと誤動作するとか、Staticインスタンスの中身が新しいForm2をNewしてForm_Loadの直後に
突如消えるとかそういう現象はまあビギナーズラックみたいなもので普通はそういう現象に出会えない。
コンパイルエラーがでないし正常に動作するのででPropetyの書き方を全部間違っていたのだが、それでも正常に動作していて
あとで書き方の間違いに気が付いて修正する。そういうことで段々と普通のプログラムになってくるとそういうエラーもいつ
の間にか再現しなくなる。
2018/02/12(月) 21:06:16.17ID:e2TKDGEW0
どこにリファレンスカウントと書いてあるんですかね
ソースは?
マークスイープとは出てきたけど
2018/02/12(月) 21:54:53.51ID:q97gmqzs0
会話になってないから透明削除されてるのかと思った
2018/02/12(月) 22:00:16.10ID:+qsRixLI0
ほーん、で?
2018/02/12(月) 22:01:11.36ID:q97gmqzs0
>>421
単芝忘れてんぞ、カスw
2018/02/12(月) 22:29:08.55ID:BbO5lIMB0
自作のソフトをビルドしてexeを実行したとたんノートンで弾かれる
出力コードのパターンで引っかかってるらしいけどどうしろというの
2018/02/12(月) 22:31:10.19ID:P8plNjZg0
>>423
それはノートンのスレで聞くべきかと
プロジェクトのフォルダを監視対象から外すとかできるはず
2018/02/12(月) 22:37:52.68ID:+qsRixLI0
それだと配布するときに困る
2018/02/12(月) 22:38:59.14ID:ZU9+AgSV0
開発レベルなら監視対象から外す
頒布レベルならノートンに検体差し出すとかすればいいんじゃなかったっけ?
2018/02/12(月) 22:43:12.96ID:BbO5lIMB0
ありがとう
サポに連絡してみる
428デフォルトの名無しさん (ワッチョイ 81b3-PCwM)
垢版 |
2018/02/13(火) 04:38:28.69ID:TnW8OQre0
初心者です。
MainWindow.xamlのtextbox name=“A” “B”を
MainWindow.xaml.csにて、配列に格納する場合
どう書けばいいですか?
2018/02/13(火) 07:44:33.37ID:tk8A9SM5d
Textbox[] textboxArray = new Textbox[2]{A, B};
こういうこと?
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
誰も複雑なループなんて言ってねーじゃん
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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