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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5f01-NOMG)
垢版 |
2022/09/18(日) 14:39:29.51ID:VjUDO6tf0
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part155
https://mevius.5ch.net/test/read.cgi/tech/1655422932/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.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
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2022/10/16(日) 11:34:12.88ID:7phLrZXmM
>>287
残念ながら文盲は文字自体が読めない人のことだよ

学がなく漢字が読めない
ひらがなが読めない

そういう人
君は文盲が何か理解できてない
2022/10/16(日) 11:35:46.69ID:1mPDcr2ta
アスペと言えば良かったということか
2022/10/16(日) 11:35:53.13ID:9tRg+VNh0
>>1 が読めないもん同士なんだからどっちも消えろw
2022/10/16(日) 11:51:09.98ID:zEVEZIxw0
>>289
バカなのか?
回答に That is VB6 code. って書かれてるだろ
どうせ>284は basic begin あたりで必死にググってきたんだろうけど恥の上塗りにしかなってなくて草

>>290
だから >>281に loop と書いてあるだろ
do loop も知らないのなら黙ってなよw
2022/10/16(日) 11:52:27.38ID:1mPDcr2ta
>>1が読めないアスペはいつまでもアホなこと言ってないで消えろよw
2022/10/16(日) 12:24:39.22ID:zEVEZIxw0
>>295
>>284に言ってやれよw
2022/10/16(日) 12:25:47.33ID:9H+50nm50
全く反省の色が見えないぞアスペ
2022/10/16(日) 12:47:17.79ID:zEVEZIxw0
キーワードで恥かいて悔しいねw
2022/10/16(日) 12:48:24.88ID:1mPDcr2ta
VB.NETの話にVBA持ってきて恥をかいたのがお前ということは言ったろw
いつまで寝言言ってんだスレ違い
2022/10/16(日) 13:27:00.75ID:zEVEZIxw0
まだ、VB.NETとか言ってて草
英語も読めないバカ乙
2022/10/16(日) 13:27:43.86ID:9H+50nm50
まだ恥をさらすんかいw
2022/10/16(日) 13:53:22.51ID:zEVEZIxw0
キーワードバカ颯爽と再登場!
恥の上塗りのよかーんw
2022/10/16(日) 13:54:32.92ID:9H+50nm50
悔しいのはわかったからそろそろスレ違いということを理解して出ていけよw
2022/10/16(日) 14:01:28.80ID:zEVEZIxw0
>>303
>>301 に言ってやれよw
2022/10/16(日) 14:03:19.31ID:9H+50nm50
お前に言ってるんだよアスペw
言葉遣い同じだからすぐわかるわアスペw
2022/10/16(日) 14:24:54.49ID:zEVEZIxw0
アスペとしか言えない恥曝し乙
そもそもid付いてるのに言葉遣いとか頭沸いてるのかよw
2022/10/16(日) 14:27:09.03ID:9H+50nm50
まだ続けるのか
アスペはしつこいなw
だから他のスレでも軒並みアスペと呼ばれてるんだぞw
2022/10/16(日) 14:45:38.60ID:zEVEZIxw0
>>307
>>307
2022/10/16(日) 16:51:17.67ID:SOkAGPqKd
アスペ文盲 vs アスペ老害
初心者C#「ファイッ!」
2022/10/16(日) 17:36:31.58ID:smb+KIWw0
>>291
文盲は「自分の名前の読み書きができるか」って基準です
2022/10/17(月) 10:52:48.22ID:EEvzrdC6M
>>310
それは間違った知識だな
識字率が著しく低い人がいわゆる文盲

戦後まもなくアメリカのGHQは敗戦国日本は漢字教育が妨げとなっていると感じ
ひらがなや漢字を廃止しアルファベットを導入しようとした

そのために識字率の調査を行った
その結果漢字の読み書きができないものは2%だけなのでその案は却下された

