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

■ このスレッドは過去ログ倉庫に格納されています
2024/02/11(日) 09:17:20.44ID:8k78Qd14M
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part159
http://mevius.5ch.net/test/read.cgi/tech/1691454079/
■関連スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします
http://www.visualstudio.com/downloads/
■情報源
https://learn.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://learn.microsoft.com/en-us/dotnet/standard/class-libraries
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
++C++; // 未確認飛行 C
https://ufcpp.net/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2024/02/11(日) 11:15:14.19ID:uhhlByZX0
>>1
2024/02/14(水) 07:15:27.98ID:HVwD3MxhM
>>1
4デフォルトの名無しさん (ワッチョイ 1ec5-Wfyb)
垢版 |
2024/02/15(木) 18:40:53.42ID:TbQr5IWZ0
record型について調べに調べたんですが説明が理解できませんでした。
今までtuppleやkeyvaluepairや構造体を使ってたけど
その代わりに使えばいいと理解していいですか?
2024/02/15(木) 18:56:44.12ID:/kB8s4lH0
レコードはペアじゃなくて並びをいくつも使える
2024/02/15(木) 18:57:48.14ID:/kB8s4lH0
マイクロソフトにサンプル載ってる
https://learn.microsoft.com/ja-jp/dotnet/csharp/fundamentals/types/records
2024/02/15(木) 19:05:11.58ID:hxPwVpAx0
const var i=1;
const var f=2.0;
const var s="three";
const var t=(1, 2,0, "three");
のように型名を省いて暗黙的に推量して頂くとエラーが出てしまいます。しかしconst抜きだとエラーが出ません。

この違いは、どのような設計思想が大本にあるのでしょうか?
また、何らかのケースで「const抜きだと推量できるがconstありだと推量できない」事があったりするのでしょうか?
2024/02/15(木) 19:41:45.34ID:FWtRb9+l0
constにできるのはプリミティブな数値型と文字列型のみ
constで定義できるかどうかと型推論とは関係ない
あと推量じゃなくて推論ね
2024/02/15(木) 19:49:50.51ID:hxPwVpAx0
>>8
ありがとうございます。
プリミティブな数値型や文字列型で、varによる型推「論」とconstが同時に使えないのは何故なのでしょうか?
2024/02/15(木) 20:34:44.99ID:FWtRb9+l0
あ、ごめん、そうだconst varはできなかった
一応理屈としては「定数は推論不要だから」だけど思想的なものは知らないや
2024/02/15(木) 20:37:08.94ID:K7b4kv3L0
その「思想的なもの」についてに質問だと思ってたけど、違ったのか。
ちなみに自分は知らない。
12デフォルトの名無しさん (ワッチョイ e31e-XyAm)
垢版 |
2024/02/15(木) 20:50:19.72ID:TvfAuxJO0
C#コンパイラチーム開発者の回答
https://stackoverflow.com/questions/2128432/type-inferring-a-constant-in-c-sharp#answer-2128581

> > why can't the type be inferred when the variable is a constant?
>
> "constant" and "variable" are opposites. const var gives me the shudders to type.
> A constant is a value that never changes and has no storage location; a variable is a storage location whose contents change.
> They're completely different, so don't attempt to combine them.
> The var syntax was chosen to call out "this is a variable", and we're sticking with it.
>
> var can stand in for a specific type declaration, but combining it with const severely muddies the picture of what the compiler does with the value.
> Therefore const var is disallowed to prevent this confusion and you have to explicitly type your constants.
2024/02/15(木) 21:02:55.86ID:hxPwVpAx0
>>10-11
ありがとうございます。
>>12
ありがとうございます。
やはりコンパイラ開発者の強い思想があるわけですね。「varとconstが反対の意味だから」という信念には納得です。
今後は const とタイプするたびに Eric Lippert に対して最上級の殺意がinvokeされそうです。
2024/02/15(木) 22:15:17.53ID:/kB8s4lH0
そんなに殺意あるなら使わなきゃいいよ
ストレスは身体に悪い
2024/02/17(土) 11:39:49.64ID:MIEy5sDuM
これはFBIに通報案件なのかな?

プログラマでこういう馬鹿な書き込みをするなんて…
16デフォルトの名無しさん (ワッチョイ 1e2d-Wfyb)
垢版 |
2024/02/17(土) 16:42:43.54ID:yHCQXuch0
>>6
ご解答ありがとうございます。
これって違いなんですか?

record class sampleclass
{

}

