C#, C♯, C#相談室 Part98

2024/06/29(土) 19:18:41.95ID:NohAfdfx0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

■Visual Studio 2022 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

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

■前スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2024/09/04(水) 21:50:02.76ID:Gc+g798x0
>>41-42
ありがとうございます。解決しました。
プロジェクトじゃなくて、プロジェクトが参照してるライブラリが古くて画像周りがおかしかったことが原因でした……
いやーてっきりプロジェクトに問題があるものだとばかり。
お手数をおかけして申し訳ありませんでした。
44デフォルトの名無しさん (ワッチョイ 0701-cMiB)
垢版 |
2024/09/05(木) 22:43:12.04ID:IsSxmn+e0
string のなかに " いれたいんだができるん?

string x=""+"aaaa"+"" 
2024/09/05(木) 22:47:08.76ID:oSzSq1tU0
>>44
こういうこと?
string x = "\"+\"aaaa\"+\"";
46デフォルトの名無しさん (ワッチョイ 0701-cMiB)
垢版 |
2024/09/05(木) 23:13:37.12ID:IsSxmn+e0
それでできそうかも。試してみる。
プロセス起動させるとき、引数の変数にパス入れるけどパスの中にスペースがあると
だめなんでそれの回避として " が必要。
47デフォルトの名無しさん (ワッチョイ 0701-cMiB)
垢版 |
2024/09/05(木) 23:26:05.02ID:IsSxmn+e0
だめっぽいな。
aaaaはstring の変数でもってきてる。
2024/09/06(金) 00:01:44.71ID:fMgfL8Dd0
だめっぽいのは君の書き方じゃないか
2024/09/06(金) 00:10:56.19ID:FMgRnbLf0
バックスラッシュの意味理解しよ
2024/09/06(金) 00:19:55.27ID:4rrS/3cJ0
string s = "aaaa";
string x = $"\"{s}\"";
2024/09/06(金) 02:38:09.45ID:kwoFnA2yd
System::Diagnostics::Process::Startとかだろ
"\"" + filePath + "\""
52デフォルトの名無しさん (ワッチョイ 7f11-gXPy)
垢版 |
2024/09/06(金) 03:15:10.46ID:CmuGhD0i0
なんでわざわざ足してんの?
2024/09/06(金) 05:55:59.83ID:c0VNDQG50
Windows君はパスに空白含んでたらバカになるからダブルクォートしないといけないからね

>>44
string x = """aaaa""";

これで
2024/09/06(金) 05:57:26.94ID:c0VNDQG50
>>47を読んで無かったわww
それなら>>51でいいか
55デフォルトの名無しさん (ワッチョイ 0701-cMiB)
垢版 |
2024/09/06(金) 07:11:30.93ID:6dWW3slR0
string x = $"\"{s}\"";
これ採用 TNX!
2024/09/06(金) 08:03:43.33ID:atJH5uZ+0
もうちょっとあれこれ繋げるもんがあるならともかく
たったそれだけにString.Format使う意味ある?
2024/09/06(金) 10:26:55.33ID:q1RifKtNM
2回以上+で結合すると無駄なアロケートとコピーが発生する
ループしないなら気にする必要ないけど、+に拘るメリットも特にないな
2024/09/06(金) 14:31:56.02ID:atJH5uZ+0
なんかふと気になってILSpyしてみたら
>>55程度だと+連結に置き換えられてて、もう一つ変数増やしたらDefaultInterpolatedStringHandler処理になってたわ
2024/09/06(金) 22:02:01.77ID:4rrS/3cJ0
>>58
C#10から実装が変わってかなり高速化したらしい
2024/09/08(日) 14:19:12.90ID:Lcq5kqTI0
https://ufcpp.net/study/csharp/sp_attribute.html

属性付加について質問です
上リンクにバブルソートの途中経過を出力する例がありますが、
/// <summary>
/// SHOW_INTERMEDIATE というシンボルが定義されているときのみ
/// 配列の内容をコンソールに表示する。
/// </summary>
[Conditional("SHOW_INTERMEDIATE")]

がよくわかりません。
このシンボルの定義はどこで誰がするのでしょう?
途中経過を見るかどうかならbool型を渡すだけでできると思うのですが属性を使うメリットは何でしょう?
2024/09/08(日) 16:40:59.79ID:TkJTVSzCH
https://hatsune.hatenablog.jp/entry/2021/12/20/151144

