C#, C♯, C#相談室 Part98 (518レス)
上下前次1-新
267: (ワッチョイ 177d-N2O4) 2024/12/21(土)21:57 ID:i5j/m89y0(1) AAS
今関わってるプロジェクトがスペース2つでインデントしててちょっと面食らってしまったんだけどこれ珍しくないもの?
今まで携わってきた中で一件も遭遇したことなかった
268(1): (ワッチョイ 6a6a-Pm71) 2024/12/21(土)22:11 ID:lUhayCnC0(1) AAS
過去に深いネストを大量生産する人がエラくなっちゃって、そういうルールになってしまったんじゃないかと妄想しちゃうなw
269: (ワッチョイ 8f5d-/DxF) 2024/12/21(土)23:25 ID:BdmznDtW0(2/2) AAS
今時スペース2個は珍しいな、C#とかではあんまりない気がする
昔々はどの言語でもタブを使っていいかとか、スペースで代用するなら2個か4個かで論争があったらしい
JSは2個が主流だった気がするけど今はどうだろ
270: (ワッチョイ a301-28Ti) 2024/12/21(土)23:39 ID:L6mtJxlH0(1) AAS
jsonは2だったり4だったりまちまちだけどね
271(1): (ワッチョイ 5f95-EHcm) 2024/12/22(日)00:09 ID:tw4BvM7X0(1/3) AAS
タブのが合理的
Goみたいな標準フォーマッタがあるのが理想だけどC#はそう言う文化はないね
272: (ワッチョイ df79-0Q8V) 2024/12/22(日)02:26 ID:/fc7feyD0(1) AAS
俺はスペース2個のが視線移動減って楽だと感じてるからかなり昔から2個派だよ
>>268みたいな日本人特有の右倣えのお仕着せルールに甘んず昔から超効率化してるやつらは世の中に沢山いるんだよ
勉強になったな
273: (ワッチョイ 2b28-MhhP) 2024/12/22(日)03:54 ID:f4R4W69d0(1) AAS
TABに統一してるけど
表示上は半角スペース2から4個で用途で変えてる
274(1): (スププ Sd03-+INx) 2024/12/22(日)05:02 ID:SvMpALOcd(1) AAS
{}は
if(){
}
の方が好き
普通は
if()
{
}
これ?
275(1): (ワッチョイ 832b-8NiF) 2024/12/22(日)05:44 ID:96LlHbpn0(1/4) AAS
逆、最初の頃は上が大多数
ブログやら初心者講座やらで下の書き方が主流担ってきてる感じ
276(1): (ワッチョイ b310-3P54) 2024/12/22(日)06:21 ID:I7bhR46i0(1/2) AAS
スペース2個インデントって言うと、XMLやHTMLを思い浮かべるな
277(1): (ワッチョイ 957c-Th9R) 2024/12/22(日)07:48 ID:dFQQq0VB0(1/4) AAS
>>275
違うぞ
上のはJavaやJavaScript界隈でのデファクト
下はMicrosoft系のC#とかのデファクト
公式が出してるコーディング規約がそうなってるだけ
278: (ワッチョイ 957c-Th9R) 2024/12/22(日)07:50 ID:dFQQq0VB0(2/4) AAS
>>276
例えばC#というかasp.net系だとrazor構文でhtmlと一緒にC#のコード埋め込む
そうするとインデントは2の方が見やすい
279(1): (ワッチョイ 957c-Th9R) 2024/12/22(日)07:53 ID:dFQQq0VB0(3/4) AAS
>>271
C#はチェーンメソッドのドットを縦に綺麗に並べる文化が有るんでタブだと都合が悪い
2でも4でも良いけどスペースがデファクト
280: (ワッチョイ 832b-8NiF) 2024/12/22(日)08:13 ID:96LlHbpn0(2/4) AAS
>>277
いやだから
C#が出る前というか出始めの頃で
Cプラプラ使い達が多かった時さ
281: (ワッチョイ 832b-8NiF) 2024/12/22(日)08:20 ID:96LlHbpn0(3/4) AAS
当時、というか関数書くときって
hoge(){
…}
て書くのが一般的やったん
んでDelphiが出てきたらこの{}をBegin…Endで囲むから
hoge()
Begin
…
End
ここらへんはVBやVBAとかにも反映されて
その後C#で出した際にって感じかな
282: (ワッチョイ 5f95-EHcm) 2024/12/22(日)09:15 ID:tw4BvM7X0(2/3) AAS
>>279
タブをインデントで使ってスペースをアライメントで使えば理論上ズレないよ
Goのフォーマッタはこれに従ってるからタブ幅は任意に設定できる
prettierみたいな途中で強制的に折り返すフォーマッタとは相性が悪いけど
283: (ワッチョイ 5f95-EHcm) 2024/12/22(日)09:22 ID:tw4BvM7X0(3/3) AAS
Indent with tabs, align with spaces
外部リンク:dmitryfrank.com
これね
これが理想だけどエンジニアのレベルが高くないとこのルールを守るのは難しいからスペースにしてるのが大半
ただしGoは強制フォーマッタでこれを解決してる
個人プロジェクトなら最初から好きなタブ幅にすればいいからタブにするメリットもあまりないし
気分でタブ幅変えれるのは結構メリットあるけどね
284: (ワッチョイ b310-3P54) 2024/12/22(日)09:27 ID:I7bhR46i0(2/2) AAS
俺はずっと>>274の前者でインデントはタブだなぁ
なおタブの幅はスペース4個分
285(1): (ワッチョイ 7b8b-vY+B) 2024/12/22(日)11:59 ID:US35TJKc0(1/3) AAS
「自転車置き場の屋根の色」現象発生中
286: (スッップ Sdaf-3P54) 2024/12/22(日)13:03 ID:ci/BAnbad(1) AAS
この手の話は職場のルールで決まるから個人がどうこうは関係ないよな
ただ自分のツールなんかは好きにしろだが
カッコ、演算子、型と変数の宣言の間の空白などもめる話題はいくらでもある
287(1): (ワッチョイ 195d-PrDn) 2024/12/22(日)16:36 ID:J7cuP3Nu0(1) AAS
>>285
「原子力発電所の建設」について議論したいなら付き合うよ、それで議題は?
288: (ワッチョイ 957c-Th9R) 2024/12/22(日)17:09 ID:dFQQq0VB0(4/4) AAS
まあreshaperでテーム共有設定使うだけだしな
289(1): (ワッチョイ 7b8b-vY+B) 2024/12/22(日)19:48 ID:US35TJKc0(2/3) AAS
>>287
では失礼して
Unity製ゲームのMOD開発なんかでリフレクション使いまくるのもなんかスマートじゃないから、
aelij氏のIgnoresAccessChecksToGeneratorを魔改造させてもらってフィールド含めて全パブリック&readonly解除でゲームのコードに全アクセス出来るようになってめっちゃ捗るようになったのだけど、
欲が出て標準ライブラリにも手を出したくなってやってみたらmscorlibなんかはReferenceAssemblyだからプライベートフィールドはそもそもdll内に含まれてないから書き換えられないんだよね。
ランタイム時の実体dllを決め打って渡せばstring.m_firstCharとかList<T>._sizeとかも全てアクセスできるようにはなるんだけど決め打ち渡しもスマートじゃないからどうにか自動で解決をしたい。
ILSpyやmono.cecilにはランタイム時の実体dllを特定するコードあるんだけどbuildアクションから同じ事するのって可能だろうか?
290: (ワッチョイ e376-ZNoy) 2024/12/22(日)19:55 ID:zKZ5mRgv0(1) AAS
はい
291: (ワッチョイ 7b8b-vY+B) 2024/12/22(日)20:10 ID:US35TJKc0(3/3) AAS
へー
なんだかもうゲームよりMOD開発、MOD開発より開発環境開発の方が長くなっちゃってますわ
292: (ワッチョイ 832b-8NiF) 2024/12/22(日)20:35 ID:96LlHbpn0(4/4) AAS
だって、ここ
別にゲーム開発やないし
プログラムやで
293(1): (ワントンキン MM33-MooF) 2024/12/22(日)20:50 ID:F7NwxYJ7M(1) AAS
いまだにmonoで簡単にいじられまくりゲームあるのか
294: (ワッチョイ 0364-PrDn) 2024/12/23(月)00:10 ID:XKMn6iMr0(1/2) AAS
>>289
日本語がややこしいけど
①標準ライブラリのPrivate含む全フィールドにリフレクションを使わずにアクセスして書き換えたりしたい
んで、
②実体DLLを決め打ちで渡せばアクセスできるってところまでできてる
あとは
③実体DLL取得を自動化したい
④なおかつビルドプロセスに組み込みたい
ってことか
MOD開発とか知らんけど面白そうじゃん
295(1): (ワッチョイ 0364-PrDn) 2024/12/23(月)00:36 ID:XKMn6iMr0(2/2) AAS
いまいち細かい要件がよくわからんけどAppDomain.CurrentDomain.GetAssemblies()で現在ロードされているすべてのアセンブリが取得できるらしいが、これ試した?
駄目だったならどういうところがダメだったのか教えてくれ
296: (ワッチョイ 7b8b-vY+B) 2024/12/23(月)17:33 ID:HWay8A+S0(1/2) AAS
>>295
要するにIgnoresAccessChecksToGeneratorの話でMSBuild内のコードとして動くものだからそれやってもMSBuildがロードしてるものが返されるだけとなる
ILSpyなんかもtypeof(object)などから解決してるので上記の理屈でそのまま移植はできない
上下前次1-新書関写板覧索設栞歴
あと 222 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.008s