C#, C♯, C#相談室 Part94

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 935f-5Uxj)
垢版 |
2019/03/20(水) 18:57:36.47ID:ZZcTomnN0
!extend:checked:vvvvv:1000:512
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part93
http://mevius.5ch.net/test/read.cgi/tech/1492818720/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2020/08/26(水) 21:12:34.97ID:7Xms6Gwm0
>>82
あ。やっぱそうなんだ。「これ、ダミー関数入れときゃエクセプション
投げられないで済むんじゃねえのか?」って思った。


ところで1つ目のセミコロンて要るの?
2020/08/26(水) 21:15:17.42ID:6US3/cP40
>>83
途中のセミコロンはミスだよ
2020/08/27(木) 23:21:35.12ID:dU9vSxaE0
フォームアプリで
フォームAで検査をして、検査終了後に

「データを記録しますか?」
「はい」「いいえ」
というウインドウを表示して、
「はい」ならデータ記録
「いいえ」ならデータ廃棄

としたいです。
2020/08/27(木) 23:23:39.98ID:dU9vSxaE0
データはフォームAにあるので、

1. フォームAからフォームBを開く
2. フォームBは「はい」「いいえ」を戻り値としてAに渡す
3. フォームAでデータ記録、データ廃棄の処理を行う

みたいな処理でいいのでしょうか?
それとももっとよいやり方がありますか?
2020/08/28(金) 00:01:20.33ID:IRRC70To0
>>86
これじゃあかんの
https://dobon.net/vb/dotnet/form/msgbox.html
2020/08/28(金) 00:27:25.73ID:ljA+yCxF0
ありがとうございます。
これですね。

なんかフォーム新たに作るとかこんなめんどくさいことしなきゃいけないのか?
と疑問に思ってたんですが、聞いてよかったです。
ありがとうございます。
明日実装してみます。
2020/08/28(金) 00:45:40.60ID:QGPxocm50
MessageBoxを知らない子供達さ〜
2020/09/02(水) 22:47:24.65ID:uEUYmCsp0
C#からpythonのプログラムをコマンドライン引数hoge付きで実行したのですが、

System.Diagnostics.Process.Start("python.exe", @"""L:\main.py hoge""")

とやっても実行できません。
なにかより方法ないでしょうか?
2020/09/02(水) 23:26:38.05ID:dpuRzFGP0
なぜスクリプトファイル名と引数をダブルクォートでひとくくりにしてる?
2020/09/02(水) 23:30:40.61ID:uEUYmCsp0
>>91
分けて書いたら第3引数は取らないとエラーが出たのですが、
どう書けばよいのでしょう?
2020/09/03(木) 00:53:19.68ID:mQe+iHXO0
System.Diagnostics.Process.Start("python.exe", @"L:\main.py hoge")
2020/09/03(木) 21:24:36.01ID:9keo2Hbe0
>>93
ありがとうございます!
解決しましたm(_ _)m
2020/09/03(木) 22:26:34.29ID:a8iQwzgfM
Pythonスレにもちゃんと報告しような
96デフォルトの名無しさん (ワッチョイ 0701-3NJ+)
垢版 |
2020/09/04(金) 01:43:56.80ID:bkNZTAxK0
var sb = new StringBuilder();
var c = 'a';
while (true)
sb.Append(c);

