ふらっと 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/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
スコープが変わるからインデントを入れても空白行を入れても問題ない程度にはコンテキストが違うぞ
空白行は複数行のコードをいくつかのまとまりに分ける時に使うだろ?
391デフォルトの名無しさん (ワッチョイ 8201-80Lh)
垢版 |
2022/10/25(火) 18:41:46.55ID:tJBp4Vzi0
EntityFrameworkについての質問です。
同じDB(SQLServer)で2つのテーブルを使いたいのですが、現在すでにEntityFrameworkで登録しているテーブルに加え、
もう一つ別のテーブルを追加したいときどのように記述すればよいのでしょうか。

DataContextクラスをもう一つ作らないといけないのでしょうか。
よろしくお願いします。
https://imgur.com/w35hFzI.jpg
2022/10/25(火) 18:56:40.03ID:tQ39k2n1a
>>391
https://teratail.com/questions/sc3yzexncjd2uj
dbは違うけどこれお前じゃね?
393デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/25(火) 18:58:42.86ID:mfkWT+mt0
print(1%3);
なんでこれの結果が1になるんでしょうか
0.11111111になるかとおもってたんですが
394デフォルトの名無しさん (ワッチョイ 8201-SlLl)
垢版 |
2022/10/25(火) 18:59:45.45ID:tJBp4Vzi0
>>392
残念違います
2022/10/25(火) 19:06:06.10ID:tQ39k2n1a
>>393
余りが整数にならないわけないじゃん
2022/10/25(火) 19:18:16.71ID:Str/i4Gi0
>>389
中カッコが空白行っぽくみえるからVBで入れてた空白行をいれなくてよくていい感じだが

>>391
そもそもその一つ目のテーブルどうやったんだよ?
同じ手順で追加できるんじゃね
397デフォルトの名無しさん (ワッチョイ 8201-SlLl)
垢版 |
2022/10/25(火) 19:19:52.52ID:tJBp4Vzi0
すみません自己解決しました
public DbSet‹Article›~の下に
public DbSet‹追加したいテーブルのモデル›プロパティ名ゲットセットを追加して
ソリューションのMigrationsファイルを削除してやってみたらいけました
398デフォルトの名無しさん (ワッチョイ 8201-SlLl)
垢版 |
2022/10/25(火) 19:20:54.69ID:tJBp4Vzi0
>>396
同じ手順でやってみたのですがマイグレーションズファイルの中身が邪魔してたのかもしれません
2022/10/25(火) 19:21:44.69ID:510nTPbL0
非常に初心者スレっぽい流れ
400デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/25(火) 19:57:45.49ID:mfkWT+mt0
bool rangeFunction(float value,float min,float max)
{
if(value > 0 && value < 3)
{
print("範囲内です");
return true;
}
return ;
}

ifの外でリターンを返すにはどうしたらいいんでしょうか?
範囲指定の関数になります。
もし範囲内であればtrueにします
2022/10/25(火) 20:00:18.67ID:qnnhkHib0
return value is >= min and <= max;
2022/10/25(火) 20:01:21.65ID:qnnhkHib0
つかprint(って何だ)をそんな変なところに入れんな
2022/10/25(火) 20:01:30.48ID:PDW864Oy0
>>393
%は余剰(割り算の余り)を求める演算子
1÷3=0余り1
2022/10/25(火) 20:05:37.53ID:PDW864Oy0
>>400
下の方のreturn ;をreturn false;にする
2022/10/25(火) 20:16:09.52ID:VW8svp7V0
>>393
もし良ければ、0.11111111 になると思った根拠を聞かせて
2022/10/25(火) 21:04:35.60ID:M/tJTOq7M
0.11111111.…(永久に循環)だったら =1だから間違ってはいないけどそういう問題でもない
2022/10/25(火) 21:05:06.09ID:M/tJTOq7M
二進数でが抜けてたな
2022/10/25(火) 21:08:37.11ID:qnnhkHib0
算数苦手なんだろ
1/3が0.333...だから余りは1-0.333...×3で0.111...という発想なんだろうな
それでも0.000...だけどな
409デフォルトの名無しさん (ササクッテロラ Sp11-LjDK)
垢版 |
2022/10/25(火) 21:10:47.53ID:JX+WIZlhp
整数の世界
2022/10/25(火) 23:46:02.17ID:GCi1IYdR0
print文はrangeFunction()呼び出し側に実装すべき
411デフォルトの名無しさん (アウアウウー Sa45-80Lh)
垢版 |
2022/10/26(水) 00:08:21.84ID:NhZ6Jc52a
VBSのこの配列はC#でどう表現したらいいのでしょう?xyhwはintです
data = Array(Array(x, y), Array(x + w, y), Array(x + w, y + h), Array(x, y + h))