井上ひさしの書籍では識字率の試験を受けた老婆の話が載っていて読み書きは出来ないが
たまたま自分の名前の漢字が含まれていたので正解ゼロにはならなかったと言う逸話が乗っていた
それが間違って覚えてるんだろう
2022/10/17(月) 11:45:02.06ID:uvkff8kK0
>>311
世界中の文盲率を計測するために作られた世界標準の文盲の基準ですよ
あなたの言うような文学的基準では全ての国を平等に比較するのは無理ですね
2022/10/17(月) 15:53:46.65ID:4k1KVawh0
ホリ工モン基準だと日本人の5割は文盲らしいぞ
だからユーチューブとかチクトクが流行る
314デフォルトの名無しさん (ワッチョイ 6b01-uI8J)
垢版 |
2022/10/17(月) 20:54:25.97ID:9OAS6xxs0
なるほどホリエモンは文盲ってことか
2022/10/18(火) 00:44:28.00ID:JpO0eTnpM
>>312
そんな独自研究なんて聞いたことないわ
2022/10/18(火) 02:02:12.75ID:ngZCuxghM
「識字率が低い人」ってもう何もかもダメそうな表現やな……
2022/10/18(火) 19:12:18.10ID:PTCHOYVI0
アメリカのスラム街の子供は、I no. とかそのレベルだぞ
日本は寺子屋文化で異常に高いだけ
2022/10/18(火) 19:16:28.64ID:UBgCygBr0
>>317
そういうのはスラムとかじゃなくて知的障害の類だからそれで言ったら日本も別に変わらない
319デフォルトの名無しさん (ワッチョイ cb59-w9bA)
垢版 |
2022/10/18(火) 22:05:07.00ID:OR0fD8XM0
こう包み込む感じの関数と、括弧内に数値を入れる関数では何がちゃうんでしょうか?
ToString(floatvalue);
floatvalue.ToString();
2022/10/18(火) 22:17:39.34ID:HdYtkAV80
関数を作ったやつに聞くが良い

上はエラー
floatvalue.ToString(書式);
321デフォルトの名無しさん (ワッチョイ bb5f-Jufk)
垢版 |
2022/10/18(火) 22:30:07.73ID:joOPF2hi0
ヒント
ネームスペース
2022/10/18(火) 22:30:07.98ID:cuMhZa5Q0
LinqのSelectでサブセットのプロパティを自動展開して平坦化する方法ないでしょうか?
式木とか駆使しまくれば可能でしょうか

class HogeTable
{
  string ID {get;set;}
  string Name {get;set;}
  :
  :
}

=============

var query = from tbl in db.HogeTable
 select new
 {
   Expand(tbl) // <- HogeTableのプロパティを自動展開してほしい
 };
 ↓
var query = from tbl in db.HogeTable
 select new
 {
   tbl.ID
   tbl.Name,
   :
   :
 };
2022/10/18(火) 22:36:04.52ID:oAfMFtaG0
何がしたいのかわからん
その匿名クラスのオブジェクト作る意味あるか?
2022/10/18(火) 22:43:04.96ID:cuMhZa5Q0
先の例ではテーブル1個だけですが、実際はjoinしまくりでselectしたいプロパティがたくさんあります

var query = from tbl in db.HogeTable
 join fuga in db.FugaTable on tbl.ID equals fuga.HogeID
 select new
 {
   tbl.ID,
   tbl.Name,
   :
   fuga.HogeID,
   fuga.Code,
   : // プロパティ多すぎて書くのがだるい
 };
325デフォルトの名無しさん (ワッチョイ bb5f-Jufk)
垢版 |
2022/10/18(火) 22:44:16.89ID:joOPF2hi0
一度書けば済むんだからチマチマやれよ
2022/10/18(火) 22:49:27.13ID:cuMhZa5Q0
IT土方にはなりたくないんです!
スマートに書きたいんです
2022/10/18(火) 22:50:05.56ID:oAfMFtaG0
やっぱり何がしたいかわからんな
select (tbl,fuga)でいいだろ
2022/10/18(火) 22:59:42.55ID:HdYtkAV80
DapperのsplitOnだな
2022/10/18(火) 23:01:06.32ID:cuMhZa5Q0
>>327
それだと
foreach(var row in query)
{
 // row.tbl.IDのようにドットが2つになる
 // row.IDのようにアクセスしたい
}

