X



ふらっと C#,C♯,C#(初心者用) Part145

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 1e7b-qjLW)
垢版 |
2019/10/07(月) 20:16:17.93ID:9eyAES450
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part144
https://mevius.5ch.net/test/read.cgi/tech/1563258983/
■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
http://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/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・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
0726デフォルトの名無しさん (ワッチョイ 02b9-Ks/Y)
垢版 |
2019/11/16(土) 02:40:12.76ID:m6RZqer/0
>>720
>>724の75:20というのは間違いで、正しくは75:25でした。失礼しました。

ところで、ランダムに50:50ではなくプラスとマイナスを交互にしたら
もっと遅くなるかと思いきや、むしろ75:25よりも少し早いくらいになりました。
(ランダムの場合も交互の場合もあらかじめ入力データを配列に格納してから
 計測を開始しているので、入力データの作成コストは結果に影響していないはずです)

どんな仕組みで先読みをしてるのかさっぱり分かりませんが、
とにかく予測ができないのが遅くなる一番の原因のようです。
0727デフォルトの名無しさん (ワッチョイ e954-+sLU)
垢版 |
2019/11/16(土) 02:46:49.96ID:NxgYCWhy0
>>724
そうですね、データ依存なんでパイプラインと先読みが原因だと個人的には思います。

そういえば思い出しましたが、if else ブロックの片方に固定的に賭けると必要以上に大負けすることがあるため、条件分岐を何度か通ったところで学習し、勝てる見込みのより高い方へ賭けるアーキ設計だったような気がします。

true : false = 100 : 0 or 0 : 100 に片方が大負けせず、同じ性能になったのはこの学習効果ではないかと。

モダン言語の進化の方向の一つに高級化があるのは、仰るとおり。低レイヤーの最適化はコンパイラと進化したハードウェアに任せ、コードは人間にわかりやすくして開発生産性を高めようということです。

もう一つの進化方向は Rust とか Go とか、低レイヤー向け言語を C++ よりわかりやすく、より安全にしようというものだと思います。
0728デフォルトの名無しさん (アウアウウー Sa45-CsEk)
垢版 |
2019/11/16(土) 03:34:45.34ID:KEmuW3Wza
>>725
失礼、例えばここにそんなことが書いてある
http://e-words.jp/w/%E6%8A%95%E6%A9%9F%E7%9A%84%E5%AE%9F%E8%A1%8C.html

でもこの通りだとしても>>723は的外れだねすんません。
「損はない」というのは並列ではなくシーケンシャルに実行した場合のコストを
上回ることはないって意味だと思う。

同じ100ステップでも素直に並列化できる部分が大きい100ステップの方が
低コストなのは当たり前の話でした
0729デフォルトの名無しさん (ワッチョイ e954-+sLU)
垢版 |
2019/11/16(土) 03:57:31.89ID:NxgYCWhy0
>>728
ありがとう。

この説明は失敗時のリカバリーがノーコストでできる環境を前提にしていると思う。
投機的実行をした面とは別の面を持っていて、そちらにすぐスイッチしてロジックを実行しつつ、その裏で失敗した面を同時並行で捨てられるような感じ。それが一般的かどうかはわからない。

複数面を持たず、失敗ステータスを捨てて (= クリアして)、その後に分岐別側のロジックを走らせるというようにシーケンシャルにリカバリーするのが一般的なのではないかなと思ったんだけどね。

最近のは複数面持ってるのかもしれない。ただ、複数面持っていると分岐ない時にリソースが遊んで無駄だからねぇ、分岐なくても普段からその面で並列演算すればいいって話になるよね。
0732デフォルトの名無しさん (ワッチョイ 69a0-+sLU)
垢版 |
2019/11/16(土) 10:49:58.51ID:42LkciGb0
>>730
全てわかっている人なんていないのだし、それぞれ知っていることを持ち寄って可能性をいろいろ検討してみるのが健全なやりとりなんだと思いますよ。

IL をうんぬんは知らない観点だったし、CPU アーキの話するのも 25 年ぶりくらいだったし、高級言語と C とアセンブリの使い分けを簡潔に整理してくれた人がいたので、とても勉強になりました。