record sampleclass
{

}

どっちも違いという違いが無いみたいですが
2024/02/17(土) 17:07:15.30ID:39Q8sUNJ0
そんな例載ってる?
18デフォルトの名無しさん (ワッチョイ 1ea3-Wfyb)
垢版 |
2024/02/17(土) 17:15:13.47ID:yHCQXuch0
>>17
いや自分で書いてみました
record classってrecordのみと何が違うんですかっていう話です
どっちもequalの挙動同じだしclass付ける意味あるのかなと
2024/02/17(土) 17:35:15.39ID:39Q8sUNJ0
読んでないけど
C# 9.0 新機能】レコード(record)型はクラスと比べて何がオトクなのか
https://qiita.com/shimamura_io/items/80982b11ce41eca03e10
2024/02/17(土) 18:21:48.75ID:dT3ILzRK0
recordをrecord classって掛けるようになっただけで同じじゃね
2024/02/17(土) 18:29:59.01ID:qX4/mflN0
recordが導入されたC# 9.0では参照型しかなかったけど
値型でも使いたいって要求が出てC# 10.0でrecord structが作られて
記述あわせるためにrecord classって記法ができるようになった
22デフォルトの名無しさん (ワッチョイ 1ea3-Wfyb)
垢版 |
2024/02/17(土) 20:16:48.01ID:yHCQXuch0
>>21
ありがとうございます。
気にしなくてよさそうですね。
c#はこういう細かな規則が少ないんで助かります。
2024/02/18(日) 08:37:52.11ID:vucGTB3P0
https://twitter.com/intent/tweet?text=https://wikiwiki.jp/postmodern/&hashtags=%E7%B5%B1%E4%B8%80%E6%95%99%E4%BC%9A,%E5%89%B5%E4%BE%A1%E5%AD%A6%E4%BC%9A,NHK,%E6%97%A5%E3%83%86%E3%83%AC,%E3%83%86%E3%83%AC%E6%9C%9D,TBS,%E3%83%95%E3%82%B8%E3%83%86%E3%83%AC%E3%83%93,CNN,BBC
https://twitter.com/thejimwatkins
2024/02/19(月) 08:34:36.75ID:bbrhxb9z0
https://twitter.com/intent/tweet?text=https://wikiwiki.jp/postmodern/&hashtags=%E7%B5%B1%E4%B8%80%E6%95%99%E4%BC%9A,%E5%89%B5%E4%BE%A1%E5%AD%A6%E4%BC%9A,NHK,%E6%97%A5%E3%83%86%E3%83%AC,%E3%83%86%E3%83%AC%E6%9C%9D,TBS,%E3%83%95%E3%82%B8%E3%83%86%E3%83%AC%E3%83%93,CNN,BBC
https://twitter.com/thejimwatkins
2024/02/23(金) 11:47:45.00ID:kdfKV8gV0
デザインパターン勉強してるんですが
抽象と実装を分けるとか、生成と機能を分けるとか
「分ける」系の概念多いですね

結局インターフェースとか継承を上手く作ってコード拡張しやすいように
するのがデザインパターンって思っていいですか?

いくつか似てるのあって厳密に理解したくないですw
2024/02/23(金) 12:05:21.44ID:Mi7ac7sN0
>厳密に理解したくないです
好きにしたらいい
27デフォルトの名無しさん (アウアウウー Sae7-BFTb)
垢版 |
2024/02/23(金) 17:55:36.93ID:oF0kVzPVa
class Item {public string[] Tags;}

string[] findTags = ...
var q = DB.Items.AsQueryable();

// "AND"条件での抽出
foreach (var tag in findTags)
{
 q = q.Where(x => x.Tags.Contains(tag));
}

Entityframeworkでこんな感じのDBでAND抽出はできるのですが
findTagsにあるうちのどれかが当てはまったら抽出という"OR"抽出はどうやったらいいのでしょう?
2024/02/23(金) 22:34:31.31ID:zqQVbI3V0
q = q.Where(x => findTags.Any(tag => x.Tags.Contains(tag)));

でどうや
2024/02/24(土) 00:10:45.25ID:tp7Homqxa
>>28
入れ子にできるとは。これは天才。ありがとう
2024/02/24(土) 08:14:39.92ID:lt2kNdxY0
これしきで天才扱いは草よ
2024/02/24(土) 20:10:54.04ID:kGhlcAfr0
試していないが、EFでこれが本当に動くの?
linqでは正しいけど、EFではSQLに落としきれずに動かないことがあった