後だしで申し訳ないですけど、このあとExpressionで動的に検索かけるので
tblとかfugaとかあると今の私の知識では出来ないんです。。
2022/10/18(火) 23:03:47.75ID:oAfMFtaG0
Expressionで動的に検索って何だ
何がしたいかわからんと再三言ってるんだからまず何がしたいかを説明しなきゃ話にならんだろ
2022/10/18(火) 23:05:30.50ID:cuMhZa5Q0
ぇ、だからやりたいのは>>322です
Expressionは質問の趣旨とずれます
2022/10/18(火) 23:06:39.73ID:oAfMFtaG0
そうか説明したくないなら別に聞く必要ないわ
頑張れ
333デフォルトの名無しさん (ワッチョイ bb5f-Jufk)
垢版 |
2022/10/18(火) 23:09:54.15ID:joOPF2hi0
動的にって、スクリプト書くしか無いんじゃね?
2022/10/18(火) 23:10:51.98ID:oAfMFtaG0
もう触らなくていいぞ
2022/10/18(火) 23:17:24.79ID:9/f62YBx0
>>322
jsのスプレッド構文みたいな感じ?
ちょっと違うか
2022/10/18(火) 23:23:54.56ID:cuMhZa5Q0
>>335
ニュアンス的にはそんな感じですね。
ただ展開したいのは値じゃなくてプロパティの方なので、やっぱり動的プログラミングの範疇ですよね
2022/10/18(火) 23:44:26.60ID:sRZwLUu60
C#でJavaScriptを実行する方法
アドレス省略

とかどうだろ?
ゲームだとLuaとかpythonよく使ってたな
自分は使える状態になったもんしかいじったことない
2022/10/18(火) 23:47:40.60ID:oAfMFtaG0
なるほどパフォーマンスや保守性を無視していかに質問者の最初の問に矛盾しないコードを書くかという大喜利か
2022/10/18(火) 23:54:23.64ID:sRZwLUu60
>>338
別に変な方法じゃないぞ
ゲームとかパフォーマンスに影響する部分はc++でゴリゴリ書くけど
そうでない部分はc#で
もうゲームシステム部なんて
全部pythonだったりしたぞ

ビジネスアプリでもこれ割とアリだと思うんだけどね
速度を求めてないときに型とか煩わしいだけで無駄だと思うんだよね
かと言ってDictionaryでやっちゃうと完全に型チェックなくなっちゃうし
2022/10/18(火) 23:59:43.02ID:oAfMFtaG0
ビジネスでは完全に無しだわ
趣味なら好きにしたらいんじゃね
341デフォルトの名無しさん (ワッチョイ cb59-w9bA)
垢版 |
2022/10/19(水) 05:19:21.43ID:jC2EXU9G0
>>321
下に関して、ネームスペースにする必要ありますか?
342デフォルトの名無しさん (ワッチョイ bb5f-Jufk)
垢版 |
2022/10/19(水) 09:19:09.84ID:JDWm2Gob0
>>341
あ?
上は自クラス内メソッドだろ?
下は参照クラス内メソッドだろ?
同じメソッド名ってのに惑わされるなよ別物だぞ
2022/10/19(水) 12:49:22.09ID:rgBskw8B0
>>324
Ruby on Rails には、O/R マッパーもあるので全自動

Rubyで抽象的に、マイグレーションファイルに表定義すれば、
3大データベース、PostgreSQL, MySQL, SQLite の方言・型で定義される

Railsみたいな、O/R マッパー付きのフレームワークを使わないと、プロにはなれない

Java 土方は、Railsを使えない。
Java土方 vs リモート開発のモダンなRails
2022/10/19(水) 12:52:27.97ID:rgBskw8B0
YouTube のDeanin の動画では、