>>731
ま、C# からはかなり離れてしまったね。
でも、電卓をバカにするものは電卓に泣くよ。AI もゲームも業務アプリも全てそのマイクロ電卓の組み合わせなんだから。高級言語の時代でも低レイヤーの動作原理を知っているに越したことはない。
0733708 (ワッチョイ 02b9-Ks/Y)
垢版 |
2019/11/16(土) 11:14:24.24ID:lqoaSlCM0
色々と教えていただきどうもありがとうございました。
とりあえず、下のような感じの結論でまとめたいと思います。

・UnitStep1が遅い原因はパイプライン処理における分岐先読みの失敗による制御ハザードだと思われる
・分岐の方向の入れ替わりが激しくてもそこに規則性があれば制御ハザードは起こりにくいようで、
 分岐先読みにおいて高度な学習が行われていることが伺える
・高級言語の目的を考えれば、開発生産性を優先してUnitStep1を選択することも十分にあり得る

UnitStep1の入力データをランダムに決定した場合の、±の割合に応じた実行時間の計測結果
http://iup.2ch-library.com/i/i2026606-1573870091.png

何かおかしなところがあれば指摘していただけると嬉しいです。
親切にしていただきどうもありがとうございました。
0735デフォルトの名無しさん (ワッチョイ 02b9-Ks/Y)
垢版 |
2019/11/16(土) 11:44:37.21ID:lqoaSlCM0
>>734
お褒めいただきありがとうございます。
パイプライン処理はとても奥が深いようで完全に理解するのはなかなか大変そうですが、
データの割合に関するご指摘のおかげでわかりやすい計測結果も得られて私もとても楽しかったです。
あまりにもわかりやすすぎる結果のせいで今後しばらく条件分岐恐怖症になりそうですがw
0736デフォルトの名無しさん (ワイーワ2 FFca-/nAh)
垢版 |
2019/11/16(土) 12:23:55.13ID:HpU1Ehe+F
>>710
C4LglgNgPgAgzAAhgJgQYQQbwLACgEFICMAbAmAHbAICqFYwAysAKYAORAFJdQB4CUCALwA+BLwQihCAAwIA/AiIIQsgNx5CxMj1r0mrNsm5Vxg0Qk4SRYuEUEBqJWoR4AvkA===

個人情報漏れてね?
0750デフォルトの名無しさん (ワッチョイ eea7-iGNt)
垢版 |
2019/11/19(火) 18:50:59.68ID:wDZa4BoT0
WPF開発に使われるMVVMパターンについてですが、Viewは良いとしてViewModelとModelの役割分担についての理解がイマイチです
ModelではOnPropertyChanged();などの記述はするべきではないという理解で良いんでしょうか?
0757デフォルトの名無しさん (ワッチョイ 1310-QS5Z)
垢版 |
2019/11/21(木) 14:49:09.23ID:vYs/9NCN0
C#でQUEUEクラスを利用した際、Dequeue()後にメモリは残るのでしょうか?
EnQueue()とDeQueue()を繰り返しているのですが、(Countは0になる)
Visual Studioでメモリ使用量をみるとサイズがとても大きくなってるのですがこれはどういうことでしょうか?
0764デフォルトの名無しさん (アウアウウー Sa9d-927E)
垢版 |
2019/11/21(木) 15:36:34.05ID:2+YsLjv3a
>>761
ペンに特殊な仕掛けがあるわけじゃないと思うので、
ペンだろうが指だろうが同じだと思う
知らんけど

でも普通に静電容量式のタッチパネルでしょ?
0765デフォルトの名無しさん (アウアウウー Sa9d-927E)
垢版 |
2019/11/21(木) 15:39:50.86ID:2+YsLjv3a
一応Windows7からOSネイティブでタッチ操作に対応してるんだよね。

当時技術サンプルとして鯉が泳いでる池をタッチすると波紋が広がるスクリーンセーバーが
公開されてたけど、なぜかコードは非公開で意味ねえと思ったなw
0769デフォルトの名無しさん (ワッチョイ 5161-CJzu)
垢版 |
2019/11/21(木) 17:45:14.26ID:0fDEV4Sz0
>>764
ペンは電池式で何らかの仕掛けがあります。
良く知りませんが、恐らく「交番電界(周波数が低い電磁波とも言える)」を
出している可能性が高いです。
0771デフォルトの名無しさん (ワッチョイ 8901-o5/b)
垢版 |
2019/11/21(木) 18:08:29.79ID:2xdKb6kz0
テレパシーの実用化。
0772デフォルトの名無しさん (アウアウウー Sa9d-927E)
垢版 |
2019/11/21(木) 19:22:17.78ID:iJSjE21Ua
>>769
へー
静電容量式の原理から普通に考えればペン側に仕掛けが必要とは思えんけど、
よく分からんね。