の条件つきコンパイルシンボルに
「SHOW_INTERMEDIATE」も指定して実行したときだけ
IntermediateOutput(array);
が呼ばれる
ソースコードをいじらすともプロジェクト設定だけで動作を切り替えられる
2024/09/08(日) 16:46:45.34ID:TkJTVSzCH
https://ufcpp.net/study/csharp/sp_attribute.html
の例だけなら本来ならConditional属性より#ifで動作を切り替えるほうが自然かもしれないけど、メソッドに属性をつけることで「コンパイル時の」動作を切り替えることもできる
2024/09/08(日) 16:56:39.71ID:0eGKbJyF0
ありがとうございます!
弄って試してみます
2024/09/08(日) 22:39:41.68ID:QA3NbpCiM
#if~#endifだけでこと足りるけど、使いすぎるとコードが見にくくなる。
Conditional属性ならメソッドを呼び出す部分に何も増えないからすっきり。
2024/09/10(火) 18:08:51.32ID:pYXFiK6k0
1年ぶりくらいにC#開発やったらPrismのライセンスが変更されててビックリした
条件があるとはいえ商用で使っていくのは厳しいからどうしようか迷ってる
とりあえずv9.0未満ならMITライセンスのままだから使えないこともないんだけど、このまま使うのもなぁ…
2024/09/10(火) 23:39:42.30ID:FmO9o6ji0
c#がニッチになればなるほど有料ライブラリの存在感が増してきて足元見られてる感はある
MAUIとか、何かググるとsyncfusionのボッタクリライブラリの広告ばっか出てきてめちゃくちゃげんなりする
どうしてこうなった・・・
2024/09/11(水) 10:04:33.53ID:Mwxa/fl+0
c#13来ますね
68デフォルトの名無しさん (スプッッ Sdea-iA/a)
垢版 |
2024/09/11(水) 15:28:02.94ID:NVe6C6lkd
C# Dev Kit がゴミすぎてC#13なんてまともに動くはずもないから無視してOK
https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit&ssr=false#review-details
69デフォルトの名無しさん (スプッッ Sdea-iA/a)
垢版 |
2024/09/11(水) 15:32:38.70ID:NVe6C6lkd
>>66
Visual Studio for macの廃止で
MAUI の無料の開発環境はゴミすぎる VScode + C# Dev Kit しかなくなったからな。
もうお金持ちしか使っていない。
70デフォルトの名無しさん (スプッッ Sdea-iA/a)
垢版 |
2024/09/11(水) 15:34:46.79ID:NVe6C6lkd
MAUI アプリは市場的に iOS 抜きでは考えられず、そうなると「mac上での開発」が大前提なのに
Visual Studio for macが廃止になったからな。
2024/09/11(水) 18:27:03.65ID:XegoQ2KD0
Expressも更新しないしドケチ弊社はvscodeですよ
2024/09/11(水) 21:07:10.19ID:tsOfJ2jSM
c#13の恩恵受けるの利用者の1%以下説
2024/09/12(木) 00:30:07.84ID:tw/IepBM0
結局あと数年は使うデスクトップアプリなら何使えばいいの
2024/09/12(木) 00:57:04.66ID:abJIVzSD0
Forms
2024/09/12(木) 06:52:35.11ID:3diDP2dM0
C#13はあんまり惹かれる内容が無くて……
76デフォルトの名無しさん (ワッチョイ 5d2a-iA/a)
垢版 |
2024/09/12(木) 11:07:15.58ID:0rD/09ib0
結局のところMAUIはAdobe FlashやSilverlightの失敗と同じ道を歩んでしまった。
スマホアプリとデスクトップアプリの統合なんてできるわけないのに。
アップルのMac Catalystも壮大にコケただろ。
2024/09/12(木) 11:29:41.24ID:0D4bKRqg0
いやいや、スマホとデスクトップのフレームワーク統合はReact NativeやFlutterで成功してるよ
MAUIが失敗したのは単にそれらの競合を上回るだけの魅力がなかったから
そもそも当のMS自身がMAUIではなくReact Nativeを主力として採用しているわけで、ドッグフーディングすらまともにやられてない冗談みたいなゴミよ
2024/09/12(木) 15:26:52.97ID:aCcjSW4y0
魅力が無いという消極的な話じゃなくバグがありすぎるんだよ
MAUI使うならMAUI Blazor一択
2024/09/12(木) 17:43:21.90ID:eHy+J5v3d
Flutterで作られたデスクトップアプリってあるの?ないこたないんだろうけど、聞いたことがない
2024/09/12(木) 20:57:36.84ID:XSV6/xEMp
ラムダ式だらけで何やってるか分からん
名前付きならその名前でなんとなくやってる事が推測出来るのに
2024/09/13(金) 00:37:39.75ID:f6FEBSA20
具体的にどんなコード?
触れたことないからどんなもんか気になる
2024/09/13(金) 01:46:12.54ID:2J3jv9tY0
ラムダだとか無名なんたらって引数には名前書かせたりするのがイマイチだよな
全部匿名で書かせろや
2024/09/13(金) 06:49:44.21ID:Xxd/8jpe0
引数に名前無いと式内でどうやってコード書くんだ
2024/09/13(金) 07:04:31.00ID:2PWLnrX2H
最近のC#だと使わない変数/引数は「_」で書けるけどこれのことかな
2024/09/13(金) 08:46:26.70ID:67a82NYw0
破棄は呼び出し側だし、_だけで変数名にできるけど、やる意味無いしなぁ
2024/09/13(金) 09:50:43.10ID:5m8mJFP+p
名前無いと中身コメント書かれて無いと何やってるかますます分からないだろ
おまえら自分の事しか考えて無いのかよ
2024/09/13(金) 10:03:36.58ID:vCoJKF930
可読性がどんどん下がっていく
2024/09/13(金) 10:18:51.22ID:WHSymIlK0
kotlinが単一引数ならitで書けたりするよな
2024/09/13(金) 11:58:13.17ID:sF2/C+u40
実例出さないとコードを書いたやつの問題なのか読んでるやつの問題なのかわからないな
普通にどっちもありえる
90デフォルトの名無しさん (ワッチョイ aaae-voeu)
垢版 |
2024/09/13(金) 14:56:26.94ID:HD5QYSk40
OpenAIが複雑な推論能力をもつAIモデル「OpenAI o1」と「OpenAI o1-mini」を発表、プログラミングや数学で高い能力を発揮
https://gigazine.net/news/20240913-openai-o1/
2024/09/14(土) 00:38:39.43ID:wZXV9Eo9M
宣言してない変数が出てきたらそれに引数割り当てろとかそんなことを言ってるのかな?
2024/09/14(土) 06:23:25.94ID:f+klQpwH0
JavaScriptかな?
2024/09/14(土) 13:19:57.57ID:wZXV9Eo9M
new Action<A>(=> Console.WriteLine( s ) );

