[過去ログ] ふらっと C#,C♯,C#(初心者用) Part150 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(2): (ワッチョイ 2b02-+i0H) 2021/03/23(火)12:58 ID:ACoFzk2L0(1/2) AAS
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
省21
922: (ワッチョイ a662-W8a5) 2021/05/11(火)14:03 ID:9XfnnIxq0(2/4) AAS
>>921
別に俺が作ってる訳じゃないからそんなこと言われても知らんがな
enumでやりたくないならそれでいいと思うし好きにやりなよ
923(1): (アウアウウー Sa1f-dxvU) 2021/05/11(火)14:27 ID:7X7kMfyca(1) AAS
>>919
enumの利点はコンパイル時に名前の集合を型として定義できる、
名前の集合が確定していて、だからインテリセンスが使えたり
集合に含まれないはずの名前が使われている間違いをコンパイル時に検出できることなので
それは代用にならんでしょ。
質問している人の問題はたぶん継承に固執してること。
部分集合を再利用して上位集合を定義したいって問題意識は分からんでもないけど、
省1
924: (エアペラ SDd7-/hng) 2021/05/11(火)14:31 ID:pmLjbtQdD(1) AAS
適材適所
925(1): (ブーイモ MMd6-D3Lk) 2021/05/11(火)14:40 ID:/TD/rkCHM(1) AAS
C#や諸々の言語はそもそも、継承の仕様が出来損ないなんだよね
Java 16みたいにSealed Classを定義できるなら、まだしもねぇ
どんなクラスでも継承できます、なんて言われてもね
全てのサブクラスの面倒を見るなんて、事実上不可能だろ
だからサブクラスを限定する仕組みが必要なのだが…
C#はまだまだ、遅れてるね
926: (ワッチョイ a662-W8a5) 2021/05/11(火)14:45 ID:9XfnnIxq0(3/4) AAS
>>923
ああ、そういう事ね
Nullとか空とかのEnumを用意しとくべきかみたいな話と似てるな
927(1): (ワッチョイ 5b2d-gUNg) 2021/05/11(火)15:00 ID:1Lpm83JY0(3/4) AAS
>>925
Javaのことは知らんけど
C#のsealed classでは駄目なの
928: (ワッチョイ a662-W8a5) 2021/05/11(火)15:07 ID:9XfnnIxq0(4/4) AAS
自分ならカスタム属性と拡張メソッド作って、集合.Hoge.Colors()で一覧を取れるようにするかな
まあケースバイケース
enum 集合{
[AddColor(Color.赤, Color.青)]
Hoge,
[InheriteColor(集合.Hoge)]
[AddColor(Color.黄)]
省2
929(1): (ワッチョイ be2c-5KFm) 2021/05/11(火)15:14 ID:Fjpe2RX80(1) AAS
>>927
そっちじゃなくて継承できる型を限定する機能だね
ShapeインターフェイスをRectangleクラスとCircleクラスのみ実装可能にする
他の奴がTriangleクラスを作ってShapeを実装するのは認めない
930: (ワッチョイ 5b2d-gUNg) 2021/05/11(火)15:43 ID:1Lpm83JY0(4/4) AAS
>>929
なるほどC#に限定する機能はないね
コンストラクタのアクセス権をinternalにしてアセンブリを分ければ実用上はそんなに困らなそうだけど
931: (ワッチョイ 2a01-Yqly) 2021/05/11(火)16:04 ID:gVDvfxdk0(1) AAS
>>919
>override List<enum> Lamps => base.Lampsと黄を返す
これはEnumでやってるんじゃなくListでやってるだけのような・・
取りうる状態の範囲をEnumで表現してないしコンパイル時のチェックも無理だよね
>override Color Lamp => base.Lamp | Color.黄
こっちも型としてはColorになるので既存のColor定義が赤と青だけなら
全く別のEnumを新しく定義することか、既存の定義自体を変更して黄を足すかになるので
省2
932(1): (ワッチョイ 2fb0-DjaX) 2021/05/11(火)16:18 ID:qWgZ839v0(2/2) AAS
>>896
文字列の雛形をDBに持たせて、パラメータ部分を置換して出力するみたいなことやってたのよ
『置換して出力』部分を$使う挿入文字列で置き換えられたらいいなって夢想した
pythonの似たような機能でキーワード引数による指定が出来るから、似たようなこと出来ないかなって
> print('{first} and {second}'.format(first=a, second=b))
string.format使えばいいだけなんだけどね
933: (テテンテンテン MMe6-I8iA) 2021/05/11(火)20:06 ID:7D4cBYXWM(1) AAS
>>932のやりたいことが挿入文字列を共通化したいってことならおとなしくメソッド化して
string ToHelloText(string name, DateTime date) => $"Hello, {name}! Today is {date.DayOfWeek}, it's {date:HH:mm} now.";
で
Console.WriteLine(ToHelloText(name, date));
みたいな使い方するほうがいいんじゃ
934: (エムゾネ FF8a-dxvU) 2021/05/12(水)09:24 ID:HCx7UYF5F(1) AAS
プラごみを減らすためにレジ袋有料化するって話と似てるな
そもそもピントがずれてるし前提も可笑しい
935: (ワッチョイ be2c-5KFm) 2021/05/12(水)14:46 ID:kcMRoKH40(1) AAS
リソースで他言語対応すると考えると欲しい気持ちは分かる
"Hello, I'm {givenName} {surname}."
"こんにちは、私は {surname}{givenName} です。"
みたいに書きたい
936: (ブーイモ MM97-tepi) 2021/05/12(水)14:52 ID:KOpdkLhcM(1) AAS
All your base are belong to us
937: (オッペケ Sr33-7fsT) 2021/05/12(水)18:25 ID:l5b/FJ1ur(1) AAS
evalをやりたいと言うことだな
テスト不可になるからいらんけど
938: (ワッチョイ 9f5f-Y/5H) 2021/05/12(水)22:11 ID:rLfxFtSp0(1/2) AAS
c#ってvisual studioインストールしたときに入ってるコンパイラじゃなくて
.Net 5に移行するのが良いでしょうか?
Microsoftも.Net 5移行を推進していきますかね?
939: (ラクッペペ MMe6-jV+5) 2021/05/12(水)22:18 ID:ApiPrDZMM(1) AAS
同じもの
940: (ワッチョイ 9f5f-Y/5H) 2021/05/12(水)23:16 ID:rLfxFtSp0(2/2) AAS
そうだったんですね!
941: (ワッチョイ 0bda-jV+5) 2021/05/13(木)01:52 ID:Q5JRmth30(1) AAS
コンパイラは同じ
実行環境やフレームワークは違う
942(2): (アウアウクー MM23-Wdz7) 2021/05/14(金)12:23 ID:4kCY9pobM(1/2) AAS
まさかC#でメンバ変数名のprefixにアンダーバー付けてないやつおる?
外部リンク:anond.hatelabo.jp
943: (ワッチョイ d1e3-Adon) 2021/05/14(金)12:27 ID:hPLmdAiv0(1) AAS
なんで今更感が半端ない
アンダースコアつけて怒られた記憶あるわ
944: (ブーイモ MM5b-M3SR) 2021/05/14(金)12:32 ID:o+OksdyUM(1) AAS
アンスコあかんの?
945: (アウアウクー MM23-Wdz7) 2021/05/14(金)12:45 ID:4kCY9pobM(2/2) AAS
今まで記載がずっとなくて、同じMicrosoftの子会社が出してるStylecopっていうコード解析ツールの言ってることなら正しいだろうって風潮だったんだけど逆転敗訴した感じ
946(2): (ワッチョイ 1fb0-sort) 2021/05/14(金)12:49 ID:idb/Si4k0(1/2) AAS
前までただのキャメルだったよな? 何かしっくりこないなあと思いつつあわせてたのに
というか>>942はちゃんとprivateのメンバ変数って書いてくれ
947: (ワッチョイ ab2c-mHP1) 2021/05/14(金)12:59 ID:ty8DhYlQ0(1) AAS
俺は今まで通り m_ + PascalCase でいく
948: (エアペラ SD73-f+4d) 2021/05/14(金)13:15 ID:fGdsMbaSD(1) AAS
キャメルケースの事をキャメルって略すのはどうも抵抗がある
949: (ワッチョイ aba7-4lYq) 2021/05/14(金)13:52 ID:xt/CNvYd0(1/2) AAS
スコープで付けると便利だけどね
gグローバルgUnko
mメンバmUnko
in引数入力inUnko
out引数出力outUnko
valローカルvalUnko
950: (アウアウウー Sa1d-JrGs) 2021/05/14(金)14:00 ID:E7dr4uiDa(1/2) AAS
>>942
さすがにアホなガイドラインでほとんど同意は得られない気がする。
バッキングフィールド限定なら少なくとも俺は賛成するけど。
まあ、普通のフィルドもバッキングフィールドも出番減ってるから
どうでもいいと言えばどうでもいいかも
951: (ワッチョイ 5342-Adon) 2021/05/14(金)14:04 ID:vWTxavwv0(1) AAS
アンダースコアはライブラリと被った記憶
C言語時代だが
952: (ワッチョイ aba7-4lYq) 2021/05/14(金)14:10 ID:xt/CNvYd0(2/2) AAS
ぶっちゃけ客先のカスタマイズできない環境で文字ちっちゃくて見にくいときあるからイラネ
953(2): (アウアウウー Sa1d-JrGs) 2021/05/14(金)14:16 ID:E7dr4uiDa(2/2) AAS
しかし、_でプリフィクスしとくとインテリセンスでフィールドが一覧できて便利だよ、
ってコメントは泣けてくるねw
普通逆じゃないかw
インテリセンスの候補に登場して欲しくない奴を_でプリフィクスするのが普通のセンスだと思うけど。
954(2): (ワッチョイ 1fb0-sort) 2021/05/14(金)14:36 ID:idb/Si4k0(2/2) AAS
>>953
そのコメントどこに書いてある?
ところで別の話なんだけど、
とあるデータの集計や加工をメソッドチェーンで書きたい考えと、その集計や加工をデータとは別のクラスかつステートレスで書きたい考えって両立できるのかな?
拡張メソッド使うくらい?
955: (ワッチョイ ff01-vB/y) 2021/05/14(金)16:32 ID:0kdm8qdh0(1) AAS
>>954
コンテナ(データ).加工(…).集計(…)
インスタンスメソッドは暗黙的にthisを使ってるのでステートレスじゃないってことなら拡張メソッドも同じじゃない?
956(3): (ワッチョイ cb68-gSvD) 2021/05/14(金)19:49 ID:xeRYEvYS0(1) AAS
オセロのプログラム作っています。
オセロが盤面にの上にくると影を描きたいのですが
これはフォームアプリでできますか?
957(1): (ワッチョイ f1da-Wdz7) 2021/05/14(金)20:01 ID:7GBYwo1U0(1) AAS
>>946
publicなメンバ変数って一般的か?
958: (ブーイモ MMe1-6eZC) 2021/05/14(金)20:03 ID:7vyBBBSUM(1) AAS
>>956
半透明の影を書き込んだ画像と影なしの画像の2種類を用意しといて切り替えたらいい
それ以上を求めるならFormsなんか捨ててちゃんとゲーム作りとしてUnityとかに再入門した方がいいよ
959: (スププ Sdd7-Ratl) 2021/05/14(金)20:38 ID:8fzMB91td(1) AAS
>>956
あくまでもWinFormでやるならGDI+っていう機能を調べて、
円をキャンバスに描けばオセロ程度のアプリケーションを作るのは楽かもね。
そりゃあ本気でゲーム作るならUnityだろうけど、
オセロの内容にこだわるなら、コンソールで十分なんだけど。
960: (ワッチョイ 03da-as9D) 2021/05/14(金)20:41 ID:95pD/4XI0(1) AAS
WPFならDropShadowEffectで一発
961: (ワッチョイ 3bad-z8Fo) 2021/05/14(金)21:13 ID:VM2FDDZI0(1) AAS
>>946
いや、そもそもそんなコーディングガイドラインは存在しなかった。各ツールやライブラリごとに好き勝手やってる
あと、privateだけじゃなくてinternalもな
962: (アウアウウー Sa1d-JrGs) 2021/05/14(金)21:29 ID:d3AihMu6a(1/3) AAS
>>956
「オセロが盤面にの上にくる」っていうのがどういう状況かよく分からんのだけど、
プレーヤーが置いた位置まで石が移動するアニメーション的な演出をしたいってこと?
963: (オッペケ Sr6f-Adon) 2021/05/14(金)21:45 ID:Hk5V+gvwr(1/4) AAS
m_とかアンダースコアつけるとかは原始人に見えてしまう
964: (アウアウウー Sa1d-JrGs) 2021/05/14(金)21:49 ID:d3AihMu6a(2/3) AAS
フィールドにmつけるのは割とそんな悪い習慣じゃないと思うけどアンダースコアは要らんね
mFooでいい。m_Fooにする意味が分からん
965: (オッペケ Sr6f-Adon) 2021/05/14(金)21:50 ID:Hk5V+gvwr(2/4) AAS
そっちの方が原始人度が高いとおもうがw
966: (オッペケ Sr6f-Adon) 2021/05/14(金)21:51 ID:Hk5V+gvwr(3/4) AAS
フィールドにメンバーのmをつけるのもどうなのかとw
967(1): (ワッチョイ eb0c-0qpL) 2021/05/14(金)21:54 ID:2Onmey4o0(1) AAS
プロジェクトで統一されてりゃなんでもええよ
センスだのなんだのは個人の信仰でしかあらへんのじゃ
968(1): (ブーイモ MM5b-1bOW) 2021/05/14(金)21:56 ID:et+gRElJM(1) AAS
一般的な流儀はキャメルmFooかスネークm_fooのどちらか
969(1): (ワッチョイ d978-sort) 2021/05/14(金)22:00 ID:krSfg/SG0(1) AAS
てめぇの流儀を勝手に一般化するな
970: (アウアウウー Sa1d-JrGs) 2021/05/14(金)22:05 ID:d3AihMu6a(3/3) AAS
>>968
キャメルとスネークの差異は単語の区切り方にあると思うけど、フィールド(メンバー)にmつけるのは
ハンガリアンだと思うので本来はちょっと別物だよね。
>>967
確かに人間には適応能力があるので基本的にはその通りだけど、
それでも優劣の差がないというのも欺瞞だとは思う
あるとしてもどうでもいい程度の差だろ?はいその通りですw
971: (オッペケ Sr6f-Adon) 2021/05/14(金)22:20 ID:Hk5V+gvwr(4/4) AAS
>>957
Xamlで
972: (ワッチョイ 1301-tI/9) 2021/05/14(金)23:16 ID:ijV+D4Iw0(1) AAS
>>969
そういうゴタクはキャメルとスネークより一般的な流儀出してから言いなよ
973: (テテンテンテン MM17-Wcp/) 2021/05/15(土)10:06 ID:DyddzWuxM(1) AAS
>>954の>>953が書いてるコメントって
外部リンク:docs.microsoft.com
のヒントのことか・・・・・公式ドキュメントでお墨付きつけてるのはちょっと酷いような
VS2019標準のLintでアンダースコア始まり変数名って許容されてたっけ?
最近VSCodeでしか書いてないから分からん
974: (ワッチョイ aba7-4lYq) 2021/05/15(土)10:11 ID:I4FgZZwl0(1/2) AAS
作ってるやつがゴミカスなんだな
昔のインド人は頭が良かったということで
975: (ワッチョイ 1fb0-sort) 2021/05/15(土)13:01 ID:K7/xaqOQ0(1) AAS
複数ルール混在するのが一番面倒なので、mでもm_でも_でもいいから統一してくれればいいかなあ
そんで_に統一しませんかって事か
976(1): (アウアウエー Sa93-PbQN) 2021/05/15(土)13:35 ID:u3bkv4kna(1) AAS
クラス内で揃ってればどうでもいい
977: (エアペラ SD5b-f+4d) 2021/05/15(土)13:39 ID:X2M8i/YMD(1) AAS
>>976
これ
978: (ラクッペペ MM17-JFKK) 2021/05/15(土)13:45 ID:Q8PHpDoBM(1) AAS
すまん
979: (ワッチョイ 6d87-9scZ) 2021/05/15(土)16:04 ID:k7UiOGH90(1) AAS
ほんまそれなんやが
アホな中華は1クラス1万ステップとか作ってくるからめちゃくちゃになるんや
980(1): (ワッチョイ 3fac-v+G2) 2021/05/15(土)16:17 ID:/1WA0n4U0(1) AAS
パフォーマンスどうなんそれ
981: (ワッチョイ 895f-/DSF) 2021/05/15(土)18:21 ID:aVMlO2Jw0(1) AAS
c#のprivateメンバー変数にアンダースコア付けろだと…
これが今後のルールになるのかな?
982: (オッペケ Sr99-Adon) 2021/05/15(土)19:22 ID:En4kpP4hr(1/2) AAS
ゴミみたいなルールで泣けてくる
983: (ワッチョイ aba7-4lYq) 2021/05/15(土)19:28 ID:I4FgZZwl0(2/2) AAS
ゴミカスが普段組んでもいないのにいいと思って考えちゃったクソルール
984: (オッペケ Sr99-Adon) 2021/05/15(土)19:53 ID:En4kpP4hr(2/2) AAS
これはひどい…
外部リンク:www.sejuku.net
985(1): (ワッチョイ f1da-Wdz7) 2021/05/15(土)20:00 ID:x5z5lzlG0(1) AAS
一般的にって根拠を示しにくいけど、Microsoft公認のコーディングルールって言うとStylecopが示しているキャメルケースしかありえないんだよな
mHogeやm_Hogeは論外で今回の更新によって_Hogeが台頭したけど
986: (ワッチョイ 7363-sort) 2021/05/15(土)20:14 ID:tihXB0Cj0(1/2) AAS
hogの意味を辞書で引く
987(1): (テテンテンテン MM17-6eZC) 2021/05/15(土)21:11 ID:EZTpChRKM(1) AAS
>>985
_Hogeじゃなくて_hogeな
MS自身が書くコードでは昔から一般的に使われてるルールなんで、そんなに驚くほどのことでもない
意識高いとこだとわりと採用されてるよ
988(4): (ワッチョイ 6dda-gSvD) 2021/05/15(土)21:55 ID:P/ScDIg90(1) AAS
いま入門書で勉強中の初心者です
コードは基本的に上から下に処理されていくと理解しているのですが
本に出てくるサンプルコードは呼び出す側のあとに呼び出される側のコードが書かれていることが多くてしっくりきません
何か理由があるのでしょうか?
989: (ワッチョイ 9fda-3Xtj) 2021/05/15(土)21:57 ID:Cs9vHg9X0(1/2) AAS
ないよ
990: (ワッチョイ 03da-as9D) 2021/05/15(土)22:00 ID:18pqJB1E0(1) AAS
そんなん言うたら、呼び出すメソッドが別ファイルの別クラスにあるのはいいんか?っちゅう話だよな。
991: (ワッチョイ 3bad-z8Fo) 2021/05/15(土)22:03 ID:t/RrGLho0(1) AAS
>>987
さすがにs_を標準にしちゃうのはかなり疑問だけどね
992: (ワッチョイ ff01-vB/y) 2021/05/15(土)22:23 ID:kOi9a7N70(1) AAS
>>988
多くの場合「全体 -> 部分」の順で理解したほうが
「部分 -> 全体」の順で理解するよりも圧倒的に脳にやさしいので
コードの構造もそれに合わせることで読みやすくしてる
993: (アウアウエー Sa93-PbQN) 2021/05/15(土)22:39 ID:Tm9lZ4XLa(1) AAS
>>988
呼び出し元を上から下に進んで
呼び出し先に亜空間ワープして
呼び出し先を上から下に進んで
呼び出し先が終わったらまた亜空間ワープで呼び出し元に戻って
呼び出し元をまた上から下に進む
994: (ワッチョイ 7363-sort) 2021/05/15(土)23:03 ID:tihXB0Cj0(2/2) AAS
関数など邪道
995: (ワッチョイ 9fda-3Xtj) 2021/05/15(土)23:08 ID:Cs9vHg9X0(2/2) AAS
全てasyncとlinqで実装
996(1): (ワッチョイ f1da-Wdz7) 2021/05/16(日)01:12 ID:cPyU4P820(1) AAS
>>988
昔のC言語は呼び出す前に関数宣言しておくか関数を定義しないとエラーだったから考え方は正しいよ
単にプログラム言語としての利便性が上がっただけ
997: (アウアウウー Sa1d-gSvD) 2021/05/16(日)02:38 ID:sFLeX0L5a(1) AAS
前方参照が不可でプロトタイプ宣言が必要だったのは単に当時の技術的な制約に過ぎず
本質的な物じゃないと思うよw
メソッドのソースコード上の位置(どのファイルの何行目にあるか?)は
「技術的には」何の意味も持たない、と言うのが正しい。
一か所からしか呼ばれないメソッドがあるとき、呼ばれる側のメソッドを呼ぶ側より上の行に
書きたがる人がいるし気持ちは分からんでもないけど、そんなのあくまで好みの問題。どーでもいいよそんなの、が正解。
998: (ワッチョイ 8925-fy9k) 2021/05/16(日)05:34 ID:fcFZ09AZ0(1) AAS
最近の言語だとどこでも関数宣言できるし、かと言って関数内だと一番下で宣言した関数を上で使えるって訳でもない場合もあるからね
トップレベルの処理は言語仕様によって分けられていることを理解するのは最初は結構大変なもんだ
999: (ワッチョイ 1301-tI/9) 2021/05/16(日)09:15 ID:RjyUN9Py0(1/2) AAS
>>988
呼び出される側のあとに呼び出す側のコードが書かれていても
> コードは基本的に上から下に処理されていくと理解しているのですが
ならしっくり来なくね?
Pythonみたいに動的に関数定義したいということかな?
1000: (ワッチョイ 1301-tI/9) 2021/05/16(日)09:16 ID:RjyUN9Py0(2/2) AAS
>>996
それ逆やぞ
1001(1): 1001 ID:Thread(1/2) AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 53日 20時間 17分 52秒
1002(1): 1002 ID:Thread(2/2) AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
省7
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.224s*