これがテスト済みなら大分助かる
2024/02/24(土) 21:35:39.16ID:tp7Homqxa
EFのsqliteで問題なし
特殊なことをしているわけでもないので他のdbでも落とせない問題は出ないかと
2024/02/24(土) 21:37:47.90ID:kGhlcAfr0
>>32
ありがとうね
これから使わせてもらいます
34デフォルトの名無しさん (JP 0H47-R199)
垢版 |
2024/02/24(土) 22:44:32.43ID:J1jKR+pzH
https://i.imgur.com/GNumla9.png

何でこれでエラー出るの?
2024/02/24(土) 22:57:46.95ID:HPvgnVlH0
「厳密に理解していないと」
プログラミング中に急に収集がつかなくなるが
それでいいのか?
2024/02/24(土) 22:58:46.54ID:dGxq80rr0
読み込んでいるファイルがUTF-8で正しく保存できているか確認したら?
変な文字コードが混ざっていないか。
2024/02/24(土) 23:08:57.50ID:splVjyLn0
対象の文字列の中身は?
そして Substring のパラメータにはなにが入るの?

文字列関係はきちんと理解しておいた方がいいよ。
2024/02/24(土) 23:22:09.11ID:BwAVpgpB0
日本語変数名の時点でまともにコード読む気にならねぇ(個人の感想です)
39デフォルトの名無しさん (ワッチョイ 677c-RxEe)
垢版 |
2024/02/25(日) 06:35:29.09ID:CJ+uCVrB0
>>38
でもさ英語圏の人達は変数名が英語じゃん
それって日本人が変数名を日本語で書いてるのと同じ感覚やん
何が違うの?

キー入力の観点で日本語入力のオンオフ切り替える手間が面倒とか
昔みたいに日本語の様なマルチバイト文字がコンパイル時に使えないとか悪い影響与えるっていうなら話は分かるんだけど
2024/02/25(日) 06:53:21.22ID:c1SoJhxt0
OSとかの根本部分は英語だしなぁ
いくらその上にマルチバイトで覆ってても
英語の方が単純、安全、分かり易い
41デフォルトの名無しさん (ワッチョイ 8797-nGkq)
垢版 |
2024/02/25(日) 07:07:54.83ID:wMKOowee0
英語圏と日本語圏でプログラミング力の平均値がかなり乖離があるのもこれ。

10000行とかでもコメント皆無でも英語圏の人なら
たった1分眺めるだけで概ね何のプログラムかはプログラムに縁がない素人すら答えられるが、
日本人の英語話せないプログラマだと大半は答えられないねぇ。
2024/02/25(日) 07:32:14.14ID:u4JBIOgU0
>>34
その3072とか4080の数字、全角になってないよな?

>>37
この画像見て変数の中身は?って言っちゃうのはさすがにどうかと
2024/02/25(日) 08:27:56.84ID:aFr+XRrH0
>>42
その可能性大かな。
2024/02/25(日) 08:34:05.61ID:OHnaaoCy0
substringって1ベースじゃないのん?
2024/02/25(日) 09:28:29.28ID:uPlT5ik30
>>44
ここC#スレなんで
2024/02/25(日) 11:24:20.07ID:z+BWi4sZ0
>>42
Substring( 0, 4-5 ) になってたりしない? ってヒントのつもりだったんだけど。
2024/02/25(日) 11:42:29.25ID:uPlT5ik30
>>46
まず画像をちゃんと見てくれ
2024/02/25(日) 11:51:21.01ID:c1SoJhxt0
文字列取得とぱーす分けてやれば分かるんじゃね
2024/02/25(日) 12:35:40.06ID:gpXALkS80
画像の幅の文字列の長さ見てみたら他のコードはいってて9超えてそう
2024/02/25(日) 12:53:02.34ID:c1SoJhxt0
いや一応メッセージみると数字のみ抽出はされてるような感じ
2024/02/25(日) 12:53:10.36ID:EQVkj53Md
ParseしてるところのSubstringとLengthをそれぞれ取り出して確認しればいいのにね
2024/02/25(日) 12:54:32.55ID:7XdQFtjY0
さすがふらっと、>>46とか>>49のように提示された情報すら精査できない人間がアドバイスしようとしてて草
2024/02/25(日) 12:55:40.05ID:u4JBIOgU0
例外の内容からしたら、全角数字をParseしようとしてるように思えるんよね