new Action<A>(Console.WriteLine( s ) );

見たいなことなんじゃないかと
2024/09/14(土) 13:48:53.85ID:o3f0Ddoea
Rubyのundefined黒魔術のことか
2024/09/14(土) 22:08:29.61ID:FSRkRcLf0
それコンパイラーが結局最適化するからええやん
2024/09/26(木) 17:43:19.96ID:3JTs1+bS0
Unityって.NETに移植される予定あるの?
ここ5年ほどは.NETばかりが進化してUnityは時止まってる感あるけど
2024/09/26(木) 18:08:10.54ID:Qc6+rELv0
移植って何だよ
言ってる意味が分らんぞ
2024/09/26(木) 18:28:01.53ID:CKFT+8KQa
エスパーすると…

わからん
2024/09/26(木) 20:43:41.41ID:78wjS3t+0
Unityスレでやれよ
2024/09/27(金) 06:17:43.36ID:H6GdPqZc0
ライブラリ使うってレベルじゃねぇぞ
2024/09/28(土) 15:53:03.33ID:Nide2Zz10
あのースレ違いとは重々承知の上なんですが、ASP.NETの求人ってどんな感じですかね
これまでずーっとC#のデスクトップアプリとかまぁローカルなシステム作りばかりやってきたんですが、いくらなんでも未来がないからウェブへの転職狙ってるんですよね
でキャリア活かそうとASPいじりはじめたんですが今はどこもかしこもjavascriptみたいなイメージで
業務でASP使ってるとかASPで転職活動したとかそういう人いたら話聞かせてほしいんです
2024/09/28(土) 17:25:46.96ID:aGtM+jOEd
どう考えても普通にJavaScriptやる方がいい。
C#履修者ならTypeScript自体の習得は爆速だよ、本気でやれば多分一週間もかからない。何しろ設計者が同じなので書き味に違和感が無くなるのはすぐのはず
問題はReact、Vue、Nextなどフレームワークやライブラリのスキルだけど、正直ここは常にコロコロ変わって勉強が必要な分野なので途中参加でもあまりハンデはないと思う
転職しても、JavaやC#のお硬い言語のキャリアは重宝されるから決して無駄にはならないはず
ASP.NETやBlazorの需要は限定的だし先行き不透明過ぎる
自分も似たようなことしたので頑張って
2024/09/28(土) 18:03:06.22ID:vky4rjg9p
スクリプト言語は糞
2024/09/28(土) 18:12:04.40ID:iFauIOzc0
クソでも使えるやつは優秀
2024/09/28(土) 20:12:23.11ID:Dk+INUbR0
業務でASPNETCoreバリバリ使ってはいるけど
ASPNET単体の知見が転職活動で役に立つとは思えない
というか、C#ができてHTML/CSS/JavaScriptが読み書きできる人なら普通に無勉強/経験なしでもASPNETで開発できちゃうからセールスポイントにならないのよね