Ruby on Rails で、Three.js, Godot で、3D ゲームを作っていた
2022/10/19(水) 13:56:06.53ID:8/1xE7uxa
オワコンと言われて久しいRailsがモダンと言われたのは何年前の話だろうか
2022/10/20(木) 11:30:15.44ID:PZrToWIo0
>>318
違うぞ、きちんと話せて意思疎通もできるけど、単に文字が書けない知らないってだけ
日本にいたら、そんな人の存在は理解できないけど
2022/10/20(木) 14:00:06.54ID:EjoMYd4Ya
(スラングだといつ気づくんだろう)
348デフォルトの名無しさん (ワッチョイ cb59-w9bA)
垢版 |
2022/10/21(金) 20:36:11.47ID:Uz/9j/Qf0
プログラミンはどれだけきれいに書くかが大事なんでしょうか?
汚いとそれだけで頭がこんがらがります(´・ω・`)
2022/10/21(金) 20:38:50.78ID:cLyPMgkx0
WOZは天才だけどプログラムが美しいかと言うと?
2022/10/21(金) 20:39:28.61ID:evL0t28u0
>>348
設計レベルだときれいは必須
コーディングレベルだとVSに従ってるレベルであればOK
2022/10/21(金) 21:45:05.81ID:IBSByhnA0
性格いい人見つけてレビューしてもらう
352デフォルトの名無しさん (ブーイモ MMcf-Z2+b)
垢版 |
2022/10/21(金) 22:27:13.65ID:whbnSZB/M
>>348
その通り
ただ君の考えるキレイと優れた開発者の考えるキレイが同じとは限らない
2022/10/21(金) 23:23:29.11ID:X//QLN3D0
可読性の高い、Ruby がベスト。
他の言語は可読性が低いから、作った瞬間から産業廃棄物

だから皆、新規で作って、作り逃げする。
自分が作ったものでも、改修できないからw
354デフォルトの名無しさん (ワッチョイ 3901-80Lh)
垢版 |
2022/10/22(土) 00:49:35.85ID:vvrmomXL0
>>353
正論
Ruby以外の言語をやってるやつはサタン
2022/10/22(土) 00:58:20.33ID:SCNLWEI10
可読性が低いことで有名なPerlを受け継いだRubyの可読性が高いって何の冗談なんだか
2022/10/22(土) 01:04:16.52ID:sdxg/Y9t0
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
2022/10/22(土) 01:04:55.75ID:SCNLWEI10
自分に言い聞かせてるのか
2022/10/22(土) 04:59:53.84ID:g5VlGNlPa
>>356
ほんこれ
2022/10/22(土) 10:37:35.64ID:rexZxi1C0
enum型をintにするには (int)hogeでいけるが
Hage<T>(T value) の時、valueをintに変換
var result =(int)vale; だとエラーになる

どうすればいけるんですかね?
2022/10/22(土) 10:57:52.04ID:sdxg/Y9t0
Hage<T>(T value) where T: Enum
2022/10/22(土) 11:25:06.41ID:QLe4fcYA0
>>359
一度objectに変換すればOK
var result = (int)(object)value;
2022/10/22(土) 11:43:10.44ID:LN75Th25a
>>361
きっつ
2022/10/22(土) 12:37:18.58ID:rexZxi1C0
>>360
今回はすべてのタイプを取り込んでからEnumのときだけやるのでこれは使えませんでした

>>361
コレで行けました
ありがとうございます
2022/10/22(土) 13:50:10.10ID:JgadWci70
そもそもintにしなきゃいけないならenumなんか使うなと思うが・・・
2022/10/22(土) 14:16:53.47ID:J0WzfMNr0
>>364
intのままだと値域を制約できないが、代わりに何を使えばいい?
2022/10/22(土) 17:11:59.78ID:DoqTc5dI0
ジェネリックついでに横から質問させてください。

省略可能引数にジェネリック型指定した場合、呼出側でコンパイルエラーになります

// 呼び出されるメソッド
void Miku<T, U>(List<T> vol, U negi = null) where U : class
{
}

// 呼出側
hatune.Miku(list); // CS0411 メソッド 'method' の型引数は、使用法から推論することはできません。 型引数を明示的に指定してください。

回避策ありますか?
2022/10/22(土) 17:16:23.54ID:eEXfO1n1M
だってエラーメッセージ通りだろ
どうやってUが何の型か推測できるんだよ

対策はエラーメッセージ通りに明示的にかけ
2022/10/22(土) 17:18:14.30ID:rGDZLIi60
ノリと勢いで推測しろよな
2022/10/22(土) 17:27:58.11ID:eEXfO1n1M
人間はミスして当たり前
何かあったら自分が間違っていることをすぐに受け止めないといけない
そこが入り口
何十年もコード書いてるけどミスだらけ
まずはしっかりとエラーメッセージを読むしかない


にしてもお前らジェネリック好きだな
自分はジェネリックのメソッドなんてほぼ書かないよ
2022/10/22(土) 17:32:27.07ID:eEXfO1n1M
汎用ライブラリみたいなのでジェネリックはありうる

でも自分の使うライブラリのメソッドでは出番はない
クラス設計終わってるしinterface使わないでジェネリック単体なんてことはまずない
そこを汎用的に作る意味ないしコード重複もない
2022/10/22(土) 17:36:42.98ID:0Z7kQC5T0
おまえがジェネリックを書くかどうかなんてどうでもいい、チラ裏にでも書いとけ
2022/10/22(土) 17:42:42.27ID:eEXfO1n1M
普段のコードでジェネリックを使ってたら大体何かが間違っている
2022/10/22(土) 17:50:29.89ID:SCNLWEI10
ジェネリックをほとんど使ってないやつのコードを見ると単一責任原則に反してるケースが多い
2022/10/22(土) 19:28:17.81ID:LnG3fbHw0
曖昧論はいいから具体論を頼む
375デフォルトの名無しさん (ワッチョイ 8135-qwLX)
垢版 |
2022/10/22(土) 19:57:34.11ID:ql0xnxKt0
デフォルト型引数っていうのはないのか
2022/10/22(土) 20:35:58.55ID:eEXfO1n1M
普通にオーバーロード書けよ
377デフォルトの名無しさん (アウアウウー Sa45-qwLX)
垢版 |
2022/10/22(土) 20:59:48.27ID:PKq48whGa
tsにはあるみたい
2022/10/22(土) 21:14:16.27ID:eEXfO1n1M
typescript(javascript)にはオーバーロードがないからな

普通に書けばいいのにわざわざ難しく書いて機能がないとか言い出すのはどうなの
379デフォルトの名無しさん (アウアウウー Sa45-qwLX)
垢版 |
2022/10/22(土) 21:16:10.99ID:dlqtwNJ3a
おー、怖い怖い。
2022/10/22(土) 21:29:04.96ID:SCNLWEI10
tsは変性が無茶苦茶で整合性とれてないからデフォルト型引数ができるんだろ
https://qiita.com/na-o-ys/items/aa56d678cdf0de2bdd79
381デフォルトの名無しさん (ササクッテロラ Sp11-SrSm)
垢版 |
2022/10/22(土) 21:50:34.77ID:pZkxSUcfp
デフォルト型引数を導入は完全な上位互換ではなく何かしらの不都合があるからないってことかな?
よーわからん。
2022/10/22(土) 21:55:53.90ID:eEXfO1n1M
typescriptは出来立てはきれいな文法や仕様だった

ところが素のjavascriptの仕様がひどすぎてどんどん仕様追加していって
全部の機能を把握してコード書いてる人間はいないんじゃないかと言うぐらいカオス状態になってる
2022/10/22(土) 22:34:54.25ID:DoqTc5dI0
もちろんオーバロードも考えましたけども。
Mikuメソッドが30行くらいあって、negiが指定されてる場合に処理の真ん中あたりの2,3ステップだけnegi処理をやるっていう
すっごいオーバロードに向かない作り。

記述量も増えるし、一概にオーバロードっていう考えもどういうものかと。
それにメソッド定義時点で警告も何も出ないので、何か呼び出せる書き方があるのかなと思った次第です
2022/10/22(土) 22:37:13.17ID:sdxg/Y9t0
void Miku<T>(List<T> vol) => Miku<T, object>(vol);

この1行足すだけやん
コピペで作ろうとしてる?
2022/10/22(土) 22:38:02.72ID:sdxg/Y9t0
まちがえた
... => Miku<T, object>(vol, null);
2022/10/23(日) 10:00:46.08ID:+fqIJl0NM
>>383
警告出るわけがない
出るならコンパイラがおかしい

hatune.Miku<List<Person>,Address>(list,place);
みたいに型を省略しないでかけばいい

どちらにしても本当にジェネリック使うのが正しいのか考え直して欲しい
2022/10/24(月) 18:30:02.69ID:Pqz/1oYS0
where U : classの必要性がわからん
何も渡さないなら
Miku<T>(List<T> vol, object negi = null)
で良いんじゃないかとしか思えん
2022/10/24(月) 18:55:12.60ID:chiatfyX0
それAggregateの前でも同じこと言えんの?
2022/10/25(火) 17:31:24.22ID:/HcoEXSHd
中括弧というか、中括弧行がほぼ、空白行にみえて、鬱陶しい
vbしかやってこなかった弊害だな
2022/10/25(火) 17:37:21.21ID:qnnhkHib0
スコープが変わるからインデントを入れても空白行を入れても問題ない程度にはコンテキストが違うぞ
空白行は複数行のコードをいくつかのまとまりに分ける時に使うだろ?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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