- 1 名前:デフォルトの名無しさん mailto:sage [2024/06/29(土) 19:18:41.95 ID:NohAfdfx0.net]
- !extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512 !extend:checked:vvvvv:1000:512 ■Visual Studio 2022 Community(無償の統合開発環境)等はこちら www.visualstudio.com/downloads/ ■コードを貼る場合はこちら 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
- 192 名前:デフォルトの名無しさん mailto:sage [2024/12/11(水) 08:36:42.20 ID:tumrZkmz0.net]
- 盲目的にvar使うなとは思うけど、一切使うなはないなぁ
- 193 名前:デフォルトの名無しさん mailto:sage [2024/12/11(水) 08:50:12.41 ID:AAqkzyDB0.net]
- まあマイクロソフトのサンプルにも使ってる例あるしな
- 194 名前:デフォルトの名無しさん (ラクッペペ MM8f-n9Eh) mailto:sage [2024/12/11(水) 10:05:12.70 ID:BwkZDwjMM.net]
- jsのvarと違ってただの便利機能だしな
- 195 名前:デフォルトの名無しさん (ワッチョイ 476d-Ahcx) [2024/12/11(水) 12:36:15.23 ID:uq+uLBFl0.net]
- varで参照型を扱うとnullableになるのはどうにかしてほしい
- 196 名前:デフォルトの名無しさん (ワッチョイ 87ae-pQ4B) mailto:sage [2024/12/11(水) 13:56:36.44 ID:pPQiPOka0.net]
- 推論型なんだし、必要に応じて使えばいいんじゃね?
objectならともかく
- 197 名前:デフォルトの名無しさん (ワッチョイ df6c-Fa9A) mailto:sage [2024/12/11(水) 14:39:24.72 ID:1I783KxU0.net]
- varが絶対必要なのって匿名型使うときだけだから、必要に応じて使う、だとvarはほとんど用無しになっちゃう
戦争に参加するつもりはないが仮にvar使うんなら必要に応じてじゃなく基本varにしないと
- 198 名前:デフォルトの名無しさん mailto:sage [2024/12/11(水) 14:54:27.03 ID:9MAiYNgK0.net]
- c#は基本varでいいよね
多分大体のc#er?はvarじゃないときにだけ理由を気にするんじゃないかな
- 199 名前:デフォルトの名無しさん mailto:sage [2024/12/11(水) 18:36:49.06 ID:SiVbJLlPM.net]
- 初期に頭のいい人は一番先に varに飛び移った
その後みんな気が付いて移行した 今でも使わないのはご老人
- 200 名前:デフォルトの名無しさん (ワッチョイ 475a-NyP9) mailto:sage [2024/12/11(水) 19:15:48.68 ID:Rq12mde/0.net]
- varばかりやわ
- 201 名前:デフォルトの名無しさん [2024/12/11(水) 20:38:24.59 ID:pwnGkEKD0.net]
- VBのVariant最強
- 202 名前:デフォルトの名無しさん mailto:sage [2024/12/11(水) 20:41:39.44 ID:SiVbJLlPM.net]
- それはないかなw
- 203 名前:デフォルトの名無しさん [2024/12/11(水) 23:21:13.31 ID:uq+uLBFl0.net]
- インターフェース分離の原則が分からない
「必要のない振る舞いを実装しない」のは適切だと思うんだけど、ポリモーフィズムとの組み合わせが悪いように思う interface IBird { string Name { get; } } interface IFlyable { void Fly(); } // ペンギンは飛べないので IFlyableを実装しない class Pengin : IBird { ... } class Eagle : IBird, IFlyable { ... } のようにした場合に、プログラムが List<IBird> birds のような形でデータを持つと、「飛べる鳥がいる」という情報が型から消える foreach (IBird bird in birds) { Console.write(bird.Name); if (bird is IFlyable flyable) { flyable.Fly(); } } 「飛べる鳥なら飛ばす」ようにしたい場合、インターフェースを分離する場合だと上記のように is でキャストするしか無さそう? IBirdで扱っているのに「インスタンスは IFlyable である可能性がある」という情報に依存してるのに少し違和感があって、より綺麗な解決策があれば知りたい
- 204 名前:デフォルトの名無しさん (ワッチョイ e701-5/pq) mailto:sage [2024/12/12(木) 00:16:45.29 ID:7oNgfo0K0.net]
- c#スレですよ
- 205 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 08:54:59.88 ID:ZQ0BgCqv0.net]
- そこを別々のインターフェースとして分離するのが間違ってるだでは
飛べる飛べないも”鳥”の一要素でしょ
- 206 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 08:59:12.98 ID:cbjQHW3y0.net]
- プロパティで持てば解決
- 207 名前:デフォルトの名無しさん (ワッチョイ 476d-Ahcx) [2024/12/12(木) 09:20:56.04 ID:m/Fq7DtI0.net]
- >>206
Nullableな IFrayable? をプロパティとして持たせて、飛ぶ鳥の場合はthisを返すようにするということ?
- 208 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 09:43:51.10 ID:ZQ0BgCqv0.net]
- そこだけのインターフェース化に拘るなって言ってんだよ
- 209 名前:デフォルトの名無しさん [2024/12/12(木) 10:34:43.14 ID:m/Fq7DtI0.net]
- 鳥とペンギンだと近すぎて例えとして微妙だった
例えば「動物のリスト」のようなデータを持ち、動物には鳥のように飛べるクラス (Flyメソッドを持つ) と、トラやライオンのように走るクラス (Runメソッドを持つ) があるといった場合 動物の一覧を持つには List<IAnimal> のような型を使うと思うけど、これは合ってるよね? その上で動物によって違うアクションを行わせたいとする IAnimal側に CanFly のようなメソッドを追加していくと、例えばサルのように「道具を使う動物」が後から追加された場合、IAnimalにメソッド追加が必要になり、それはBirdなどの各クラスにも影響する Birdクラスは「道具を使う」なんてことは知らないのに、インターフェースのために CanUseTool のようなメソッドを後から追加するのは違う気がする そうするとやっぱインターフェース分離の形になりそうで、そうなると利用側で is でキャストするのが落としどころなのかと
- 210 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 13:06:06.44 ID:ZQ0BgCqv0.net]
- 鳥以外にも飛ぶ(正確には滑空だが滞空することに変わりはない)動物は居るし
鳥だって地面をRunするヤツは居る 鳥にも、猿程でなくてもその辺に落ちてる物を道具的に使うヤツも居る お前の例題がそもそもめちゃくちゃなんだよ
- 211 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 13:06:59.82 ID:ZQ0BgCqv0.net]
- あといい加減余所でやれ
C#直接関係ない
- 212 名前:デフォルトの名無しさん [2024/12/12(木) 17:51:32.06 ID:pRQ+cocj0.net]
- ここの住人はC#を使っていてSOLID原則に悩まされたことなど無いのだろうか
- 213 名前:デフォルトの名無しさん [2024/12/12(木) 18:08:37.64 ID:A8Z2cdQL6.net]
- >>203
ある動物が飛べることと、鳥であることは独立なんだから、 「飛べる鳥がいる」という情報はなくても仕方なくない? 統計的な相関関係はあるかもしれないが、包含関係でないなら仕方ない。 飛べる他の動物を無視するのなら、IBirdを継承したインタフェースでIFlyableBirdを作ればいいのでは?
- 214 名前:デフォルトの名無しさん [2024/12/12(木) 18:40:52.28 ID:m/Fq7DtI0.net]
- ISP自体はC#でよく出てくる問題じゃないの?
これなんかまさにそう https://dev.to/fabriziobagala/interface-segregation-principle-452m だけどこういった解説はISP単体の説明になっていて、泳ぐ、走るといった能力の異なるものを Animal として抽象化する方法を教えてくれない 綺麗な方法でなくても「C#ではこうすることが多い」のようなプラクティスがあれば知りたかったんだけど、そういうのは無さそうなんですかね
- 215 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 19:18:32.74 ID:j5Bpxje00.net]
- 実装を伴わない抽象化の話ってなんの身にもならないからやめなさい
それとインターネットサービスプロバイダの話は他所でやってくれ
- 216 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 19:18:50.89 ID:F/GYmEjD0.net]
- 求めてそうなプラクティスは見た事ないなぁ
個人的には、飛ぶにしても走るにしても動物という存在の態様のひとつだから 動物IFのプロパティに含めるでいいんじゃないかと思うけどね
- 217 名前:デフォルトの名無しさん [2024/12/12(木) 19:36:28.62 ID:uARXvv9l0.net]
- var unko = new Unko()
より Unko unko = new() の方が良くね?
- 218 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 19:46:48.91 ID:j5Bpxje00.net]
- もっと地球規模の視野で考えろよ
うんこも地球の一部だろ?つまりうんこは地球とも言える わかるか?
- 219 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 19:55:04.36 ID:F/GYmEjD0.net]
- >>217
まぁ、後者ができるようになったの後になってからだから
- 220 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 22:38:48.07 ID:VQmaeBIU0.net]
- >>214
それISP単体の説明にもなってない class Penguin : IAnimalにNotImplementedExceptionでFly()を実装すれば即ISP違反だというのは間違い まずは原典にあたってISPを理解してきたほうがいい 謳われてる原則をどう活用するかはその後
- 221 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 22:49:28.08 ID:cbjQHW3y0.net]
- そもそも
そんな鳥のプログラムなんか一般的じゃねーし
- 222 名前:デフォルトの名無しさん [2024/12/12(木) 22:59:54.30 ID:m/Fq7DtI0.net]
- >>220
「クライアントが『泳ぐ、飛ぶ、もしくは走る動物』として使うことを想定するのなら、そのインターフェースであるIAnimalにその情報を含めるのは適切」ということですかね class Penguin としては Fly や Run などのメソッドの実装はノイズに思えるけど、IAnimalとして使われるなら、その契約に従えという感じかな (それだと後から「道具を使う」がIAnimalに追加された際に Penguine もメソッド追加が必要で、そこがモヤモヤしてる) こういう場合にアダプタ (ラッパー?) を使うのって適切? 純粋に Penguine としての機能を提供するクラスと、それを IAnimal として使うためのアダプタみたいなの それだと更に複雑さを増すだけ? OOP難しい……
- 223 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 23:02:07.06 ID:cbjQHW3y0.net]
- 適切とか
とりあえず作ればよくね? 適切かどうかなんてエグゼにしたら関係なくね? それとも論点だけ考えて実際のプログラム作らないの? それ何したいの
- 224 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 23:31:52.39 ID:RbZTiiBk0.net]
- 例が不適切だから混乱してるだけにしか見えないなぁ
- 225 名前:デフォルトの名無しさん (ワッチョイ ff70-Ahcx) [2024/12/12(木) 23:50:28.74 ID:cAk5An+50.net]
- SOLIDが現実のコードで使われなかったり、「オブジェクト指向は問題を複雑にするだけ」みたいなことを言われる原因
- 226 名前:デフォルトの名無しさん (ワッチョイ 6714-oAsD) mailto:sage [2024/12/13(金) 01:16:53.76 ID:sFncMVeV0.net]
- >>203
インターフェース分離の原則は「クラスが必要としないメソッドを実装しない」ってだけ ペンギンのような飛べない鳥が IFlyable を実装しないのは正しい あとは「飛べる鳥」をインターフェースで分かるようにしてやればいい isを使う羽目になったのは飛べるかどうかわからない IBirdをListにしてるから --- interface IBird { string Name { get; } } interface IFlyable : IBird { void Fly(); } // ペンギンは飛べない class Penguin : IBird { public string Name => "Penguin"; } // ワシは飛べる class Eagle : IFlyable { public string Name => "Eagle"; public void Fly() => Console.WriteLine($"{Name} is flying!"); } // 飛べる鳥だけを扱うリストを作る List<IFlyable> flyableBirds = new List<IFlyable> { new Eagle() }; foreach (var bird in flyableBirds) { bird.Fly(); // 明示的に飛べる鳥しか扱わない }
- 227 名前:デフォルトの名無しさん (ワッチョイ e701-5/pq) mailto:sage [2024/12/13(金) 01:54:21.75 ID:aJRVKPMX0.net]
- こいつら病気なんか
- 228 名前:デフォルトの名無しさん (ワッチョイ df2b-2fXw) mailto:sage [2024/12/13(金) 01:55:37.37 ID:0Vp4NoOf0.net]
- だね
- 229 名前:デフォルトの名無しさん mailto:sage [2024/12/13(金) 06:18:42.75 ID:ooVm180t0.net]
- SOLIDにしても所詮理想論であって現場に即してるわけじゃないしなぁ
- 230 名前:デフォルトの名無しさん mailto:sage [2024/12/13(金) 07:39:08.04 ID:WeveN3pQM.net]
- せやな
- 231 名前:デフォルトの名無しさん [2024/12/13(金) 17:30:15.58 ID:LAtQrsJV0.net]
- サイコパスの脳の違いを発見。一般の人に比べ線条体が大きいことが判明
karapaia.com/archives/52313287.html
- 232 名前:デフォルトの名無しさん (スププ Sdff-AHQg) mailto:sage [2024/12/13(金) 20:28:57.37 ID:DLDRNjlrd.net]
- 関数型がいいんだね!
- 233 名前:デフォルトの名無しさん mailto:sage [2024/12/14(土) 09:23:37.03 ID:9hmM95L70.net]
- 後から増えた「道具を使う」には何かいい感じにデフォルト実装つけとけば既存のクラスには影響しないんじゃない
- 234 名前:デフォルトの名無しさん mailto:sage [2024/12/14(土) 12:26:32.43 ID:vNNE6Utb0.net]
- それを派生というのでは?
- 235 名前:デフォルトの名無しさん [2024/12/14(土) 12:52:03.62 ID:/3oGIJ400.net]
- C# 8 からはインターフェースのデフォルト実装が使える
- 236 名前:デフォルトの名無しさん mailto:sage [2024/12/14(土) 14:27:07.29 ID:TQJHLK8K0.net]
- Win10や11のOS付属のpowershell5.1でインラインで書けるC#ってバージョンちょっと古くね
できれば新しいRoslynのC#をpowershellから使いたいのだが なんか昔の記事しか見つからん
- 237 名前:デフォルトの名無しさん mailto:sage [2024/12/14(土) 15:05:36.28 ID:uE892PPx0.net]
- どうせ別に入れる必要があるならPowerShell 7入れれば良くね
- 238 名前:デフォルトの名無しさん [2024/12/14(土) 16:09:38.02 ID:SXm2TFHi0.net]
- >>236
起動時に出て来るメッセージすら読めないのか
- 239 名前:デフォルトの名無しさん mailto:sage [2024/12/15(日) 03:52:31.32 ID:c6iml+qS0.net]
- >>238
お前はこれでも読んどけ https://learn.microsoft.com/ja-jp/powershell/scripting/whats-new/differences-from-windows-powershell?view=powershell-7.4 Roslyn単体で使うだけならビルドツール拾ってくるだけだが Powershell上げるとなると仕様も大幅に変わってたりして無理だし俺が出した要件の解にもなってない
- 240 名前:デフォルトの名無しさん [2024/12/15(日) 04:43:36.26 ID:OuaeEhke0.net]
- >>239
馬鹿が必死に調べただけの浅い知識で言い訳してる
- 241 名前:デフォルトの名無しさん mailto:sage [2024/12/15(日) 09:22:53.93 ID:6s9C3wLNM.net]
- 今のところ互換性の為に残してあるんだろう
それを変えちゃうと問題が起こる可能性があるしMS側のメンテがめんどうなので 変えたい人は7とセットで入れろということなんだろう
- 242 名前:デフォルトの名無しさん mailto:sage [2024/12/15(日) 13:32:12.27 ID:1H80RXIX0.net]
- >>239
バカの相手はしなくていいわ その情報はありがたいが
- 243 名前:デフォルトの名無しさん mailto:sage [2024/12/16(月) 00:02:44.03 ID:jraeIOUM0.net]
- PowerShellは完全に袋小路だからもう諦めた方がいい
6以降は事実上Azure専用
- 244 名前:デフォルトの名無しさん (ワッチョイ db8e-Dyog) [2024/12/16(月) 03:32:32.19 ID:B9vFRMjT0.net]
- >>242
うわっ 自分の言い訳コメントに自作自演で恥ずかしい馬鹿発見
- 245 名前:デフォルトの名無しさん [2024/12/16(月) 04:36:14.08 ID:M2IkaScH0.net]
- なんで作っては捨ててくスタイルなんかなMicrosoftは
- 246 名前:デフォルトの名無しさん mailto:sage [2024/12/16(月) 06:57:26.47 ID:xj9X4IbW0.net]
- 作ってないやろ
買収してるだけ
- 247 名前:デフォルトの名無しさん mailto:sage [2024/12/16(月) 08:17:45.85 ID:d6I1DTY60.net]
- PSはMSが作ってるが
- 248 名前:デフォルトの名無しさん mailto:sage [2024/12/16(月) 09:42:40.38 ID:WomMb93i0.net]
- Windowsに標準搭載されてる.NET Frameworkと今の.NETの時点で互換性ないのに
なんで.NETアプリであるPowerShellが叩かれるのか
- 249 名前:デフォルトの名無しさん mailto:sage [2024/12/16(月) 12:31:10.08 ID:zYOmJNRT0.net]
- 標準搭載されてるPowerShellは.NETアプリじゃなくて.NET Frameworkアプリだからね
- 250 名前:デフォルトの名無しさん (ワッチョイ 2344-/DxF) mailto:sage [2024/12/16(月) 13:18:44.44 ID:ZxGHnTET0.net]
- >>245
MSの社内政治に敗れたチームのプロダクトはそうなりがち 社内政治うまくやってると微妙なやつも長生きする
- 251 名前:デフォルトの名無しさん (スププ Sd8a-omYb) mailto:sage [2024/12/16(月) 13:27:42.05 ID:HTBCdLEid.net]
- frameworkってなんでまだ存在するの?
- 252 名前:デフォルトの名無しさん mailto:sage [2024/12/16(月) 15:54:22.92 ID:d6I1DTY60.net]
- .NETがFrameworkと互換性無くて捨てられないから
- 253 名前:デフォルトの名無しさん mailto:sage [2024/12/16(月) 19:05:15.35 ID:HTBCdLEid.net]
- 互換性ないってことは、.NETとframeworkの2つのアプリを動かしたら、GCもそれぞれで動き始めるの?
- 254 名前:デフォルトの名無しさん mailto:sage [2024/12/16(月) 21:44:01.92 ID:dTKITl7UM.net]
- >>253
GCはアプリ(プロセス)毎じゃないの
- 255 名前:デフォルトの名無しさん mailto:sage [2024/12/19(木) 20:41:55.41 ID:KU+lpcLj0.net]
- PowerShellはWindowsにシステムワイドにインストールされた .NET Framework が存在するという前提で成立していたのに、
.NETでは.NET自体をアプリにバンドルするか、必要に応じて特定のバージョンを追加で入れるかになって完全に破綻しちゃったんだよね 一般的な.NETアプリならバンドルは可搬性が向上するから好ましいことだけど、 PowerShellの場合はシステムワイドにインストールされたいろんなモジュールと連携しなきゃいけないから.NETバンドルはありえない 完全に詰んでる
- 256 名前:デフォルトの名無しさん mailto:sage [2024/12/20(金) 08:54:32.70 ID:6dsqio680.net]
- だからPowerShell Coreは標準装備じゃなくて追加装備
- 257 名前:デフォルトの名無しさん mailto:sage [2024/12/20(金) 10:14:37.03 ID:PANCPXf30.net]
- Windowsにそもそも入ってないなら追加インストールでいいんだけどね。問題は5が入っていること。
それによって「なぜ元々入っているのにわざわざ追加するのか」という当然の疑問を解消するコストが生じる。 開発者の好みだけでサポート期間も互換性も劣るゲテモノをゴリ押しするのは極めて困難だし、 そもそもPS書いて飯食ってるタイプのエンジニアでは最新に拘る人はそもそも少ないだろうね
- 258 名前:デフォルトの名無しさん mailto:sage [2024/12/20(金) 13:01:10.12 ID:9RxE8mFw0.net]
- はいそろそろC#の話題でよろ
- 259 名前:デフォルトの名無しさん [2024/12/20(金) 15:29:33.49 ID:raronLtC0.net]
- JAIST、「並行量子通信プロトコル」の完全な自動形式検証を実現
news.mynavi.jp/techplus/article/20241220-3090485/
- 260 名前:デフォルトの名無しさん mailto:sage [2024/12/20(金) 17:50:29.82 ID:0SGDMmeR0.net]
- >>258
なんかある?
- 261 名前:デフォルトの名無しさん (ワッチョイ 6a79-qWVo) mailto:sage [2024/12/20(金) 20:02:54.65 ID:7538eGNC0.net]
- またペンギンやら飛べない鳥だとかの話がしたいのかい?
それともPowshellの付属物の話がしたいのかい? どっちなんだい?
- 262 名前:デフォルトの名無しさん [2024/12/21(土) 10:56:38.14 ID:bIHzWCsda.net]
- >>257
>それによって「なぜ元々入っているのにわざわざ追加するのか」という当然の疑問を解消するコストが生じる。 >開発者の好みだけでサポート期間も互換性も劣るゲテモノをゴリ押しするのは極めて困難だし、 ほんそれ 5が全部入りにしておくのが正解だっただろうな
- 263 名前:デフォルトの名無しさん mailto:sage [2024/12/21(土) 11:18:40.67 ID:gj7hxYFQM.net]
- PS for sysetmみたいなのを最小セットで入れておけば良かった
- 264 名前:デフォルトの名無しさん mailto:sage [2024/12/21(土) 11:42:21.51 ID:4NNdAFL10.net]
- 終わらないPS談義
- 265 名前:デフォルトの名無しさん mailto:sage [2024/12/21(土) 17:53:08.76 ID:BdmznDtW0.net]
- >>264
お前がC#の話題振ってくれりゃ乗るよ 早くしろよ
- 266 名前:デフォルトの名無しさん (ワッチョイ be10-Xxs2) mailto:sage [2024/12/21(土) 18:15:03.35 ID:4NNdAFL10.net]
- いや知らんがw
俺がC#の話題にしろ言うたわけじゃないしw
- 267 名前:デフォルトの名無しさん mailto:sage [2024/12/21(土) 21:57:55.88 ID:i5j/m89y0.net]
- 今関わってるプロジェクトがスペース2つでインデントしててちょっと面食らってしまったんだけどこれ珍しくないもの?
今まで携わってきた中で一件も遭遇したことなかった
- 268 名前:デフォルトの名無しさん mailto:sage [2024/12/21(土) 22:11:41.26 ID:lUhayCnC0.net]
- 過去に深いネストを大量生産する人がエラくなっちゃって、そういうルールになってしまったんじゃないかと妄想しちゃうなw
- 269 名前:デフォルトの名無しさん mailto:sage [2024/12/21(土) 23:25:41.77 ID:BdmznDtW0.net]
- 今時スペース2個は珍しいな、C#とかではあんまりない気がする
昔々はどの言語でもタブを使っていいかとか、スペースで代用するなら2個か4個かで論争があったらしい JSは2個が主流だった気がするけど今はどうだろ
- 270 名前:デフォルトの名無しさん mailto:sage [2024/12/21(土) 23:39:03.76 ID:L6mtJxlH0.net]
- jsonは2だったり4だったりまちまちだけどね
- 271 名前:デフォルトの名無しさん [2024/12/22(日) 00:09:01.63 ID:tw4BvM7X0.net]
- タブのが合理的
Goみたいな標準フォーマッタがあるのが理想だけどC#はそう言う文化はないね
- 272 名前:デフォルトの名無しさん (ワッチョイ df79-0Q8V) mailto:sage [2024/12/22(日) 02:26:26.71 ID:/fc7feyD0.net]
- 俺はスペース2個のが視線移動減って楽だと感じてるからかなり昔から2個派だよ
>>268みたいな日本人特有の右倣えのお仕着せルールに甘んず昔から超効率化してるやつらは世の中に沢山いるんだよ 勉強になったな
- 273 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 03:54:49.07 ID:f4R4W69d0.net]
- TABに統一してるけど
表示上は半角スペース2から4個で用途で変えてる
- 274 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 05:02:43.67 ID:SvMpALOcd.net]
- {}は
if(){ } の方が好き 普通は if() { } これ?
- 275 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 05:44:22.67 ID:96LlHbpn0.net]
- 逆、最初の頃は上が大多数
ブログやら初心者講座やらで下の書き方が主流担ってきてる感じ
- 276 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 06:21:31.74 ID:I7bhR46i0.net]
- スペース2個インデントって言うと、XMLやHTMLを思い浮かべるな
- 277 名前:デフォルトの名無しさん [2024/12/22(日) 07:48:19.66 ID:dFQQq0VB0.net]
- >>275
違うぞ 上のはJavaやJavaScript界隈でのデファクト 下はMicrosoft系のC#とかのデファクト 公式が出してるコーディング規約がそうなってるだけ
- 278 名前:デフォルトの名無しさん [2024/12/22(日) 07:50:46.11 ID:dFQQq0VB0.net]
- >>276
例えばC#というかasp.net系だとrazor構文でhtmlと一緒にC#のコード埋め込む そうするとインデントは2の方が見やすい
- 279 名前:デフォルトの名無しさん [2024/12/22(日) 07:53:26.28 ID:dFQQq0VB0.net]
- >>271
C#はチェーンメソッドのドットを縦に綺麗に並べる文化が有るんでタブだと都合が悪い 2でも4でも良いけどスペースがデファクト
- 280 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 08:13:40.94 ID:96LlHbpn0.net]
- >>277
いやだから C#が出る前というか出始めの頃で Cプラプラ使い達が多かった時さ
- 281 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 08:20:56.74 ID:96LlHbpn0.net]
- 当時、というか関数書くときって
hoge(){ …} て書くのが一般的やったん んでDelphiが出てきたらこの{}をBegin…Endで囲むから hoge() Begin … End ここらへんはVBやVBAとかにも反映されて その後C#で出した際にって感じかな
- 282 名前:デフォルトの名無しさん (ワッチョイ 5f95-EHcm) [2024/12/22(日) 09:15:42.08 ID:tw4BvM7X0.net]
- >>279
タブをインデントで使ってスペースをアライメントで使えば理論上ズレないよ Goのフォーマッタはこれに従ってるからタブ幅は任意に設定できる prettierみたいな途中で強制的に折り返すフォーマッタとは相性が悪いけど
- 283 名前:デフォルトの名無しさん (ワッチョイ 5f95-EHcm) [2024/12/22(日) 09:22:40.24 ID:tw4BvM7X0.net]
- Indent with tabs, align with spaces
https://dmitryfrank.com/articles/indent_with_tabs_align_with_spaces これね これが理想だけどエンジニアのレベルが高くないとこのルールを守るのは難しいからスペースにしてるのが大半 ただしGoは強制フォーマッタでこれを解決してる 個人プロジェクトなら最初から好きなタブ幅にすればいいからタブにするメリットもあまりないし 気分でタブ幅変えれるのは結構メリットあるけどね
- 284 名前:デフォルトの名無しさん (ワッチョイ b310-3P54) mailto:sage [2024/12/22(日) 09:27:48.67 ID:I7bhR46i0.net]
- 俺はずっと>>274の前者でインデントはタブだなぁ
なおタブの幅はスペース4個分
- 285 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 11:59:15.10 ID:US35TJKc0.net]
- 「自転車置き場の屋根の色」現象発生中
- 286 名前:デフォルトの名無しさん (スッップ Sdaf-3P54) mailto:sage [2024/12/22(日) 13:03:56.05 ID:ci/BAnbad.net]
- この手の話は職場のルールで決まるから個人がどうこうは関係ないよな
ただ自分のツールなんかは好きにしろだが カッコ、演算子、型と変数の宣言の間の空白などもめる話題はいくらでもある
- 287 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 16:36:51.22 ID:J7cuP3Nu0.net]
- >>285
「原子力発電所の建設」について議論したいなら付き合うよ、それで議題は?
- 288 名前:デフォルトの名無しさん [2024/12/22(日) 17:09:33.96 ID:dFQQq0VB0.net]
- まあreshaperでテーム共有設定使うだけだしな
- 289 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 19:48:07.14 ID:US35TJKc0.net]
- >>287
では失礼して Unity製ゲームのMOD開発なんかでリフレクション使いまくるのもなんかスマートじゃないから、 aelij氏のIgnoresAccessChecksToGeneratorを魔改造させてもらってフィールド含めて全パブリック&readonly解除でゲームのコードに全アクセス出来るようになってめっちゃ捗るようになったのだけど、 欲が出て標準ライブラリにも手を出したくなってやってみたらmscorlibなんかはReferenceAssemblyだからプライベートフィールドはそもそもdll内に含まれてないから書き換えられないんだよね。 ランタイム時の実体dllを決め打って渡せばstring.m_firstCharとかList<T>._sizeとかも全てアクセスできるようにはなるんだけど決め打ち渡しもスマートじゃないからどうにか自動で解決をしたい。 ILSpyやmono.cecilにはランタイム時の実体dllを特定するコードあるんだけどbuildアクションから同じ事するのって可能だろうか?
- 290 名前:デフォルトの名無しさん (ワッチョイ e376-ZNoy) mailto:sage [2024/12/22(日) 19:55:36.15 ID:zKZ5mRgv0.net]
- はい
- 291 名前:デフォルトの名無しさん (ワッチョイ 7b8b-vY+B) mailto:sage [2024/12/22(日) 20:10:00.61 ID:US35TJKc0.net]
- へー
なんだかもうゲームよりMOD開発、MOD開発より開発環境開発の方が長くなっちゃってますわ
- 292 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 20:35:36.44 ID:96LlHbpn0.net]
- だって、ここ
別にゲーム開発やないし プログラムやで
|

|