接触しているかどうかの識別はCの大きさで判定するだけのはずだと思うんだけど
0775デフォルトの名無しさん (アウアウウー Sa9d-927E)
垢版 |
2019/11/21(木) 20:57:25.88ID:phtIa0Jsa
>>773
対応って言ったって要するに導電性があるだけだよw
だから100均でも売ってる

>>774
surfaceってペン「も」使える設計だよね?
0776デフォルトの名無しさん (ワッチョイ 93bd-AvZR)
垢版 |
2019/11/22(金) 00:36:21.37ID:k4KfXICB0
長い名前を持つクラスに、thisを返すメソッドがあるとします

 // 超長いクラス名
 class VeryLongLongClassName {

   // thisを返すメソッド
   VeryLongLongClassName Foo( ) {
     return this;
   }
 }

このとき、Foo()の定義につけるクラス名を省略、
あるいは置き換える方法はありますか?

たとえば以下のような形が理想です

 var Foo() { … } // 型推論っぽく書けるとか
 __CLASS__ Foo() { … } //自身のクラスを表す予約語とか
0778デフォルトの名無しさん (ワッチョイ 69a0-x9/g)
垢版 |
2019/11/22(金) 01:10:47.79ID:JIfSXtJz0
>>776
外部との境界に var 型推論はムリ。それやると型を差し替えたときに影響が甚大になるため、型推論はローカルでしか許されない。
using エイリアスディレクティブで短い別名付けるとよいのではないかな。
0779デフォルトの名無しさん (ワッチョイ 93bd-AvZR)
垢版 |
2019/11/22(金) 01:39:19.16ID:k4KfXICB0
ありがとうございます
ないですかー 残念
0781デフォルトの名無しさん (ワッチョイ 7997-Rk0C)
垢版 |
2019/11/22(金) 01:41:47.12ID:9t5OvAOe0
インタフェースとか継承を考えても、thisで型推論するのは無理じゃない?
0782デフォルトの名無しさん (ワッチョイ 93bd-AvZR)
垢版 |
2019/11/22(金) 02:06:03.92ID:k4KfXICB0
戻り値が特に必要ないメソッドはreturn thisにして繋げれるようにしておこうかなあと
return thisにするか同じクラスをnewするかはさておき
0783デフォルトの名無しさん (アウアウエー Sae3-QS5Z)
垢版 |
2019/11/22(金) 03:39:52.30ID:zCaqBpsza
VisualStudio2017を使用

Form1にsplitContainer1を上下に分割して全面に貼ってあり、splitContainer1の下段側にリッチテキストボックス1をドッキングさせて貼ってあります。
このリッチテキストボックス1が、ScrollBarsプロパティ:Both、WardWrapプロパティ:false

このリッチテキストボックス1に縦と横幅を超えるテキスト表示をした時、
縦のスクロールバーは普通に表示されるけど、水平のほうのスクロールバーが表示されなくなったのだけど何が原因と考えられるでしょうか?

・右キー押して自分でカーソルを右端まで動かせば一応画面のスクロールはさせられる
・以前はちゃんとスクロールバーが表示されてたはずなんだけどいつの間にか表示されなくなった?
0785デフォルトの名無しさん (ワッチョイ 8ba7-QS5Z)
垢版 |
2019/11/22(金) 10:12:54.94ID:NcGK5KJU0
xamlの質問になってしまいますが、全コントールアイテムのBorderBrushやForegroundの色を統一することって出来ないのでしょうか?
<Style TargetType="Button">
<Setter Property="BorderBrush" Value="Black"/>...
と一つ一つのコントロールを定義して回るしか方法はないのでしょうか?
0787デフォルトの名無しさん (アウアウウー Sa9d-927E)
垢版 |
2019/11/22(金) 11:05:21.71ID:fOeQA7sva
>>776
ファイルスコープの別名なら普通に可能。
グローバルに別名が欲しいと考えてるならそもそも何か考え方が根本的に間違ってる気がする
0789デフォルトの名無しさん (アウアウウー Sa9d-927E)
垢版 |
2019/11/22(金) 11:34:48.44ID:fOeQA7sva
>>788
いや誰が考えてもそういう(>>784)話ですw
それ以外にありえない
0790デフォルトの名無しさん (ワッチョイ 3988-+jxl)
垢版 |
2019/11/22(金) 12:09:19.86ID:miLj5dAA0
returnの型から推論できるんだからメソッドの戻り型にもvarを使わせろって話?
んじゃあ始め書き込みで予約語の例示が意味不明
というか長い名前という言葉から文章を開始しといて何が違うんだ?