>>51
もう黙っとけ
2024/02/25(日) 13:11:53.02ID:mrkIKl0lM
まずRegexで\d*と[0-9]*の両方使ってみたら?
\dは数字系のものが全部かかるので全角が入っててもtrueになる

未知の文字列に対して幅決め打ちで取るのは止めた方がいい
2024/02/25(日) 13:20:02.41ID:EQVkj53Md
左下に情報でてるっていいたいんだろ?
でも結局それをみても投稿者だけでなくここでレスしてる奴も原因が特定できないなら一度細かくみりゃいいだけじゃねっていいたいんだが?
実際の開発でもそういうことしないの?
俺も見た感じ何がおかしくなってるのか不明だし細かくわけりゃ何かわかることもあるだろ
あと全角がわかりにくいならいったん左下の情報でもクリップボードにコピーでもしてエディタにはりつけるなすりゃいいんじゃね
2024/02/25(日) 13:23:08.52ID:EuDaAi1i0
GetFilePropertyValueの中で何してるか知らんけど
もしGetDetailsOfで幅を取得してるなら先頭に見えない制御文字が付いてるな
画像の幅の文字列.Substring(1,画像の幅の文字列.Length-6)で一応いけるけど
OS変わってピクセル表記じゃなくなるだけで動かなくなりそうだし正規表現の方がいいな
2024/02/25(日) 13:23:19.41ID:EuDaAi1i0
GetFilePropertyValueの中で何してるか知らんけど
もしGetDetailsOfで幅を取得してるなら先頭に見えない制御文字が付いてるな
画像の幅の文字列.Substring(1,画像の幅の文字列.Length-6)で一応いけるけど
OS変わってピクセル表記じゃなくなるだけで動かなくなりそうだし正規表現の方がいいな
58デフォルトの名無しさん (ワッチョイ 0bad-f7Kr)
垢版 |
2024/02/25(日) 13:28:24.43ID:O3pRRgk00
UTF8で変換してないとかかね?
59デフォルトの名無しさん (ワッチョイ 4a64-g1P5)
垢版 |
2024/02/25(日) 13:51:38.30ID:qsle6rXj0
Rustで有名アルゴリズムに挑戦 第16回 Rustで機械学習に挑戦 - k近傍法でアヤメの分類をしよう
https://news.mynavi.jp/techplus/article/rustalgorithm-16/
共同作戦で壊滅したマルウェア「Qakbot」復活、米国は犯行グループを逮捕できず
https://news.mynavi.jp/techplus/article/20240225-2885670/
悪意あるPythonパッケージを2つ発見、DLLサイドローディング技術悪用
https://news.mynavi.jp/techplus/article/20240225-2889952/
充電式バイブレータからマルウェア検出、USB充電デバイスに注意
https://news.mynavi.jp/techplus/article/20240224-2889949/
2024/02/25(日) 13:53:34.50ID:7XdQFtjY0
>>55
画像に写ってるコードと例外と変数情報見てそんな程度のことしか言えないから馬鹿だってんだよ

>ここでレスしてる奴も原因が特定できないなら
何人か数字が全角じゃないかって言ってるだろw
節穴かお前の目は

全角数字をParseしたらFormatException出るんだよ馬鹿
61デフォルトの名無しさん (ワッチョイ 4a64-g1P5)
垢版 |
2024/02/25(日) 14:00:09.43ID:qsle6rXj0
C++の後継目指すプログラミング言語「Carbon Language」、Googleの技術者が実験的公開。C++は技術的負債で改良が困難と
https://www.publickey1.jp/blog/22/ccarbon_languagegooglec.html
2024/02/25(日) 17:55:27.63ID:lILUSRDm0
ブラウザなどで文字列をダブルクリックすると単語を選択してくれますが、
この単語はどこが認識しているのでしょう? IME?ブラウザ?

WPFなど自前のアプリでつらつら文章表示するものがあって、
その文章をダブルクリックするとブラウザなどとは異なり変な区切りで単語選択されます。

C#から介入可能でしょうか
2024/02/25(日) 18:32:21.23ID:zhB6NxSY0
>>51
これが切り分けの最初のステップだよね
原因は>>56が書いてるように不可視の制御文字だと思うけど
2024/02/25(日) 19:16:06.77ID:szl/TotG0
>>61
カーボンでC++うごくの?
2024/02/25(日) 20:58:46.26ID:ruR0kTlF0
確かに、先頭に制御文字があったらあのコードじゃParse失敗するけど
幅と高さのプロパティの番号って176、178だったっけか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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