これで一番下の行に破棄'_'を使用っていうVSによるヒントが出てくるんだけど、
こういう場合の破棄って使用する場合としない場合でどういう違いがあるの?
2020/09/04(金) 03:29:44.58ID:TqZk/BuV0
>>96
破棄は、未割り当ての変数と同等です。つまり、値がありません。
破棄変数は 1 つのみであり、破棄変数には記憶域も割り当てられないため、破棄を使用するとメモリの割り当てを減らすことができます。
また、コードの意図がわかりやすくなるため、読みやすさと保守性が向上します。
2020/09/04(金) 18:32:36.17ID:rMUAG7hVd
linqて出た頃はselectとか予約語になってたはずだけど、今は使わん方がいいの?
2020/09/04(金) 18:38:00.42ID:/sa+TO100
LINQやクエリ式を連想するからやめといた方がいい
2020/09/04(金) 20:52:19.83ID:lU7Szfms0
あくまでコンテキストキーワードだから当初から識別子として使えたよ
group辺りは変数名として割と使う
2020/09/04(金) 21:11:01.67ID:MHAfw/ead
groupって変数名としてほとんど何の情報も持たないし普通にバッドネーミングでは
GroupTheoryのGroupとかの専門用語でもない限り
2020/09/04(金) 22:52:38.00ID:/hXTsLtS0
>>101
右辺から意味がはっきりしてる寿命が短いローカル変数ならいいんじゃない?それこそlinqのグループバイの戻り値とか。まぁそんなんだったらgとかにしちゃうけど
2020/09/04(金) 22:55:02.48ID:MHAfw/ead
>>102
数行くらいの寿命ならまあたしかに
2020/09/13(日) 12:05:22.97ID:/5CZgoyc0
LINQの話題になってるから聞きたいんですが、LINQって結構遅い?
ベンチマークとって襲いって主張してるブログとかはあるけど、実業務で遅さを実感する事ってどのくらいある?
2020/09/13(日) 12:15:27.66ID:pEIp8weP0
LINQ使わないで書くよりも遅いことは遅いんだけど、経験的にはあんまり問題にはならなかった
実際に使ってみてどうしてもLINQ使ってる辺りでネックになるようなら、
そこだけ書き直す感じでいいと思う
2020/09/13(日) 12:21:40.35ID:tOkSvJ4p0
Linq使ったほうが楽に高速化できることもあるし、場合場合じゃないかな。
PLINQは良くコア数指定せずにぶん回して「遅い」って言ってる奴いるけど、コア数指定したら割と良い線行く。
2020/09/13(日) 15:15:56.81ID:SPHVq8sr0
処理速度が求められるような部分だとネックになってると感じることもある
シミュレーションみたいなのね
そういうの以外では全く気にならない
どうせ処理速度より通信やファイル読み書きのほうが圧倒的に時間かかるから
2020/09/13(日) 17:02:03.95ID:1OL+BwFGa
linq to sqlだと気付かずにクエリがクライアント側で行われるなんてことが無くはない
2020/09/13(日) 18:23:51.90ID:4Acyfihv0
ループのコストを気にするレベルの処理(数値計算とか)だとLINQは遅いが
大半の処理は0秒の範疇で終わるし遅さを実感できるタイミングは少ない
2020/09/13(日) 19:19:25.97ID:B0Qk5cLa0
>>108
なぜいまさら?
2020/09/14(月) 08:49:45.52ID:h4D3dIgFa
LINQは普段使い出来る
2020/09/15(火) 14:28:22.27ID:dHOvpMD80
むしろ普段使いこそLINQ

ガチで組むときだけ使わない
2020/09/15(火) 15:19:30.20ID:zwHnTqIb0
#metoo
2020/09/26(土) 09:10:33.60ID:z7P86v//0
ほぼC#経験しか無いのですが、最近iPhoneでアプリ作りにトライして貰いたいと言われました
経験的にC#とXamarinで作れたらと思うのですが、実用に耐えるものなのでしょうか?
王道のSwiftを覚えるべきでしょうか
オススメをお聞きしたいです
2020/09/26(土) 09:20:31.76ID:eGNdIrqPM
https://i.imgur.com/irl4m3B.jpg
2020/09/26(土) 09:27:09.80ID:jvAfHmw30
産まれながらに豪運をお持ちであるか
最終的に開発するアプリがごく小規模でないのなら、Swiftを薦めるかなあ

