ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net

2016/07/26(火) 22:15:12.39ID:jPb6PRpJ
テンプレ募集
2016/07/27(水) 03:03:27.80ID:5NvWe4or
議論て?
2016/07/27(水) 11:55:51.35ID:daMn1ZwX
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する議論でも、誰かが喧嘩腰でレスをしてくれるスレッド」です。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、競い合って新スレを建てる人を決めて下さい。

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
2016/07/27(水) 15:01:06.00ID:puZlLwh4
こんなスレを待っていた
2016/07/29(金) 21:40:36.33ID:nnGDzY7D
1乙
6デフォルトの名無しさん
垢版 |
2017/07/21(金) 07:08:57.08ID:h5hvtEqn
>>917
>そもそも、USB端子2つ持ってたらどうするの?
>PC自体にUSBの機能を持たせたら、usb1と2の区別ができない。
>よって、そういった場合を考慮すると、部品化して、プロパティとしてusb1、usb2を持たせるのが正しい。

おまえアホやろ。
has a にしてクラス配列実装すればしまい。USBクラスのベクタでもいいわ。
低脳すぎて話にならんなお前。
USBからPCクラス派生?わらわせんなアホ
7デフォルトの名無しさん
垢版 |
2018/05/23(水) 22:04:30.64ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

B6BOG
8デフォルトの名無しさん
垢版 |
2018/05/26(土) 19:25:05.18ID:a1oscm7v
アプリに使い方の詳細を記述したHelpをつけたい。C#で最新の方法を選ぶなら何?
2018/05/26(土) 21:52:48.86ID:tp+wwIUT
>>8
MSが提供してるのは20年前のHTML Helpだけだと思う。
(MS Help2や3は結局オーサリングツールが提供されなかった)

WebでもローカルHTMLでもpdfでも好きな方法でいいんじゃないすか。
どっちにしろ99%のユーザーはヘルプなんか読まないw
2018/05/26(土) 23:59:03.91ID:ct7c5lEQ
XML強行した結果がこれさ。結局、誰も保守できなくなって放置。
ゲイツが警告したにも関わらずMSは足を踏み外してしまった。
11デフォルトの名無しさん
垢版 |
2018/05/27(日) 09:35:11.32ID:3OO+HMKA
ドキュメントって大事だとおもうのだが、綺麗に書けてしかも軽いツールって無いの
だろうか?
LibreOfficeは重たいんだよな。
12デフォルトの名無しさん
垢版 |
2018/05/27(日) 10:15:30.58ID:U2mggxwv
【不正義】 世界全体が大きな、不正の固まりです。マイトLーヤは平和の必要性について語っています。
http://rosie.5ch.net/test/read.cgi/liveplus/1527336724/l50
2018/05/27(日) 11:26:49.93ID:wtpc6qqX
>>11
VScodeでいいだろ。リッチテキストならワードパッド
オフィスはPDFに変換したいときに使えばいい
2018/05/27(日) 11:34:23.04ID:A2QTnoDY
markdownで良くね
2018/05/27(日) 12:16:51.11ID:tEECUjWC
markdownは独自仕様が多くて嫌になる
2018/05/27(日) 13:04:21.35ID:PcrS82O4
テーブルさえ編集できればワードパッドが案外軽くていいんだけどね
17デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:45:27.83ID:gFgZc5FG
3Y4
2018/07/18(水) 12:21:28.08ID:E1K+XGeZ
共有メモリにFIFO作りたいのでサンプルコードください
19デフォルトの名無しさん
垢版 |
2018/09/06(木) 00:08:34.12ID:r2CzgwVn
フィーフォー!
20デフォルトの名無しさん
垢版 |
2018/09/06(木) 00:16:09.84ID:+IzqqT+I
キューをつくりたいって事ならググれば良いと思うよ
21デフォルトの名無しさん
垢版 |
2018/09/06(木) 03:10:04.23ID:f49/P0Og
キューって言いたいなら口を尖らせると良いと思うよ
2018/09/08(土) 16:07:54.41ID:jA4A06hl
multiprocessing.queue を使えばいいよ
2019/03/18(月) 23:19:33.34ID:C/4O5yI9
Xamrin生きてる?
もしかして市場で増えてたりする?
24デフォルトの名無しさん
垢版 |
2019/03/19(火) 08:39:43.03ID:m7J+vmgi
■「C#」「Visual studio」「Windows EXE実行ファイル」のリリースについての質問です

