ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
費用は安ければ安いほど良いに決まってますよね
速度は速ければ速いほど良いに決まってますよね
機能は多ければ多いほど良いに決まってますよね
いや、機能は少なければ少ないほど良いに決まってますよね
おっぱいは大きければ大きいほど良いに決まってますよね
こんなのは子供の考え方に決まってますよね 実際に経験せずに机上だけで理解しようとしてるからそういう発想になるんだろうね
おそらく学生さんだろうから生暖かく見守ってあげれ 自分も生あったかい目で見られてたから
とやかくいうつもりはないが
なんでできないやつにばっかりやらせるんだよ!
できるやつがやって下に教えりゃいいんじゃないの?! コメントの要否・コメントの内容について
コメントには「なぜ」を書くのが原則
処理の内容はコードを読めば解ることなので不要と考える 俺はコメント入れてほしい派
読めば判るっつってもさ、
コード書いてる本人ですら
何やってるか分かってない場合もあるからな(笑)
せめてコメントで
「ここではこんなことをしてる(つもり)」
って書いてくれら「全然そうなってないだろ!」と突っ込める ぱっと見で複雑な処理の概要をコメントに書いてるわ
他人や将来の自分がなるべく素早くコードを読めるため、ってつもり 細かいところを省略してエッセンスだけ書くのは勝手だけど、実際に運用していくときに出てきそうな問題点の指摘を無視するのは違うでしょ
むしろID:/WM42vypMの言う本質ってなんだったんだろうな。最初は書くのが楽になるしか言ってないような気がしたが
最終的にはテストが楽に書きたいに変わってたし
そも書き手1人が楽になるより全体の可読性や保守性が重要だろうし、関数のシグネチャだけじゃ表現しきれないケースがあるだろうって指摘だったろうに 問題が散逸してるように思える。
インターフェイスではなくて、関数を渡すといっても、そのシグニチャは結局どこかで定義することになるし。
これが勘違いなのかな。delegate宣言せずにいきなりAction<string> callbackみたいに受けるんだろうか。
これはこれでめちゃくちゃ密結合な気がするんだが。
単独アセンブリとか、単独ソリューションだから成立するような気がする。
モックフレームワークは確かに難解だけど、まずモックオブジェクト自作して困ってからでいいと思うし、そもそも必要になるのは、それこそラムダで部分的に処理を突っ込むのと同じの、依存性の注入を行うからだと思う。
特別扱いしてるインターフェイスはフェアではないと言うが、インターフェイスだから特別扱いできるんだろうし。
拡張メソッド生やすのも簡単だし、Linqなんか器用にやってると思うんだけどな。 横からごめん。
>>86
>delegate宣言せずにいきなりAction<string> callbackみたいに受けるんだろうか。
delegate と Action / Func って実質的な違いってあるんだっけ。
delegate を使用しないから密結合になるってのが理解できなかった。 >>87
実質的な違いは無いよ。
ただ、Interfaceで定義するなり、delegateを用意しておくなりしないと、
呼ぶ側、呼ばれる側(≒コールバックを返す側)どちらも、今から使う関数の引数を直接的に知っている事が前提になるんじゃない?
ホントにそれ差し替え可能なのかな。 >>88
ありがとう。
自分的には Action / Func でも delegate と同じに思えるけど、そう言う価値観もあるのだと理解した。 > 呼ぶ側、呼ばれる側(≒コールバックを返す側)どちらも、今から使う関数の引数を直接的に知っている事が前提になるんじゃない?
その辺は別モジュールなりトップレベル関数なりに宣言すれば良いって言ってた
そこまでするならインターフェース継承したクラス宣言するのと殆ど変わらないと思うんだけどな
それこそ↓で書かれてるような、フィールドに外部から渡されたインターフェース(private IY y)を持つかどうかの1,2行の違いしか無いと感じた
https://mevius.5ch.net/test/read.cgi/tech/1616471904/651
そんで、ここに保持するインターフェースは冗長なのではなくて、
このクラスはこのインターフェースを使用して処理を行うという宣言みたいなものだと思ってる
classXのfooメソッドからしたら呼びだし元を確認することなく最低限の挙動が保障されるし
>>90
表現の違いじゃない?
delegate=ActionとFuncの総称だと思ってるので、自分はこう読んだよ
「どこか別の場所でAction宣言せずに、いきなり匿名関数なりで定義したものをAction<string> callbackみたいに受けるんだろうか。」 >>91
別モジュールを前提に考えてたなぁ。
インターフェイスを継承したクラス宣言も、必要なシーンでは必要だと思ってるんよ。
関数を渡すとしても、Func<T,TResult>のTResultは、インターフェイスになりがちで、それを無理に解決する必要は無いと思うんよね。
Loggerとか、データベースへのコネクションなり。 属性をデコレータというかAOPを主目的としてる人、初めて知ったんだけど、偏ってない? >>93
シリアライゼーション、属性バリデーションはAOPの一種だと考えてるので違和感はないかな >>94
AOPの一種か。微妙に納得いかんな。
シリアライズするときに入れる共通処理のための属性という事だろうか。 横から失礼
virtual func と delegateの違いは状態を持つかどうかじゃないの >>95
シリアライゼーションという横断的な関心ごとをシリアライザという単体の機能に分離して管理する
これはまさしくAOPの特徴 privateフィールドにはプレフィックスを、の件、
キャメルケースだのスネークケースだの言ってる奴ばかりで、
this.について触れてる奴一人だけなの草 デフォルトでthis.が削除対象になるから使ってねーわ c#で心掛けるのは、処理速度より開発速度とか省ステップでいいのかな。
どうしてもStringBuilder使うの面倒だから文字列を足し算してしまう。 C#はバランスタイプだよ
開発速度などで言ったらTypeScriptとか他の言語には勝てない >>101
他の言語と同じで、普通は開発速度とか重視でいい
で、速度が必要な部分のみ速度重視 Typescriptって開発速度で優位なんだ
逆にtsの弱点ってなんなんだろ >>102-103
どうもです。あんまり気にせず組みやすさ重視で良さそうですね。
無駄はダメだろうけど、それもこだわると霧がなさそう V-VM-UseCase-ServiceのよくあるCleanアーキでWPFデスクトップアプリ組んでるんだけど凄くツラミを感じる
VMとUseCaseの接続をReactivePropertyでやるとどうしてもカオスになってしまう
みんなどうやって対処してるんだろ C#10の機能試そうとVS2022で新しいプロジェクト作ろうとしたけど、テンプレートすごい選びにくいな。
.net framework やら .net core やら .net の事情知ってるから選べるけど、部外者お断り感がすごい。
全部の一覧が並んでるんじゃなくて、ウィザード形式なりもう少しなんとかならんのかと思う。 2019 ですでにそんな感じだったような。悪化したのか。 C#で一般企業の人事システムや財務システムを構築するのはどうだろうと思う
基本的にC#の仕様は金額計算は不得手だと思われる C/C++で一般企業の人事システムや財務システムを構築するのはどうだろうと思う
基本的にC/C++の仕様は金額計算は不得手だと思われる C♯は実際に金融計算のシステムに使われているのかこれ >>117
ユニシス系の銀行システムでC#使われてる 銀行システムで使われているなら安定性や信頼性は最強じゃないの 銀行システムという括りが微妙すぎる
まぁJavaで勘定系作ってるところもあるからC#でも何の問題もないわな
必要なら自分達で型を作ればいいだけだから >>123
doubleに比べて無茶苦茶遅い
decimalは10進数という意味だけどその名の通り多倍長で演算してるから > 具体的にどれくらい?
↓
> 無茶苦茶遅い
アホの会話やめ そもそも何をするかによって速さが違うから正確な表現など出てくるはずもなかろう
曖昧な質問で出てくると思った?w
アホなのかな?w > パッケージ 'Microsoft.WindowsAPICodePack-Shell 1.1.0' はプロジェクトのターゲット フレームワーク 'net6.0-windows10.0.22000' ではなく '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' を使用して復元されました。このパッケージは、使用しているプロジェクトとの完全な互換性がない可能性があります。
こういうエラーが出るんだけどどうしたらいいんだろう?
.NET SDK 6.0.419 は入れた
OSはWindows10 Pro 22H2