変数でvarを使うのは名称が長いからではないぞ?
長いものも3文字で表現できるという副次的メリットはあれどそのために導入されたものではない
0791デフォルトの名無しさん (ドコグロ MM63-5f43)
垢版 |
2019/11/22(金) 12:18:11.80ID:627roQa/M
メンバの型に型推論が使えないのは単純に技術的な問題だよ
コンパイラは先にメンバのシグネチャだけを見てリストアップしてから各メソッドの本体を処理することで依存関係を解決している
メソッドの中身を見ないとメンバの型が確定しないとなると、一度メソッドを処理しただけでは依存関係を解決しきれないから
メソッドを何度も繰り返し処理する必要がでてきてコンパイルが遅くなる
0793776 (ワッチョイ 93bd-AvZR)
垢版 |
2019/11/22(金) 12:21:55.56ID:k4KfXICB0
なんか結論としては>99の質問と同じような感じになっちゃったけど
最初の質問が微妙に異なるので見落ちとしてた、すまん

>>787
単純に自身と同型のオブジェクトを返すときに、なんかスマートな方法あるのかな?と思っただけ
言語によってはそのへんの仕組みがあったりする

ファイルスコープでのエイリアスが可能なら>>778の言うように
分かりやすいところに ThisClass みたいな名前のエイリアスを用意しておいて
クラス内部では基本的にそっちを使うのもアリかなと思っている
予約語ではないのでエディタとの相性はそこまで良くないけのが欠点か
0795776 (ワッチョイ 93bd-AvZR)
垢版 |
2019/11/22(金) 12:29:12.04ID:k4KfXICB0
>>791
なるほど、確かにそうだな
動的な言語だとまた違うんだろうけど比較できるようなもんでもないしな
0796776 (ワッチョイ 93bd-AvZR)
垢版 |
2019/11/22(金) 12:35:32.03ID:k4KfXICB0
>>794
んだね

アリかナシかで言えばアリだと思ったけど
言語仕様として存在しないなら自分個人ではなるべく避けたいな
0798デフォルトの名無しさん (ワッチョイ 3988-+jxl)
垢版 |
2019/11/22(金) 13:09:44.77ID:miLj5dAA0
な?名称が長いかどうかなんて関係ない質問なのに余計な単語から質問を始めるから周りが混乱する。
コメントで超長いクラス名とかまで書いてんじゃん
そんで指摘したらそーじゃねぇよ!ってあほかとwどんだけ説明下手くそなのw
0799デフォルトの名無しさん (アウアウウー Sa9d-927E)
垢版 |
2019/11/22(金) 13:09:46.78ID:fOeQA7sva
>>793
なるほど失礼w

長い名前云々書いたのははミスリードだったねw
戻り値を型推論で省略できないか?とシンプルに書いて欲しかった
0803デフォルトの名無しさん (アウアウウー Sa9d-927E)
垢版 |
2019/11/22(金) 14:08:44.11ID:fOeQA7sva
>>800
そうなの?w

// VLLCNじゃ何だかわからないので必要な場面で説明的な名前を与えるためだけのクラス
// 空っぽの継承のまま維持せよ。メンバ追加禁止!!!
class VeryLongLongClassName : VLLCN { private VeryLongLongClassName(){} }

// VeryLongLongClassNameの実体はこっち。
class VLLCN
{
  ....
}