ネイティブのクロスプラットフォームフレームワークって機嫌よく動いているうちはいいんだけど
いざトラブルが起きた時、フレームワークそのものの知識と目的のプラットフォームの知識、両方がないと問題を解決できないのね
2020/09/26(土) 10:28:09.86ID:zTe0m+jEd
iOSの事はあんまりわからんけど、Androidの場合でも、結局Androidの記事を読むことになるから、ネイティブの知識は必要になるよ。
だから逆にネイティブの知識で何とかなるXamarinは好きなんだけど。

ネイティブに対してLinqが書けたり、C#のライブラリが使えるメリットを感じられなければ、ネイティブの方が良いと思う。
俺はサーバ側もc#で済ますときに圧倒的に楽だし、Linqめっちゃ使うし、LiteDBとか使いたいからXamarinは割と選択肢にしてる。

気持ち悪いとか、信者がどうとかそういう話に持ってくのはやめてほしいわ。
2020/09/26(土) 10:33:53.78ID:z7P86v//0
やはりネイティブで慣れた上が無難ですかね
情報量はネイティブのが多いのは確実でしょうし
アドバイスありがとうございます
2020/09/26(土) 10:46:32.13ID:nC+oWEpa0
2020/10/10(土) 11:55:43.09ID:8BJRM8SSa
docker使うときって、
単一バイナリビルドしてalpineイメージに乗せる、
普通にビルドしてdotnetイメージに乗せる
どっちがいいんだ
2020/10/23(金) 10:15:07.78ID:BMukmJk4r
winforms で webview2 の source プロパティ設定しても表示されないんだけどなんでか教えてくれさいエラーは出ません
2020/10/23(金) 14:30:39.26ID:xUtnLCdH0
>>121
CanaryチャネルのEdge入れてる?