Visual studio(C#)でコンパイルした、
Windows EXE実行ファイルのリリースについて質問です。

バッチシステムとしてタスクスケジューラーで起動させますが、
頻繁にシステム改修があり、都度リリースが必要です。

しかし、システム実行中にリリース(EXEファイルの上書き)を行うと、
起動中のため上書きエラーとなります。

実行中のEXEに対して、
次回の実行分から最新のシステム改修を反映させるには、
どのようにしたら良いでしょうか?

以下私の案がございますが、スマートではありませんし、
実行開始に時間がかかるデメリットがございます。
他にスマートな案はございますでしょうか?

起動に関するフレームワークなどあるのでしょうか。

<案>
1.処理開始時に本体EXEファイルをコピーして実行版EXEファイルを作成する(同一のEXEファイル)
2.実行版EXEファイルを起動する
3.実行中でも本体EXEファイルは上書き可能なため、本体EXEファイルに対してリリース(EXEファイルの上書き)を行う
25デフォルトの名無しさん
垢版 |
2019/03/19(火) 08:40:05.06ID:m7J+vmgi
■「C#」「Visual studio」「Windows EXE実行ファイル」のリリースについての質問です

Visual studio(C#)でコンパイルした、
Windows EXE実行ファイルのリリースについて質問です。

バッチシステムとしてタスクスケジューラーで起動させますが、
頻繁にシステム改修があり、都度リリースが必要です。

しかし、システム実行中にリリース(EXEファイルの上書き)を行うと、
起動中のため上書きエラーとなります。

実行中のEXEに対して、
次回の実行分から最新のシステム改修を反映させるには、
どのようにしたら良いでしょうか?

以下私の案がございますが、スマートではありませんし、
実行開始に時間がかかるデメリットがございます。
他にスマートな案はございますでしょうか?

起動に関するフレームワークなどあるのでしょうか。

<案>
1.処理開始時に本体EXEファイルをコピーして実行版EXEファイルを作成する(同一のEXEファイル)
2.実行版EXEファイルを起動する
3.実行中でも本体EXEファイルは上書き可能なため、本体EXEファイルに対してリリース(EXEファイルの上書き)を行う
2019/03/19(火) 09:18:20.73ID:CPLZKK98
マルチポストはやめようね
27デフォルトの名無しさん
垢版 |
2019/03/19(火) 10:58:54.41ID:ido7X/gQ
大事なことなのでたくさん投稿しています。
嫌なら見ないでくださいね。
2019/03/19(火) 12:22:06.43ID:Wv3n+IP3
やっていることが根本からアホで業務でやっていたら殴られるな
2019/03/25(月) 05:23:21.81ID:cRFxwK75
C#ではなくC++で記述するメリットって何?
2019/04/05(金) 01:13:33.96ID:ltKOeCxb
C#はCの正統進化なのか、Cの文法を真似ただけの継子なのか?
2019/04/05(金) 08:07:11.34ID:SluFpjGG
>>30
継子どころか、初期にちょっと文法を借りただけレベルになんじゃないかな。
2019/04/05(金) 08:30:47.28ID:cxYFNA8C
ObjectPascalの子供
2019/06/28(金) 18:49:24.31ID:WnzZkcns
VB6とCの混血児
34デフォルトの名無しさん
垢版 |
2020/02/28(金) 12:19:17.61ID:hLnsGDnw
Icon とか継承したクラス造ろうとしたら protected 観たいなエラー出るのですが
無理やり継承する方法はありますか?
2020/02/28(金) 12:26:34.68ID:xV5waRlr
>>34
元のクラスの内容を全部コピーする
36デフォルトの名無しさん
垢版 |
2020/02/28(金) 17:21:21.95ID:HAMXUqwp
その場合引数で Icon 型を期待してるメソッドに渡しても大丈夫ですか?
いちいちキャストするの面倒ですしそもそもキャスト出来ない気がします
2020/02/28(金) 17:28:38.91ID:uB1B7NHg
>>32
構文から演算子の順位まで全然違う。Pascal風味はゼロ。
38デフォルトの名無しさん
垢版 |
2020/02/28(金) 18:22:46.28ID:xhxxpq/f
>>36
キャスト(変換演算子)は必要なら自分で定義できるし、
明示的キャスト不要で暗黙的に行われるようにすることもできるよ

まあそもそも問題設定が間違ってるような気もするけどw
2020/02/28(金) 18:33:33.38ID:cSasMdie
>>25
前提がよくわからない
起動時か定期でiniファイル読んで書いてあるバージョンが自分のより新しかったらチェンジ用exeをキックして自分は終了
exeの上書きと自分の再起動はチェンジ用exeに任せる
40デフォルトの名無しさん
垢版 |
2020/02/28(金) 20:06:30.19ID:BwvE6YKn
>>33
VB6風味もゼロだろ。VB.NETこそがVB6とC#の混血児、というよりBasicの皮を被ったC#。
ソースの著しい類似性が一目瞭然。

using System;

class Program {
  static void Main()
  {
    int i = 1;
    i += 2;
    Console.WriteLine(i);
  }
}

Imports System

Module Program
   Sub Main()
    Dim i As Integer = 1
    i += 2
    Console.WriteLine(i)
  End Sub
End Module
2020/02/28(金) 20:09:57.30ID:uB1B7NHg
そのコードじゃC#の影響を受けた部分が全く分からないんだが。
42デフォルトの名無しさん
垢版 |
2020/03/01(日) 05:43:23.78ID:wVHwYgLC
なんだ?この糞スレ
と思ったら2016年だとwww
どこから引っ張り出したんだよ
2020/12/18(金) 08:32:58.70ID:ileYQnEg
動き無さすぎ
2020/12/18(金) 22:46:44.32ID:ujpVp95k
初心者スレでマウント取りたい奴らはこっちに来ないからな
2020/12/18(金) 23:27:13.35ID:8Zla4vKD
論破されちゃうもんな
2021/02/04(木) 07:27:29.98ID:v2FFpAw/
そろそろMSはC#に統一してくれんかな
VBと両方管理するコストも馬鹿にならんだろ
2021/02/04(木) 08:25:47.05ID:zK6uqGDJ
いつ切るかって感じになってると思うよ
OfficeのマクロもPython採用されたし
C#じゃねーのかよwとは思った
2021/02/04(木) 12:33:32.08ID:qhstqCrC
>>47
>OfficeのマクロもPython採用されたし

採用されてないよ
PythonじゃなくJavaScriptなら採用されたけど
2021/02/04(木) 13:10:41.12ID:pb5ZSMwN
>>48
ほんとだ
Pythonポシャったんだな
https://www.reddit.com/r/IAmA/comments/9uqzrs/we_are_the_microsoft_excel_team_ask_us_anything/?utm_medium=android_app&;utm_source=share
2021/02/04(木) 16:17:55.89ID:TgPbTxkL
>>46
古いことしか知らなくて申し訳ないけど
excelのシート操作時の解放とか面倒なんでvb.netで書いちゃうけどそんなことないのか?
2021/02/04(木) 21:06:21.96ID:ZtMmgGts
>>48
安心した。pythonなんて埋め込みに一番向いてなさそうな言語なのにどうするんだろうと思ってた。
2021/02/04(木) 22:30:48.72ID:QcsaodMG
>>51
Python埋め込みに向いてないってどうして?
BlenderもMayaも3DS MaxもPythonでいい感じにスクリプト組めるよ。
2021/02/04(木) 22:48:54.62ID:ZtMmgGts
javascriptならdllひとつで組み込めたりするのに、embeddable pythonなんて
embeddableと言いながら結局実行環境まるまるコピーしてるようなものだし。
2021/02/04(木) 22:55:28.26ID:QcsaodMG
実用に耐えるクロスプラットフォームなJavaScriptの実行環境はdll一つで組み込めんでしょ。
実行環境内包する事のどこがおかしいのかわからんが。
MS製品でいうと、すでにPowerBIなんかだとPythonで書いたモジュールでグラフ描いたりできるよ。

埋め込みに向いてないってのは知らないだけの無知でしょ、流石に。
2021/02/05(金) 07:39:08.16ID:5Tgc7yvD
できるできないじゃなくてどれだけ向いてるかって話な。
埋め込みならlua mruby python javascriptと一通り試したことはあるが。

>実用に耐えるクロスプラットフォームなJavaScriptの実行環境はdll一つで組み込めんでしょ。

msのjavascriptエンジン(chakra)は実際dllひとつだけ。
2021/02/05(金) 07:51:45.21ID:km3pMqV5
>>55
すまん、Chakraそうだったのか。そりゃ便利そうだな。
ちょっと興味あるんだけど、ファイルとかのIOとかはどうなるの?ホスト言語側で持たないと?クロスなの?

日頃MAXとMayaとでごちゃごちゃやってUnity用アセット管理したりしてるけど、結構向いてると思うよ、Python。
2021/02/05(金) 08:26:53.87ID:5Tgc7yvD
I/Oは全部ホスト側で用意しなきゃならないね。埋め込みとしてはそちらの方がありがたいけど。
2021/02/05(金) 08:41:45.27ID:uaJ+yOd+
なるほど。IOを再実装しないといかん事の是非は、埋め込みをどのように使うかだろうなぁ。
ファイル一覧とか触りたいときは標準のライブラリが使えたほうがだいぶ楽だし、そのアプリ専用のコマンドが減れば減るほどありがたいと思う方。
ユーザに開放するか開発者に開放するかどっちかってやつかもね。
59デフォルトの名無しさん
垢版 |
2021/03/28(日) 20:18:17.69ID:AfIP7Kkq
ふらっと C#,C♯,C#(初心者用) Part150
https://mevius.5ch.net/test/read.cgi/tech/1616471904/

>>44-50

横から便乗で質問ですけど、
「いつか使うだろう」とインターフェースや継承関係を作っておく自体は推奨されることですか?

例えば、インターフェースや継承関係が無くても、直付けで作れてしまう訳じゃないですか。
むしろ、そっちの方が楽(というか、直付けでしか作れない人もいますし)。
ただし、物事が複雑化してきたときに、インターフェースや継承関係があると拡張しやすい。

これって上級者なら、(どんなに小さいプログラムだろうが)常にインターフェースや継承関係を作った方がいいのか、
それとも、ケースバイケースで「このぐらい複雑ならインターフェースや継承関係が要る」という判断基準に則って作った方がいいんですか?
2021/03/28(日) 20:34:19.07ID:XhrJbcfF
ドキュメントの用意ができるかできないかでも違ってきそうな気がする
61デフォルトの名無しさん
垢版 |
2021/03/28(日) 20:45:56.60ID:AfIP7Kkq
>>60
なるほど、その回答は暗に「ケースバイケース」と言っていますね。
2021/03/28(日) 21:03:33.98ID:aCkXL8Lz
>>59
あくまでチーム開発が前提にはなるが、インターフェイスを作るなら、今取り組んでいるタスク(pull request)のコードの中で必要性を示せ
一番分かりやすいのはモックして単体テストを書くことだな
それが示されてない限り俺ならリジェクトするよ
2021/03/28(日) 21:04:39.00ID:8DGgAvpz
>>59
普通はやってはならないが常識
その設計と拡張方向の正当性が問われる事態になる
その時〜な気がするではなくキチンとビジネスで通用する説明ができないと窮地に追い込まれる
ただドキュメントを書かない現場というのもあって
そういうところでは担当者の趣味で付けてしまう
64デフォルトの名無しさん
垢版 |
2021/03/28(日) 21:53:06.83ID:AfIP7Kkq
>>62-63
なるほど、納得です。

一番合理的な意見でよかったです。

インターフェースや継承についての本やネットの記事では、
なんでもかんでも拡張できるように書くような勢いで、
しかも読んでる最中は確かにそうすべきかなと思ってました。
でも、実際に使おうとすると、どこまでやっていいのか迷ってました。
YAGNIに沿って「必要になってから作る」でいいんですね。
2021/03/28(日) 21:59:13.76ID:Ah6uwjvI
>>59
継承関係に関しては明確に必要な場合か
事前のアーキテクチャ設計方針で決まってる場合以外には使わないかな

インターフェースに関しては依存性の方向を変えたかったり
結合度を下げたかったりする明確な理由があれば良いと思う
(「いつか使うだろう」という理由とはちょっと違うけど)

依存性の方向は大事
66デフォルトの名無しさん
垢版 |
2021/03/28(日) 22:00:39.57ID:yHCir1no
王位継承権のように順位をつけるべきでは?
2021/03/28(日) 22:06:31.86ID:Ah6uwjvI
例えば
あるライブラリを後で違うものに入れ替えられるように作っておきたい
というのでも十分な理由

入れ替え可能にする手間や増加するコードの複雑性と
呼び出し側の変更なく入れ替えが可能な柔軟性とのトレードオフ

関数のある処理をヘルパー関数として抽出するべきか
そのままインラインで書いておくべきかというのと考え方的には大きな違いはない
68デフォルトの名無しさん
垢版 |
2021/03/28(日) 22:54:02.07ID:AfIP7Kkq
>>65-67
> 継承関係に関しては明確に必要な場合か
> 事前のアーキテクチャ設計方針で決まってる場合以外には使わないかな

これは明確な回答ですね。
つまり、例えば大学の学生証管理システムだとすると、Studentクラスで直にコーディングして、
後にアーキテクチャ設計方針がひっくり返されて「教授も身分証作ったから足してくれ」となった場合は
Person→Student, Person→Professorのような継承関係にするわけですね。
それまでにStudentに直に結び付けて作ったメソッドなどは一部作り直しになりますが、そこは許容するスタイルですね。

> インターフェースに関しては依存性の方向を変えたかったり
> 結合度を下げたかったりする明確な理由があれば良いと思う

> あるライブラリを後で違うものに入れ替えられるように作っておきたい

…と言われると、依存性は低い方が良いに決まっていますし、
あるライブラリを後で違うものに入れ替えられるように作っておいた方が良いに決まっていますよね?
そして、未来は予測できないので、その工夫が後に活きてくるか無駄になるかは不明です。
つまり、

> 入れ替え可能にする手間や増加するコードの複雑性と
> 呼び出し側の変更なく入れ替えが可能な柔軟性とのトレードオフ

つまり、工数として、
 入れ替え可能にする手間や増加するコードの複雑性 > 呼び出し側の変更なく入れ替えが可能な柔軟性

 入れ替え可能にする手間や増加するコードの複雑性 < 呼び出し側の変更なく入れ替えが可能な柔軟性
かは不明です。

このトレードオフをどのように決めていますか?
>>62-63さんは「今、不要な機能なら要らない」という指標を示して下さいました。
2021/03/29(月) 00:35:35.42ID:kW6kUd5H
>>68
>…と言われると、依存性は低い方が良いに決まっていますし、
>あるライブラリを後で違うものに入れ替えられるように作っておいた方が良いに決まっていますよね?

決まってないよ

Rails使ってWebアプリ開発する場合ならActiveRecord以外のORMに入れ替えられるように作っておいたほうがいい?
Rails以外のフレームワークに入れ替えられるように作っておいたほうがいい?
JavaScriptでReact使う場合ならReact以外のフレームワークに呼び出し側の変更なく入れ替えられるように作っておいたほうがいい?
jQueryやlodash使う場合は他のライブラリに入れ替えられるよう作っておいた方がいい?

状況に応じてどこまでを許容するかの線引きをするんだけどその線をどこに引くのかはケースバイケース
要件、組織、ライブラリの品質/将来性/安定性/重要性、変化の方向性などを総合的に判断することになる

それと結合度を下げる方法はインターフェース以外にもある
インターフェースでより重要になるのは依存性の方向
2021/03/29(月) 00:45:34.96ID:kW6kUd5H
>>68
>Person→Student, Person→Professorのような継承関係にするわけですね。

それは継承関係が明確に必要なケースじゃないから作らない
2021/03/29(月) 02:24:21.84ID:9yINXZUI
知識と経験が乏しいから勝手に〜しかないって決めちゃってる場合がほとんどだよね
2021/03/29(月) 02:27:48.16ID:9yINXZUI
windowsとLinuxを切り替えられるように作っておったアホがいたけど
そもそもそんな要件ないのにプロジェクトに過剰な負担を強いただけのアホだったと思う
アホってこういうの勝手に入れちゃうんだよね
お前の趣味だろそれって
2021/03/29(月) 07:31:15.62ID:w2mFGclo
最近、というかいまさらながらDDDに挑戦したんだが
リポジトリクラスのインターフェース作ることで、DBに依存しないテストをすることができるということがやっと理解できた

私はアホなので手を動かさないと理解できないのだ…
本やネットと睨めっこしててもダメなのだ…
2021/03/29(月) 07:34:46.96ID:2VNxxGaX
JDBCはその目的で作られたはずなんだが
2021/03/29(月) 07:37:09.01ID:2VNxxGaX
HibernateもMyBatisもそのはずなんだが

なぜもう一枚レイヤーが必要だったのか
2021/03/29(月) 07:38:34.20ID:2VNxxGaX
ビジネスロジックを全部自前のクラスで固めて
世間に依存しないようにしましょうということだったのだろうか
2021/03/29(月) 08:46:53.61ID:z3NFX8KE
実用的にはほぼDAOだよ
テストの時に小回りが利いていいかなーって程度だな
DB乗り換えみたいな超絶レアケースを利点に挙げてる奴はどうかしてると思う

あとビジネスロジックをRepositoryに書くと原理主義者に殴られるから要注意な
俺は殴んないけど
2021/03/29(月) 08:48:15.09ID:z3NFX8KE
×DB乗り換え
○ドライバーが無いようなDBへの乗り換え
2021/03/29(月) 12:08:39.12ID:y7wcwcm/
費用は安ければ安いほど良いに決まってますよね
速度は速ければ速いほど良いに決まってますよね
機能は多ければ多いほど良いに決まってますよね
いや、機能は少なければ少ないほど良いに決まってますよね

おっぱいは大きければ大きいほど良いに決まってますよね
こんなのは子供の考え方に決まってますよね
2021/03/29(月) 15:27:05.10ID:K2k3tipf
実際に経験せずに机上だけで理解しようとしてるからそういう発想になるんだろうね
おそらく学生さんだろうから生暖かく見守ってあげれ
2021/03/29(月) 20:02:35.07ID:2VNxxGaX
自分も生あったかい目で見られてたから
とやかくいうつもりはないが

なんでできないやつにばっかりやらせるんだよ!
できるやつがやって下に教えりゃいいんじゃないの?!
2021/04/13(火) 19:45:32.34ID:arsZDomX
コメントの要否・コメントの内容について

コメントには「なぜ」を書くのが原則
処理の内容はコードを読めば解ることなので不要と考える
2021/04/13(火) 19:55:52.28ID:WoYnxMFx
俺はコメント入れてほしい派

読めば判るっつってもさ、
コード書いてる本人ですら
何やってるか分かってない場合もあるからな(笑)
せめてコメントで
「ここではこんなことをしてる(つもり)」
って書いてくれら「全然そうなってないだろ!」と突っ込める
2021/04/15(木) 06:46:40.67ID:S1KqOAhX
ぱっと見で複雑な処理の概要をコメントに書いてるわ
他人や将来の自分がなるべく素早くコードを読めるため、ってつもり
2021/05/04(火) 12:03:49.50ID:mq0qLgJb
細かいところを省略してエッセンスだけ書くのは勝手だけど、実際に運用していくときに出てきそうな問題点の指摘を無視するのは違うでしょ

むしろID:/WM42vypMの言う本質ってなんだったんだろうな。最初は書くのが楽になるしか言ってないような気がしたが
最終的にはテストが楽に書きたいに変わってたし
そも書き手1人が楽になるより全体の可読性や保守性が重要だろうし、関数のシグネチャだけじゃ表現しきれないケースがあるだろうって指摘だったろうに
2021/05/04(火) 12:28:40.76ID:9VBk1Szv
問題が散逸してるように思える。
インターフェイスではなくて、関数を渡すといっても、そのシグニチャは結局どこかで定義することになるし。
これが勘違いなのかな。delegate宣言せずにいきなりAction<string> callbackみたいに受けるんだろうか。
これはこれでめちゃくちゃ密結合な気がするんだが。
単独アセンブリとか、単独ソリューションだから成立するような気がする。

モックフレームワークは確かに難解だけど、まずモックオブジェクト自作して困ってからでいいと思うし、そもそも必要になるのは、それこそラムダで部分的に処理を突っ込むのと同じの、依存性の注入を行うからだと思う。

特別扱いしてるインターフェイスはフェアではないと言うが、インターフェイスだから特別扱いできるんだろうし。
拡張メソッド生やすのも簡単だし、Linqなんか器用にやってると思うんだけどな。
2021/05/04(火) 14:09:50.83ID:c21jxOwi
横からごめん。

>>86
>delegate宣言せずにいきなりAction<string> callbackみたいに受けるんだろうか。

delegate と Action / Func って実質的な違いってあるんだっけ。
delegate を使用しないから密結合になるってのが理解できなかった。
2021/05/04(火) 14:23:12.84ID:9VBk1Szv
>>87
実質的な違いは無いよ。

ただ、Interfaceで定義するなり、delegateを用意しておくなりしないと、
呼ぶ側、呼ばれる側(≒コールバックを返す側)どちらも、今から使う関数の引数を直接的に知っている事が前提になるんじゃない?
ホントにそれ差し替え可能なのかな。
2021/05/04(火) 15:19:18.88ID:9VBk1Szv
あいつは何なんだ。
2021/05/04(火) 15:27:57.73ID:c21jxOwi
>>88
ありがとう。
自分的には Action / Func でも delegate と同じに思えるけど、そう言う価値観もあるのだと理解した。
2021/05/04(火) 15:39:43.41ID:mq0qLgJb
> 呼ぶ側、呼ばれる側(≒コールバックを返す側)どちらも、今から使う関数の引数を直接的に知っている事が前提になるんじゃない?
その辺は別モジュールなりトップレベル関数なりに宣言すれば良いって言ってた

そこまでするならインターフェース継承したクラス宣言するのと殆ど変わらないと思うんだけどな
それこそ↓で書かれてるような、フィールドに外部から渡されたインターフェース(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みたいに受けるんだろうか。」
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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