まさかこんなのがお好みなのかなw
0804デフォルトの名無しさん (ワッチョイ 3988-+jxl)
垢版 |
2019/11/22(金) 14:16:21.50ID:miLj5dAA0
自身のクラス返すときだけ利用したいんでしょ
tweenerみたいな設定が多いものをチェインメソッドで必要な設定を好きな順番で書くとか
他にはfactoryみたいなのをわかりやすくするとか
気持ちはわからんでもないけど局所的すぎると思う
0805デフォルトの名無しさん (ワッチョイ b32d-gZQb)
垢版 |
2019/11/22(金) 14:17:29.50ID:k9hYLF030
.Net CoreからBitFlyerの認証が必要なWebAPIを使いたいんだけどさあ
業者は暗号化キーをソースコードやファイル等に保存しないよう求めてるんだけど、.Net Coreでキーを守る手段ってどういうのがあるの?
WindowsやmacOS付属の機能も使えなさそうだし、最終的に動かしたいLinuxなんかそもそもそんな機能がないし・・・・
ランタイムにもそんな機能なさそうだし、どうすればいいんだろ
0807デフォルトの名無しさん (ワッチョイ 1301-hZ32)
垢版 |
2019/11/22(金) 15:31:23.92ID:VuiommTl0
>>804
> tweenerみたいな設定が多いものをチェインメソッドで必要な設定を好きな順番で書くとか
チェインメソッドってよく見かけるようになったけど見易いのかなぁ…
X.A( ).B( ).C( );
より
X.A( );
X.B( );
X.C( );
の方が見易いと思う俺は老害なんだろうか
0809デフォルトの名無しさん (ワッチョイ 1301-hZ32)
垢版 |
2019/11/22(金) 16:37:13.07ID:VuiommTl0
>>808
linqはパイプみたいに順次処理して行くからまだ理解できるんだけど>>804が言う
> 設定が多いものをチェインメソッドで必要な設定を好きな順番で書く
とかは普通に分けて書けばいいのにって思うんだよね
まあ人それぞれと言うのには同意するけど
0811デフォルトの名無しさん (ワッチョイ 7997-Rk0C)
垢版 |
2019/11/23(土) 02:25:29.33ID:LRCCNZf00
>>807
自分もそう思う
>>808
LINQでつなげる場合はLINQメソッドの戻り値を意識しながらつなげるわけだから、話が違うじゃん
list.Reversed().Select((v)=>v+1)みたいな例はデータをどんどん変換しているから良いと思うけど、
form.ForeColor(Color.Red).BackColor(Color.Black)みたいなやつは1行で書けるメリットがあるのはわかるけど、
やってることは関数じゃないのに関数っぽくっ振る舞ってるのがすごくモニョモニョする。
これが、
form.CopyWithForeColor(Color.Red).CopyWithBackColor(Color.Black)で別のformが2つ作られるとか、
form.ForeColorChanger(Color.Red)でForeColorChanger<Form>が生成されて、ApplyFormで元のFormに反映されるとか
ToFormで新しくフォームが作れるとかならわかるんだけど、
副作用のあるメソッドで、戻り値がvoidのやつはもったいないから、戻り値をthisにするってのがなんか受け付けないんだよな―。
0813デフォルトの名無しさん (ワッチョイ 6963-+jxl)
垢版 |
2019/11/23(土) 03:16:21.47ID:gK3OO6AB0
だから意味合いは違うって書いてんでしょうが
this返して繋げる前提ライブラリなんてよくあるし好き嫌いの範疇
君が嫌いならしなきゃ良いだけじゃん
俺だってC#のライブラリ作るとき設定するだけのメソッドでthisなんて返さないよ
それは俺が作るものが小さいものだからできるだけ標準に近いものが良いだろうってだけ
大きめのものでそれが全体を通して同じようにthis返す設計で、それを使うならなるべくその思想には従うかもしれん程度
0814デフォルトの名無しさん (アウアウウー Sa9d-927E)
垢版 |
2019/11/23(土) 04:29:53.39ID:1tUJgTKRa
this返すお作法は昔のjava方面の文化じゃない?

C#は1.xの時代にMSか何かのガイドラインで「やるな」って書いてあったのを読んだ記憶がある。
個人的にそもそもそんなキモいことやらないよと思ったので禁止の理由までは覚えてないが。
0815デフォルトの名無しさん (ワッチョイ 1301-hZ32)
垢版 |
2019/11/23(土) 08:12:23.68ID:IdTl1qyV0
>>813
> だから意味合いは違うって書いてんでしょうが
何にキレてるのか知らんけど、意味合いの違うものを引き合いに出すこと自体がおかしいって指摘されてることぐらいは理解しようよ
0817デフォルトの名無しさん (ワッチョイ 6963-+jxl)
垢版 |
2019/11/23(土) 11:11:29.56ID:gK3OO6AB0
意味合い違うものを出すのがおかしいなら807のレスがおかしいんだよ?
見やすいとか関係なくて776がこんな機能ないの?→無いよ→なんで欲しいの?→こういうのしたいんでしょ→見にくくね?気持ち悪くね?
って知るかよw
機能の話してんのになんで見易さの話にシフトすんだよ
見易さの話に変えられたので同じ表記の例示だしただけだし、そもそもlinqではないが採用してるライブラリも例示してんのになんでそこにこだわんの?w
0818デフォルトの名無しさん (アウアウイー Sa45-FRU3)
垢版 |
2019/11/23(土) 11:15:35.39ID:jZmYWOXfa
おおもとの>>776>>793の疑問についてはusingでエイリアスをつけて
『using [別名] = [VeryLongLongClassNameとか別名をつけたいクラス名];』と宣言して、
『[別名] Foo() { return this; }』みたいなメソッドの書き方することはできるし、
その別名に「This」を使ってるようなソースもたまに見かける