COMを使う引数用配列の定義なのですが、これはCOMに型が違うと怒られました
var data= new int[][] { new int[]{ x, y }, new int[] { x + w, y }, new int[] { x + w, y + h }, new int[] { x, y + h } };
2022/10/26(水) 00:10:49.93ID:MPkBvgrP0
どういう型なのかVSが正確に教えてくれるのがこの言語の良さだが教えてくれないのか?
具体的にCOMのどの関数?
2022/10/26(水) 00:16:41.96ID:NhZ6Jc52a
photoshop.applicationのActiveDocument.Selection.Selectです
2022/10/26(水) 00:17:49.17ID:HZuVvHGf0
int配列じゃないじゃないか
2022/10/26(水) 00:24:02.09ID:NhZ6Jc52a
すみません。doubleでした。が、これでもエラーは変わらずです
data = new double[][] { new double[] { x, y }, new double[] { x + w, y }, new double[] { x + w, y + h }, new double[] { x, y + h } };
2022/10/26(水) 00:49:42.78ID:NhZ6Jc52a
自決。これでいけました
data = new object[] { new object[] { x, y }, new object[] { x + w, y }, new object[] { x + w, y + h }, new object[] { x, y + h } };
417デフォルトの名無しさん (ワッチョイ 8135-aRew)
垢版 |
2022/10/26(水) 00:53:03.57ID:lrx3siXd0
おう早く成仏しろよ
2022/10/26(水) 06:08:13.19ID:h2Qffg100
定期的に自決してるネ
2022/10/26(水) 08:07:30.06ID:HZuVvHGf0
自決が自殺のことと知らず自分で勝手に言葉を作るやつが増えたんだろ
2022/10/26(水) 09:24:34.71ID:T9NC5dRR0
5chのノリに対して真面目に言われても。。
2022/10/26(水) 09:36:42.74ID:7O9MyaKx0
https://images.squarespace-cdn.com/content/v1/5068fd0ec4aa16ad80737e95/1524567345147-PKE47EDZHTVBCAOJ60NE/kitano005.jpg
2022/10/26(水) 09:37:16.88ID:HZuVvHGf0
お前らノリじゃなく本気で知らんだろ
最初は俺も「さすがにそれを知らんやつはいないから冗談だ」と思ってたんだぞ
423デフォルトの名無しさん (ササクッテロラ Sp11-LjDK)
垢版 |
2022/10/26(水) 09:58:58.52ID:e8T4fz3Wp
varで勝手に型決めろって言っといて型が違うとか傲慢なw
2022/10/26(水) 10:12:48.45ID:HZuVvHGf0
varは型推論
型を自由に変えられるのはvbならvariant
C#ではCOMはdynamicで受けるのが定番
2022/10/26(水) 10:13:22.89ID:YS2geK1Yr
勝手に決めろというか推論だから、違ってることもあるんじゃねーの?
426デフォルトの名無しさん (ササクッテロラ Sp11-LjDK)
垢版 |
2022/10/26(水) 10:17:04.49ID:e8T4fz3Wp
object型が万能型って事かぁ
2022/10/26(水) 10:20:24.72ID:Do8Z1/L1a
objectじゃなくdynamicだっつってんだろw
objectにしたらobjectの持ってるメソッド以外使えないだろ
2022/10/26(水) 10:26:21.60ID:g9KqG/ntM
>>425
確定できる文法になっています
429デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/26(水) 10:26:54.29ID:hM0WEApa0
>>403
なんで0.11111があまり1になるんすかね(´・ω・`)
2022/10/26(水) 10:28:54.49ID:g9KqG/ntM
>>429
0.11111ってどっから出てきたの?
431デフォルトの名無しさん (ワッチョイ 8201-SlLl)
垢版 |
2022/10/26(水) 10:29:16.86ID:lQW0CdoF0
基本的に型が合いませんって言われたらobject型を疑うようにしてる
クラス名の型にぶち込めばなんやかんやで動いてくれる
432デフォルトの名無しさん (ワッチョイ 8201-SlLl)
垢版 |
2022/10/26(水) 10:30:16.76ID:lQW0CdoF0
>>429
0.00000000…1だろ…
433デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/26(水) 10:37:26.97ID:hM0WEApa0
>>401
どゆこと?特定の範囲内に収まってればtrueを返したい
434デフォルトの名無しさん (ササクッテロリ Sp11-LjDK)
垢版 |
2022/10/26(水) 10:40:48.05ID:yId2OGphp
>>429
整数しか無い世界の話に少数持ち出すなよw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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