うちんとこはReactみたいなモダン()なフレームワークは使ってないけど、それでもJS/TSの知識は必須
愚直にWeb系の勉強をするのが先かなと思うよ
2024/09/28(土) 23:13:28.34ID:Nide2Zz10
>>102 >>103
参考になりました。とりあえずHTML/CSS/JavaScript(TypeScript)辺りちゃんとやろうかと思います
ただなぁ……自習してました!じゃなんもアピールにならない気もするんだよなぁ……結局実務経験0だし
プログラミングスクールでも受講してある程度やったと保証になるものを取りに行こうかな
2024/09/29(日) 00:27:31.57ID:5ys4rELsM
github見せろよ
2024/09/29(日) 02:19:57.40ID:xonfxjDO0
むしろプログラミングスクールの経験のほうが誰もまともに受け取らないよ
自走力がないやつと思われる

素人じゃないだろうしわざわざナメられる道を通るのはオススメしない
2024/10/01(火) 15:20:52.03ID:Ed7m5Yrp0
github見せると、趣味がバレちゃう・・・
2024/10/02(水) 00:50:46.59ID:xje2sb9e0
そもそもSVNの現場ばかりでgithubの使い方よくわからないレベルだわ
というか世の中10年前にはSVNなんてオワコン言われてたってのが信じられねぇ
2024/10/02(水) 02:07:15.64ID:PWZ+bQBz0
個人で使って覚えればいいじゃん
2024/10/02(水) 11:24:45.59ID:1LKJTfPy0
個人で使う限りじゃ4つくらいしかコマンド使わんからなぁ
2024/10/03(木) 20:33:51.33ID:+e3Oo1T60
C#13(.net 9)でfieldキーワードが使えるようになるって聞いたのですが本当ですか?
VisualStudioでプレビュー版の.net9入れてみたけど使えないみたいでした
それともプレビュー版だから使えないのでしょうか?
2024/10/03(木) 21:05:51.32ID:B9NoCJyO0
予定してたけど今回は見送りなんてことは、ままあるからなぁ
ttps://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-13
今のところは入ってないみたいね
2024/10/03(木) 21:29:33.72ID:0TFd8a4L0
え、一番期待してたのに…
c#でググれの人は何て言ってるんだろう
2024/10/03(木) 21:39:37.41ID:+e3Oo1T60
ありがとうございます
確かに記載が無いので残念ですが今回は見送りっぽいですね、、、
2024/10/03(木) 22:03:08.87ID:B9NoCJyO0
ttps://github.com/ufcpp-live/UfcppLiveAgenda/issues/94
>たぶんもう C# 13 で入れるもの確定。参考: Language Feature Status
>今入ってないものは入らない。
>field キーワードは「C# 13 GA のタイミングで、 preview で取り込み」みたいな話を https://aka.ms/dotnet-discord で見た。

だそうです
2024/10/04(金) 00:03:36.27ID:GSZ7pDda0
うーん、微妙か
まぁ.net 10では入るだろうし来年に期待
2024/10/04(金) 08:49:00.52ID:mCOfH6eY0
どうせ奇数番はサポート短くてスルーだし
2024/10/04(金) 12:39:45.28ID:jlwDuTCM0
C#追っかけなくなって知識がdotnet4.5辺りでとまっている…
それ以降はrecordとかしかしらん
2024/10/04(金) 22:48:00.45ID:Yj1cCLJZ0
メモ帳や日記帳アプリみたいな軽いアプリで、ソースコード公開されてて
コードが初心者にも参考になるようなサイトあるでしょうか?
2024/10/04(金) 23:53:09.57ID:qaeIDBN+0
こんなのじゃあかんのん?

C#で自分だけのメモ帳を作成してみよう!手順・方法を徹底解説します
https://www.sejuku.net/blog/102177

ググったら一分も掛からないで出たけど
2024/10/05(土) 13:21:11.69ID:AAO+SKFS0
>>122
サンクスです、丁寧に書いてあってわかりやすいのですが
設定項目を変更した時の設定反映のタイミングとか
form2からform1にデータ持っていく場合とか
やり直し機能とか
うまい人はどうやって全体まとめてるのかなって
2024/10/05(土) 16:55:01.99ID:WPvPgesDM
必要な部分だけ他人のコードを読むか自分でひたすら考えて実装してトライアンドエラー