なんだけど・・・そもそも戻り値が特にないからとりあえず安易にthisを返すみたいな考え方は間違ってる
戻り値がないならvoidにして無駄な戻り値を返さない
そのクラスがBuilder的な使い方をするクラスである場合に限って、
そういうクラスであることをクラス名ほかで明示したうえで首尾一貫して全voidメソッドでthisを返す
>>782みたいな考え方で戻り値がthisなのか新しいインスタンスなのかブレるかもしれないのは論外
戻り値が後者なメソッドが混ざってると>>807の2種類の書き方で結果が同一にならなくなる
0819デフォルトの名無しさん (ブーイモ MMcb-+o02)
垢版 |
2019/11/23(土) 11:33:01.08ID:fy5uwVSkM
Fluent apiってthisを返すことが目的じゃないからな
メソッドチェインで宣言的っぽくプログラミングするためのアイデアであってthisを返すメソッドはそのサブセットでしかない
世に出てるライブラリを見ればわかるがthis以外もバンバン返してる
だから作法としてとりあえずthisを返すなんてのは何もわかってない全く馬鹿げたことだ
先にFluent apiの設計をしなければならない
その設計に必要ならthisを返すメソッドを加えるだけだ
0821デフォルトの名無しさん (ワッチョイ 6963-+jxl)
垢版 |
2019/11/23(土) 12:07:14.69ID:gK3OO6AB0
>>820
話題を変えたから見た目の話してんのに機能面に難癖つけてるの分かってる?
見た目はこれと一緒、機能はちがうけどね
ってレスしたらそれは機能が違う!って戻してんじゃんw

見た目も機能も同じtweenerという例示
見た目の話に切り替えたので見た目は同じだが機能は異なるlinqという例示
念の為機能は異なることも明記した上での提示に対して機能面についてあーだこーだ言われてもねぇ
0822デフォルトの名無しさん (ワッチョイ 69a0-x9/g)
垢版 |
2019/11/23(土) 12:14:24.40ID:WMLRYpBj0
喧嘩すんなよ。

いろいろな観点から指摘が入って、設計やスタイルに関する考察が深まるのはいいことだ。

揚げ足取りとか噛み付きとか不毛だからやめような。
0823デフォルトの名無しさん (ワッチョイ 9138-4UII)
垢版 |
2019/11/23(土) 12:25:25.02ID:2fNzxcKi0
コードレビューするなら
本質的な機能では無いのに戻り値返すのは利用者の理解を妨げる上に、バグの元にもなるので、余計な事すんなと言うな

あとから戻り値欲しくなった途端に困るやろ
0824デフォルトの名無しさん (ワッチョイ 6963-+jxl)
垢版 |
2019/11/23(土) 12:58:03.05ID:gK3OO6AB0
今までレスしてる中でthis返す設計に肯定的な姿勢なのは元の質問者である782だけ
C#標準にそういう設計は無いからその利用者の多くは否定的になる、俺も含めて

世の中いろんな設計指針があるし他言語の流儀を真似することもある
同じチームで開発することになるならその辺りはできるだけ同じ方向を向きたいけれど、そういうのじゃなければ最終的にはお好きなようにとなるよね
0825デフォルトの名無しさん (ワッチョイ 1301-hZ32)
垢版 |
2019/11/23(土) 13:19:13.45ID:IdTl1qyV0
>>821
バカなの?
> linqはパイプみたいに順次処理して行くからまだ理解できるんだけど
って書いてあるだろ
そういう必然性のない
> 設定が多いものをチェインメソッドで必要な設定を好きな順番で書く
を同一視してるのがおかしいの
わかった?
■ このスレッドは過去ログ倉庫に格納されています

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