https://docs.microsoft.com/en-us/microsoft-edge/webview2/gettingstarted/winforms
>Ensure you installed the following list of pre-requisites before proceeding:
>Microsoft Edge (Chromium) Canary channel installed on Windows 10, Windows 8.1, or Windows 7.
>Visual Studio 2017 or later.
2020/10/23(金) 16:12:09.29ID:BMukmJk4r
>>122
できたっ!!本当にありがとう!
2020/10/27(火) 11:24:09.31ID:1KKT1q6l0
NAudio.Lameがサンプルレート44100&16bit以外のwavをmp3に変換できないのってなんでなの?
lame_enc.dllのラッパー作ったらこっちではどんな形式のwavでも変換出来たからまぁ問題は解決してるんだけど上記じゃできない理由が知りたい
125デフォルトの名無しさん (ワッチョイ b5ba-QVGU)
垢版 |
2020/11/10(火) 20:29:35.95ID:CPbRFFCx0
Visual Studio インストールできない環境なんですが、csc でコンパイルはできます。
using SpeechLib
を使うためにはどのファイルを /r: で指定すればいいんですか? Microsoft スピーチ SDK はインストールされています。
2020/11/10(火) 21:19:51.00ID:99TT6ZI90
>>125
ゆうちゃんがしていた方法じゃん
SharpDevelopをお勧めしますけどね
2020/11/10(火) 21:35:37.42ID:BqFpPTmS0
tlbimpでsapi.dllからマネージDLL作ってそれを参照 かね
msbuildも使えるだろうからcsprojでCOMReference要素使った方がいい気がするけど
128デフォルトの名無しさん (ワイーワ2 FF93-NSHw)
垢版 |
2020/11/11(水) 10:02:20.87ID:tAzuyT8UF
>125
https://rti7743.?diary.org/entry/20111215/1323965483
2020/11/12(木) 20:06:56.40ID:uxm21n/v0
VisualStudio が大きすぎて重すぎてインストールさえできないんです ( ノД`)…
2020/11/12(木) 20:19:44.27ID:iNnMgmkB0
>>129
PC買い換えろや
インストールすら不能ってそれじゃVisualStudio以外のことするのもきついだろ
2020/11/12(木) 21:28:52.02ID:ieLOACKQ0
いつものADSLおじさんでは
2020/11/13(金) 18:57:33.29ID:wp+NVJFq0
VS入らないマシンにリモートデバッガだけ入れて、VS入るマシンから開発すれば?
2020/11/13(金) 19:11:24.15ID:JTUzvYJR0
個人的にはVisualStudioかVScodeが使えなかったらC#は使わないだろうな
それらのサポートがあってこそ楽できるC#だと思ってるw
>>132
最初からVS入るマシンでやれよw
2020/11/17(火) 07:50:10.43ID:iD8vjuLm0
メモ
var environment = Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(@"C:\Hoge\Homo\Microsoft.WebView2.FixedVersionRuntime.87.0.664.8.x64");
await webView21.EnsureCoreWebView2Async(environment.Result);
webView21.CoreWebView2.Navigate("http://www.google.com";);
2020/11/17(火) 12:28:29.50ID:NojhJPTB0
EnsureCoreWebView2Asyncをawaitするならenvironmentもawaitすればいいのに
2020/12/02(水) 19:05:55.25ID:Ve9XOoG60
VisualStudio 2019 入れても SpeechLib 使えんかった。 まほろばサイトの通りにしてもエラーで .exe 作れなかった。
まほろば の環境に合わせて VisualStudio 2010 入れるしかないのか。
VS2010 手に入れられるのか? メンドクセー
2020/12/03(木) 01:49:16.55ID:8Y52u7nG0
エラーで、じゃなくてエラーメッセージ貼りなさいな
2020/12/19(土) 17:41:30.84ID:+WDUx37o0
string.Createでの書き込み先ってゼロクリアされた状態なのが仕様?
2020/12/19(土) 18:10:05.63ID:c6eQkowx0
> The initial content of the destination span passed to action is undefined.
> Therefore, it is the delegate's responsibility to ensure that
> every element of the span is assigned. Otherwise,
> the resulting string could contain random characters.
2020/12/19(土) 18:23:51.61ID:+WDUx37o0
>>139
そう書いてる割には渡されたSpan<char>をループで回してみると0オンリーなんだよね
これはプログラム立ち上げたばかりで余ってるヒープから確保されたものではなく、メモリ確保とセットになってるからってことかな?
2020/12/19(土) 21:22:12.50ID:cBOopG6K0
debugとreleaseでメモリの初期値が異なるのって.NETもそうだっけ?
2020/12/20(日) 20:29:37.47ID:pjcjK0FfM
鬼滅のこのキャラを c# プログラマーの上司にしたい。
https://i.imgur.com/FUdlKgn.jpg
2020/12/20(日) 20:44:09.47ID:Sdipw4VbD
その心は?
2020/12/20(日) 20:44:09.52ID:Sdipw4VbD
その心は?
2020/12/20(日) 23:02:33.78ID:NT8jmDEW0
責任まできちんととってくれるなら、理想の上司ではある。
146デフォルトの名無しさん (ワッチョイ 6a6a-22vh)
垢版 |
2020/12/21(月) 03:03:30.13ID:UGhjbn3Q0
ソフトウェア開発において絶対正義は絶対存在しないので無理です
そのマンガのキャラみたいな台詞は顧客に向かって言うべき
2020/12/29(火) 21:07:16.89ID:96HPW8h8M
むしろ客から言われる言葉ではあるな
2020/12/30(水) 05:03:29.28ID:6ulHLOTc0
List<T>で要素数30億個が必要になった
しかしList<T>のインデックスはint32なので普通には無理
サードパーティ製のLargeList<T>を使えば80億までは行けると聞いて試したらList<T>の倍以上の時間がかかるから使えない
なんかいい手がないですかね?
2020/12/30(水) 05:23:58.47ID:DSeBHmt50
30億個必要な設計を見直す
1億×30個じゃダメな理由でもあんの?
そらそんな個数必要なら時間もかかるだろうよ
2020/12/30(水) 12:07:23.76ID:iBv03KGq0
・本当にList(ArrayList)が妥当か?
・どうしてもC#でやらなければならないか?
をまず考える
2020/12/30(水) 13:39:08.37ID:2ar4b/sH0
30億のインデックスが必要という案件自体に
なんか無理がありそうな気がしますがね…

データが固定長ならば
30億xデータ長のファイル用意して
ランダムアクセスすれば比較的容易かも

キーが1〜30億の間の数値というだけで、
データ個数がそこまで無いならDictionary

データ30億個ガチで必要かつ可変長やソートが必要なら
LiteDBみたいな外部DB使うとかしないと現実的じゃない
2021/01/17(日) 10:51:36.17ID:orYKExjn0
C++のマクロが欲しすぎる
コードジェネレーターってコレじゃないんだよ…
2021/01/17(日) 11:25:03.40ID:c73rlKDkd
コードジェネレーターはあらゆることができるけど手軽さは無いね
2021/02/01(月) 10:01:45.54ID:f9q1oLiO0
System.Runtime.Intrinsics.X86っていう面白そうな標準ライブラリ見つけたが
ストリーミングSIMD拡張命令を扱う割にはVector256とかに吐き出してレジスタだけで済ませられないからパフォーマンス目的で使える訳じゃなさそうだな
2021/02/01(月) 12:27:05.08ID:XHFPbN1Hd
いやパフォーマンス目的以外の何者でもない
2021/02/02(火) 23:00:30.89ID:uFATDe770
>>155
具体的にどういう使い道ありそう?
ポインタからロード → ポインタへストア、これが出来ればコピーを4倍速で出来そうなもんだけど
この間にstructへ吐き出し(スタックへ書き込み)が混じると利点が台無しになってないか?
2021/02/02(火) 23:25:59.42ID:+ivEHUkG0
>>156
https://devblogs.microsoft.com/dotnet/hardware-intrinsics-in-net-core/
2021/02/03(水) 00:22:25.49ID:FfINTs090
>156
https://www.slideshare.net/ufcpp/c-72-with-net-core-21
2021/02/04(木) 04:09:00.90ID:I9Tvkxu1r
今から本番稼働想定したasp.net書く場合.net5は避けた方が良いのでしょうか?サーバーはコンテナ稼働想定してます。
2021/02/04(木) 08:59:03.42ID:4b57Rye8a
別にいいと思うよ
.NET6がでたら乗り換えるだけ
コンテナということは高頻度で更新するんでしょう?
2021/02/07(日) 16:04:38.90ID:/dTzrpKy0
西村博之 「10年くらい前にMSがC#っていう言語をリリースしたんですよ。その時は「これからはC#の時代だ!」ってみんな言ってたんでけど今はもう誰も使ってないんすよねw」

元WEB系から見たらこんな印象なんだな
文字列の関係からweb系からは程遠い言語ではあるけど、そろそろutf8string実装して見返してもらいたいわ
2021/02/07(日) 16:15:25.69ID:GJKnumFr0
俺も見てた perlと同じ扱いされてたな
さすがにちょっとだけ反論でてて一言謝ってたけど
2021/02/07(日) 16:23:10.70ID:5sEA4G4p0
Unityでめっちゃ使われてるからゲームだとC#だらけってイメージ
2021/02/07(日) 17:45:25.65ID:jX/y7Db/0
まあ自称事情通の言うことなんてどうでもいい
2021/02/07(日) 18:26:09.91ID:zExDTdlVd
>>161
嘘を嘘と見抜けない人にはネットを使うのは難しいって言った人間だぞ
こいつの言う事はすべて嘘だと思っておくべき
2021/02/07(日) 19:54:19.46ID:HMKjqa1L0
C#がリリースされたのは約20年前
つまり西村の時系列が10年ズレてると考えたら、2010年前後のC#はデスクトップ開発専用言語でありスマホWeb時代の到来によりオワコンって評価だったからそういう認識になるのも分かる
実際はその後マルチプラットフォーム対応やUnityでの採用により今では上位で健闘してるが
2021/02/07(日) 19:59:50.09ID:jfqlIQAhd
Web系の人は世の中にWeb系以外存在しないと思ってるからね
HTML、CSS、JS、PHPを勉強してプログラマー転職とか言ってる胡散臭いイメージの方が強いんだけど
2021/02/07(日) 23:26:53.37ID:E+M5878r0
C#の作者がTypeScriptに行っちゃって
あっちの方が進化が早い気はする
169デフォルトの名無しさん (ササクッテロラ Sp0b-mTpx)
垢版 |
2021/02/08(月) 18:03:29.04ID:edkkLpnyp
どんな変遷だろうが知りもしないことをのたまったのは変わらんのだからフォローにならんぞ
2021/02/10(水) 22:37:48.02ID:bnTPmcqs0
C#の作者ってDelphiの作者だよな
どこまで行くんだ
171デフォルトの名無しさん (エムゾネ FF32-olyV)
垢版 |
2021/02/12(金) 13:33:55.52ID:x9NfpsA7F
思えば遠くへ来たもんだ
2021/02/17(水) 03:49:24.30ID:EDQ/KEe/r
TSは型システムが自由度高くて契約プログラミングの立場から見ると魅力的なんだが、
いかんせん記法が複雑すぎて黒魔術化するケースがしばしばある

その点C#は見た目素直で扱いやすい
でも判別共用体と型クラスははよう実装してくれ
2021/02/17(水) 15:43:12.73ID:hyKxtGgK0
>>172
まぁ、そうだな、どうしてもってんなら考えてやってもいいな
でも、それが人に対する頼み方か?
頼み方ってもんがあるだろ?
174デフォルトの名無しさん (ワッチョイ 9293-KPUJ)
垢版 |
2021/02/17(水) 21:58:57.60ID:u6Au0MiC0
null許容参照型とオブジェクト初期化子って相性悪すぎでは?
昔のコードをコンストラクタ初期化に変更するのめんどくさい
2021/02/17(水) 22:22:00.78ID:67UeIi3Dd
null許容参照型自体が微妙

null許容参照型の動機は立派だし尤もだと思うが既存の言語仕様やコードに馴染まない
導入するならC#8.0未満との互換性を切り捨てるくらいの覚悟でやるべきだった
2021/02/18(木) 20:53:48.31ID:woc8ixG4M
むしろもっと積極的に警告なんかじゃなくエラーにするぐらい厳しくnullチェックしてほしい
2021/02/18(木) 23:08:33.94ID:2Lyq02j+0
この言語進化もしつつ、後方互換も残しつつよく頑張ってきたけどそろそろ限界なのかもね
ヘルスバーグさんがtsの方いっちゃってからはどういう人が方針決定したりしてるんだろう。
2021/02/19(金) 19:51:38.99ID:dCJD35Vs0
何が限界なんだ?
2021/02/19(金) 23:17:29.35ID:0rOHF09p0
>>178
>>174,175,176
2021/02/19(金) 23:21:20.13ID:olDuNQwC0
限界の理由がそれ?
2021/02/19(金) 23:50:43.94ID:0rOHF09p0
>>180
なんか君と絡むとめちゃくちゃめんどくさそうな予感

この言語が好きなのは分かる。俺もこの言語が好きで付き合いも長い。
しかし、言語は宗教ではない。
長所も短所もあるし、作るものによって合う合わないもある。
そして大抵の場合新しく出た言語の方が優れている。
ゲームを除いていまからC#学ぶ人は少ないんじゃないかな…
最盛期は過ぎてるよ。
2021/02/20(土) 00:36:53.09ID:AS/xJbvA0
そら後から劣化版なんて出しても意味ないんだから基本的には優れてるだろ
ただ新しく出された言語が広まるかはわからんし、何が広まるかの予測も難しい
ちょいと昔にはスクリプト言語は死んで関数型言語の時代になるって主張はよく見た気がするけど未だにそんな時代来そうにない
現状、ある程度広まっているものを学ぶ価値は十分にあるでしょ
完全新規ならjsやpythonでいいんじゃね?っていうのはわかるがC#は無いと強くいい切るのはまだ早いように感じる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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