どちらも地力が格段に上がるけど中級者は避けがち
2024/10/05(土) 17:35:53.95ID:iTplU71b0
それメモ帳というかエディタで大変な箇所を全部端折った記事だから
適当な公開されてるソース読んだ方がいいね
2024/10/05(土) 20:37:56.54ID:fkWv7ZOM0
その適当なのほしいって事やろな

ここの連中は冷たいから教えないんだよね
2024/10/05(土) 22:47:10.24ID:AAO+SKFS0
メモ帳とかの作者さんでソース公開されてる人もC++が多かったり
2024/10/06(日) 08:44:42.11ID:6ToZA1R70
長大なテキストファイルの先頭から文字数を数えたり
一行の長さを測定して画面右端の折返し位置を決定したり
そういうのって現実的に可能なのか?
2024/10/06(日) 09:02:55.59ID:efCavYAy0
>>128
発想がズレてる
2024/10/06(日) 12:41:06.92ID:RTiROZJD0
>>128
逆になんで不可能だと思うの?
2024/10/06(日) 13:11:45.32ID:k/Za2WiE0
普通は穴あきバッファを使う
EZ/VZはlessに編集機能を付けるってユニークな設計をしている
設計自体を知りたいなら 「The Craft of Text Editing: Emacs for the Modern World」が参考になるかと

FINALはdumpすると、MIFESとREDの悪口が書いてある:-p
2024/10/06(日) 14:14:27.86ID:onWt8ZIM0
「穴あきバッファ」なんて初見なんだけどもしかして誤訳じゃない?
2024/10/06(日) 14:18:43.02ID:vkebIpm90
エディタのバッファ管理用のデータ構造は効率的な編集をサポートするためで
文字数カウントや行の折り返しの話はどういうデータ構造を使うかとはほとんど関係ないよね

今はGap Bufferもあまり主流じゃなくてPiece TableかRopeが使われることが多くなってる
2024/10/06(日) 14:21:17.70ID:vkebIpm90
興味があれば↓この辺読んでみるといい
TypeScriptだしC++に比べるとわかりやすいはず
https://code.visualstudio.com/blogs/2018/03/23/text-buffer-reimplementation

この辺の話はエディタのコアな部分ではあるけど
>>123の知りたいこととはほぼ関係ない
2024/10/06(日) 15:19:51.19ID:6ToZA1R70
なにかの文書を画面に表示したい
← 表示したい部分が何行目に当たるか計算する
← 一行に含まれる文字数を知りたい
← プロポーショナルフォントのときはどうするん?
← 行の長さを測定する関数使え
← 一文字ずつ足したり引いたりしながら測定を繰り返す
← 全部の行についてこれやんなきゃかよ?
← やってられない
2024/10/06(日) 18:49:45.21ID:TXz4j2F10
azukiのソースコード見れば?
2024/10/06(日) 18:57:38.47ID:I3D2t/Zs0
>>135
>← 表示したい部分が何行目に当たるか計算する
テキストファイルなら頭から読み込むしかなく改行でカウントアップするだけ

>← 一行に含まれる文字数を知りたい
>← プロポーショナルフォントのときはどうするん?
文字数によって折り返し位置が決まるか
表示幅によって折り返し位置が決まるかのどちらか
両方のルールを同時に適用するというのは一般的ではない
プロポーショナルフォントが関係してくるのは後者の場合のみ

表示幅で折り返す場合は指定したRectangleにフィットするよう
よろしくやってくれる表OS提供のAPIがあるので基本的にはそれを使う
APIの内部的では各文字の表示幅を足し算してるが
とりあえずは画面表示部分だけを計算すればいいので
思ってるほど大した計算量ではない

>← やってられない
んなことたぁない
2024/10/06(日) 20:12:16.90ID:MCn4L0pH0
そもそも公開されてるソースがC++多いからなんだというのか
2024/10/07(月) 02:48:29.36ID:x7sAaviV0
>←
それより矢印の使い方おかしくね?と思った
2024/10/07(月) 06:41:02.52ID:5XNBqMZ+0
→えっ
2024/10/07(月) 07:51:22.02ID:W61JLdXH0
矢印 Unicode(ユニコード)一覧 文字 0g0.org
https://0g0.org/topic/arrows/
2024/10/07(月) 08:50:05.33ID:D9AWyaeE0
↑↑↓↓→→←←
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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