探検
ふらっと C#,C♯,C#(初心者用) Part129 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん 転載ダメ©2ch.net (ワキゲー MMff-S7v4)
2017/06/09(金) 18:36:01.72ID:lNiKtgPwM「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part128
http://mevius.2ch.net/test/read.cgi/tech/1493730340/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
---
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
886デフォルトの名無しさん (ワキゲー MM6e-FZLt)
2017/07/14(金) 14:41:07.20ID:LqMz4TjHM >>885
主語を明記して欲しい
主語を明記して欲しい
887デフォルトの名無しさん (ワッチョイ 4023-z+eH)
2017/07/14(金) 16:17:33.09ID:PnYwerQL0 遅くなりまひたがありがとうございまふ(^^
ボッキング!(^^
ボッキング!(^^
888デフォルトの名無しさん (ワントンキン MM3e-e7nf)
2017/07/14(金) 21:11:39.26ID:TBQIVSbVM889デフォルトの名無しさん (ワッチョイ e266-S4qQ)
2017/07/14(金) 23:16:31.20ID:IdRI9jY90 しかし、C#には関数なるものは存在しない・・・
890デフォルトの名無しさん (ワッチョイ cee6-gxcq)
2017/07/15(土) 06:38:14.05ID:TwERH/ly0 メソッドっていうんだぜ
891デフォルトの名無しさん (ワッチョイ 321b-HOJV)
2017/07/15(土) 07:49:42.88ID:tXCHrVaZ0 どうもinterfaceがよくわかりません。
調べていくうち↓のサイトがありました。
http://garicchi.hatenablog.jp/entry/2014/09/11/181456
クラス設計する際、hasかasかの考え方があります。
メンバとして別なクラスを持たせるのか、継承するかですが。
ここに出てくるTVクラスとISwitchインターフェースは、
public class TV:ISwitch
となってて、TVクラスがISWitchから派生した子供のクラスのように見えてすごく違和感があります。
TVはISWitchを継承するんじゃなくISWitchをhasしてる方がはるかに考えやすいんですが。
そもそも、インターフェースってのは継承するものじゃなく、具備してるものでやっぱhasだと思うんですが、
どう考えたらいいんですかね?
調べていくうち↓のサイトがありました。
http://garicchi.hatenablog.jp/entry/2014/09/11/181456
クラス設計する際、hasかasかの考え方があります。
メンバとして別なクラスを持たせるのか、継承するかですが。
ここに出てくるTVクラスとISwitchインターフェースは、
public class TV:ISwitch
となってて、TVクラスがISWitchから派生した子供のクラスのように見えてすごく違和感があります。
TVはISWitchを継承するんじゃなくISWitchをhasしてる方がはるかに考えやすいんですが。
そもそも、インターフェースってのは継承するものじゃなく、具備してるものでやっぱhasだと思うんですが、
どう考えたらいいんですかね?
892デフォルトの名無しさん (ワッチョイ 321b-HOJV)
2017/07/15(土) 08:06:44.71ID:tXCHrVaZ0 あと上のサイトでTVのメンバ変数channelがprivateなので、触れないとか書かれてますが、
class TVそのものにChangeChannelメンバ関数を追加改変するならISwitchがあろうが無かろうが関係なく
channelを自由にいじくれるんですけど。
class TVそのものにChangeChannelメンバ関数を追加改変するならISwitchがあろうが無かろうが関係なく
channelを自由にいじくれるんですけど。
893デフォルトの名無しさん (ワキゲー MM6e-FZLt)
2017/07/15(土) 08:54:29.21ID:0zGsqKYGM テレビそのものに書くって事は人はチャンネルを変えらんない
もしくは変えるために直接テレビを触らねばならない
そうしたときにラジオが出てきたらめんどくさいことになる
interfaceは受付窓口と同じ
駅、遊園地、ライブは内部でどんな処理をしてるかそれぞれ異なったとしても利用側はどこでも受付ってinterfaceに切符を渡せば望む結果を得られる
c#は実装側の書き方がabstractとinterfaceでほぼ同じなので慣れるしかないよ
それかここだけjavaで勉強するってのもあり
もしくは変えるために直接テレビを触らねばならない
そうしたときにラジオが出てきたらめんどくさいことになる
interfaceは受付窓口と同じ
駅、遊園地、ライブは内部でどんな処理をしてるかそれぞれ異なったとしても利用側はどこでも受付ってinterfaceに切符を渡せば望む結果を得られる
c#は実装側の書き方がabstractとinterfaceでほぼ同じなので慣れるしかないよ
それかここだけjavaで勉強するってのもあり
894デフォルトの名無しさん (ワッチョイ 321b-HOJV)
2017/07/15(土) 09:24:34.53ID:tXCHrVaZ0 ChngeChannel を public にしてしまえば。
あるいはアクセサを用意すればprivateメンバに誰でもアクセス可能かと思われますが?
インターフェースというならこういうアクセサのほうがずっとしっくりきます。
そもそもアクセサってインターフェースですよねwww
たとえば既製のクラスにインターフェースを追加したいときってどうすればいいんでしょうか?
よく既製のクラスを拡張するのに、基本クラスのコードには手をつけず、継承して、機能追加しますよね。
インターフェースにこういう発想は根本的に間違ってるのかな?
でも、上のテレビで、址から赤外線リモコンインターフェースを追加したいと、
そして、元のTVクラスのソースヘッダは触れないときはどーすればいいか?です。
あるいはアクセサを用意すればprivateメンバに誰でもアクセス可能かと思われますが?
インターフェースというならこういうアクセサのほうがずっとしっくりきます。
そもそもアクセサってインターフェースですよねwww
たとえば既製のクラスにインターフェースを追加したいときってどうすればいいんでしょうか?
よく既製のクラスを拡張するのに、基本クラスのコードには手をつけず、継承して、機能追加しますよね。
インターフェースにこういう発想は根本的に間違ってるのかな?
でも、上のテレビで、址から赤外線リモコンインターフェースを追加したいと、
そして、元のTVクラスのソースヘッダは触れないときはどーすればいいか?です。
895デフォルトの名無しさん (ワキゲー MM6e-FZLt)
2017/07/15(土) 09:35:28.99ID:IcmPd+odM そしたら人が直接テレビを触らねばならない
人は必ず有効値を入れるとは限らない
故障の原因になり得る
触りたくないのであれば既存のクラスを継承してinterfaceを貼り付けた新しいクラスを作ればよい
人は必ず有効値を入れるとは限らない
故障の原因になり得る
触りたくないのであれば既存のクラスを継承してinterfaceを貼り付けた新しいクラスを作ればよい
896デフォルトの名無しさん (アウアウウー Sa08-1CH6)
2017/07/15(土) 09:45:52.69ID:K6HEWwBua そのサイトの例が悪いとしか言えない
ISwitchじゃなくてISwitchableとでも考えればいい
TVはスイッチを持っている!やTVはスイッチだ!
じゃなくてTVはチャンネルを切り替えられるぐらいのこと
ISwitchじゃなくてISwitchableとでも考えればいい
TVはスイッチを持っている!やTVはスイッチだ!
じゃなくてTVはチャンネルを切り替えられるぐらいのこと
897デフォルトの名無しさん (ワッチョイ e266-1CH6)
2017/07/15(土) 10:10:22.92ID:uJRk81Er0 >>894
インターフェイスは継承関係のないクラスたちを、同じ手続きで操作する為の物なので…
そのサイトの例だと対象が1つなので、確かにアクセサの説明かの様になってしまっている
.NET Reference Sourceで既存インターフェイスの使われ方を見てみるのも良いと思う、複数実装とか
継承か委譲かというのはまた少し異なる話…というか妙な例えは往々にして本質からずれる気がする
インターフェイスは継承関係のないクラスたちを、同じ手続きで操作する為の物なので…
そのサイトの例だと対象が1つなので、確かにアクセサの説明かの様になってしまっている
.NET Reference Sourceで既存インターフェイスの使われ方を見てみるのも良いと思う、複数実装とか
継承か委譲かというのはまた少し異なる話…というか妙な例えは往々にして本質からずれる気がする
898デフォルトの名無しさん (ワッチョイ 6e96-z+eH)
2017/07/15(土) 10:12:54.91ID:miTEGb900 このへんで詰まるアホって大抵ネットで拾ってきた一つの例題だけをこねくり回そうとして話が明後日に飛んでくよね
899デフォルトの名無しさん (アウアウウー Sa08-1CH6)
2017/07/15(土) 10:27:42.98ID:K6HEWwBua いやいや誰でも最初はこんなもんよ
多重継承の代わりと言われたinterfaceの内容知った時の落胆...
非力すぎて涙が出たわ
多重継承の代わりと言われたinterfaceの内容知った時の落胆...
非力すぎて涙が出たわ
900デフォルトの名無しさん (ワントンキン MM3e-roJc)
2017/07/15(土) 10:32:45.07ID:qqsDF0t/M 多重継承するとメモリレイアウトがおかしくなって効率悪すぎ
↓
じゃあ継承はひとつだけにしようか
↓
でもフィールドなければ問題なくね?
↓
ならフィールドなしなら多重継承していいよ
↓
悪く無いねっていうかメソッド実装も衝突するから要らなくないか
↓
なんだこれ凄くイイぞコーディングがめちゃ捗る
↓
あまりにも便利だから名前付けて言語機能にしよう
↓
インターフェース誕生
↓
じゃあ継承はひとつだけにしようか
↓
でもフィールドなければ問題なくね?
↓
ならフィールドなしなら多重継承していいよ
↓
悪く無いねっていうかメソッド実装も衝突するから要らなくないか
↓
なんだこれ凄くイイぞコーディングがめちゃ捗る
↓
あまりにも便利だから名前付けて言語機能にしよう
↓
インターフェース誕生
901デフォルトの名無しさん (ブーイモ MM5a-1CH6)
2017/07/15(土) 10:52:25.26ID:wHixeaDXM 多重継承が捨てられたのはそんな理由じゃない
ググってから出直せ
ググってから出直せ
902デフォルトの名無しさん (ワントンキン MM3e-roJc)
2017/07/15(土) 10:54:05.46ID:qqsDF0t/M >>901
どんな理由だよ
どんな理由だよ
903デフォルトの名無しさん (ブーイモ MM5a-1CH6)
2017/07/15(土) 10:54:39.28ID:wHixeaDXM ググれよ
904デフォルトの名無しさん (ワントンキン MM3e-roJc)
2017/07/15(土) 11:15:41.99ID:qqsDF0t/M ググったがわからんかった
解説して
解説して
905デフォルトの名無しさん (ワキゲー MM6e-FZLt)
2017/07/15(土) 11:27:09.38ID:nQVjhHv2M >>900
javaのデフォルト実装についてコメント願います
javaのデフォルト実装についてコメント願います
906デフォルトの名無しさん (ワントンキン MM3e-roJc)
2017/07/15(土) 11:32:14.35ID:qqsDF0t/M >>905
まああってもいいかな〜ぐらいのノリ
まああってもいいかな〜ぐらいのノリ
907デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 13:41:14.84ID:YwzOlwqa0 結局テストするときはマトリックス書いて全部抜けが無いようにしなきゃいけないからインターフェイスなんて邪魔だけどな
継承なんてありがたがってるやつはまともなテストなんか要求されないゴミ環境にいるとしか考えられない
継承なんてありがたがってるやつはまともなテストなんか要求されないゴミ環境にいるとしか考えられない
908デフォルトの名無しさん (ワントンキン MM3e-roJc)
2017/07/15(土) 14:10:33.48ID:qqsDF0t/M >>907
まともなテストをしたことがない人って不思議とみんなこういうこと言うよね
まともなテストをしたことがない人って不思議とみんなこういうこと言うよね
909デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 14:14:37.87ID:YwzOlwqa0 >>908
そうかな?
じゃあインターフェイスから派生してる処理は全部でいくつあってそれぞれいつ呼ばれるの?
一覧になってる?
こんな当たり前のこと聞かれても
本能に任せて作っちゃったもんだから
全く説明できないでしょ?
じゃ、明日までに一覧作ってテストやり直してくれるかなぁ?
って言われちゃうよ
そうかな?
じゃあインターフェイスから派生してる処理は全部でいくつあってそれぞれいつ呼ばれるの?
一覧になってる?
こんな当たり前のこと聞かれても
本能に任せて作っちゃったもんだから
全く説明できないでしょ?
じゃ、明日までに一覧作ってテストやり直してくれるかなぁ?
って言われちゃうよ
910デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 14:18:16.87ID:YwzOlwqa0 単純に作るだけのアマチュアから脱却しなくてはならない
911デフォルトの名無しさん (ワントンキン MM88-roJc)
2017/07/15(土) 14:22:44.84ID:4WiC8QMiM >>909
そんなのすぐにわかるよ
わからないならそれはお前にスキルがないだけだろ
というか君の認識は全く逆だよ
そういった「機能が幾つあるのか」「どんな時に使われるのか」ってのを明確にするためにインターフェースを使うんだろ
インターフェースを使ったらそれがわからなくなるという発言は全くもって理解が足りてない証拠
インターフェースも使わずに密結合しまくった汚いシステムだと
そもそも「どっからどこまでが1つの機能なの?」って問いに明確に答えられない
そして境界がわからないから、「幾つあるか」も数えられないし
それが「どんな時にどれが有効になるのか」もわからない(どれ?という問いは当然だけどそれぞれが明確に区別できる前提がないと答えられない)
そんなのすぐにわかるよ
わからないならそれはお前にスキルがないだけだろ
というか君の認識は全く逆だよ
そういった「機能が幾つあるのか」「どんな時に使われるのか」ってのを明確にするためにインターフェースを使うんだろ
インターフェースを使ったらそれがわからなくなるという発言は全くもって理解が足りてない証拠
インターフェースも使わずに密結合しまくった汚いシステムだと
そもそも「どっからどこまでが1つの機能なの?」って問いに明確に答えられない
そして境界がわからないから、「幾つあるか」も数えられないし
それが「どんな時にどれが有効になるのか」もわからない(どれ?という問いは当然だけどそれぞれが明確に区別できる前提がないと答えられない)
912デフォルトの名無しさん (ワントンキン MM88-roJc)
2017/07/15(土) 14:27:02.76ID:4WiC8QMiM さらにいうと
インターフェースで疎結合を維持すれば自動テストを構築できる
そうすれば明日までと言わずに1時間もあれば回帰テストをやり直せる
インターフェースを使わないガチガチに密結合したシステムではこうはいかない
テストだけでも丸一日、下手すれば数日はかかる
インターフェースで疎結合を維持すれば自動テストを構築できる
そうすれば明日までと言わずに1時間もあれば回帰テストをやり直せる
インターフェースを使わないガチガチに密結合したシステムではこうはいかない
テストだけでも丸一日、下手すれば数日はかかる
913デフォルトの名無しさん (ワントンキン MM88-roJc)
2017/07/15(土) 14:28:56.54ID:4WiC8QMiM >>910
まさに君のことだね
まさに君のことだね
914デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 14:32:21.17ID:YwzOlwqa0915デフォルトの名無しさん (ワッチョイ 4691-z+eH)
2017/07/15(土) 14:33:55.74ID:wIL5gJgE0 個人だとインターフェース使う機会があまりないなぁ
916デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 14:34:40.29ID:YwzOlwqa0 ここから俺とお前で
(*゚∀゚)明確になるなる!
(*゚∀゚)明確にならないならない!
(*゚∀゚)なるなる!
(*゚∀゚)ならないならない!
って1000レスぐらい想定www
(*゚∀゚)明確になるなる!
(*゚∀゚)明確にならないならない!
(*゚∀゚)なるなる!
(*゚∀゚)ならないならない!
って1000レスぐらい想定www
917デフォルトの名無しさん (ワントンキン MM88-roJc)
2017/07/15(土) 14:37:21.67ID:4WiC8QMiM918デフォルトの名無しさん (スフッ Sd70-Icm7)
2017/07/15(土) 14:38:08.00ID:qtlS5nEUd switchでその手の分岐かますと汚くて保守性低いコードになるから嫌い
919デフォルトの名無しさん (ワントンキン MM88-roJc)
2017/07/15(土) 14:43:55.40ID:4WiC8QMiM タイプコードswitchはたいていの場合おなじようなswitchをコードのあらゆるところにばら撒いてどこで何やってんだ状態(いわゆるスイッチヘル)に陥る
インターフェースを使うとそのようなswitchは一箇所にまとめられたり、設定ファイルに抽出されたり、コーディング規約に従って動作するようになり、誰が見てもはっきりとどんな時のどの実装が使われるかを理解できるようになる
このように構造化されていれば機能一覧や使用条件などをリアルタイムに出力することすらできる
switchとの格闘で費やしていた無駄な時間をバカンスに割当てることもできるのだ
インターフェースを使うとそのようなswitchは一箇所にまとめられたり、設定ファイルに抽出されたり、コーディング規約に従って動作するようになり、誰が見てもはっきりとどんな時のどの実装が使われるかを理解できるようになる
このように構造化されていれば機能一覧や使用条件などをリアルタイムに出力することすらできる
switchとの格闘で費やしていた無駄な時間をバカンスに割当てることもできるのだ
920デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 14:44:31.73ID:YwzOlwqa0921デフォルトの名無しさん (スフッ Sd70-Icm7)
2017/07/15(土) 14:47:19.82ID:qtlS5nEUd >>920
IDEで追えるだろ全部
IDEで追えるだろ全部
922デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 14:47:37.52ID:YwzOlwqa0923デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 14:48:35.92ID:YwzOlwqa0 >>921
死にコードもわかる?
死にコードもわかる?
924デフォルトの名無しさん (ワントンキン MM88-roJc)
2017/07/15(土) 14:50:14.71ID:4WiC8QMiM >>920
間違いがあるのはswitchを多用する複雑怪奇な方法
間違いがないのはインターフェースを使ってエレガントな方法
switchでパターンがわかるのは1箇所だけ
実際にはswitchの数だけ掛け算したパターンを把握しなければならない
3分岐のswitchが4箇所で使われていたらそれだけで3 * 3 * 3 * 3 = 81パターンの実行パスが考えられる
このコードベースで処理パターンと条件を列挙するのは事実上無理と言っていい
ところがインターフェースを使った方法ならswitchは1箇所で済むのでコードパスの爆発は起こらない
機能一覧と使用条件を洗い出すのもとても容易になる
間違いがあるのはswitchを多用する複雑怪奇な方法
間違いがないのはインターフェースを使ってエレガントな方法
switchでパターンがわかるのは1箇所だけ
実際にはswitchの数だけ掛け算したパターンを把握しなければならない
3分岐のswitchが4箇所で使われていたらそれだけで3 * 3 * 3 * 3 = 81パターンの実行パスが考えられる
このコードベースで処理パターンと条件を列挙するのは事実上無理と言っていい
ところがインターフェースを使った方法ならswitchは1箇所で済むのでコードパスの爆発は起こらない
機能一覧と使用条件を洗い出すのもとても容易になる
925デフォルトの名無しさん (ワントンキン MM88-roJc)
2017/07/15(土) 14:53:15.41ID:4WiC8QMiM >>922
コード全部ちょうだい
コードってのはインターフェース使ってOOPで書かれたコードのことな
あっという間に数えてやるよ
ちなみにお前の書いた汚いswitchスパゲティは意味わからんからいらないよ
それはコードじゃなくてゴミだから
コード全部ちょうだい
コードってのはインターフェース使ってOOPで書かれたコードのことな
あっという間に数えてやるよ
ちなみにお前の書いた汚いswitchスパゲティは意味わからんからいらないよ
それはコードじゃなくてゴミだから
926デフォルトの名無しさん (ワントンキン MM88-roJc)
2017/07/15(土) 14:59:32.85ID:4WiC8QMiM >>923
容易に判明するよ
インターフェースを使っていれば生成箇所だけを見れば判断ができる
場合によってはソースや設定ファイルを見ただけでわかるし
生成箇所が変数に依存して実行するまでわからない場合も生成箇所だけにログを仕込めばわかる
そして何より重要なポイントは仮に死にコードだとしても全く害がないということ
スイッチヘルだと全てのコードを追跡しなければならない
何時間も何日もかけてソースを読んで
ログを仕込む作業何百回と繰り返し
そのログを仕込む作業で凡ミスしてないかの確認を要求されて
また何時間も何日もかけて回帰テストを手作業で行い
スイッチヘルだと死にコードだからと言って無視することはできない
なぜならスイッチヘルでは死んでるコードと死んでないコードが密結合していて分けて考えることが極めて難しいから一緒くたに行きていると判断するしかないからね
もう考えただけでも嫌になってくるよ
容易に判明するよ
インターフェースを使っていれば生成箇所だけを見れば判断ができる
場合によってはソースや設定ファイルを見ただけでわかるし
生成箇所が変数に依存して実行するまでわからない場合も生成箇所だけにログを仕込めばわかる
そして何より重要なポイントは仮に死にコードだとしても全く害がないということ
スイッチヘルだと全てのコードを追跡しなければならない
何時間も何日もかけてソースを読んで
ログを仕込む作業何百回と繰り返し
そのログを仕込む作業で凡ミスしてないかの確認を要求されて
また何時間も何日もかけて回帰テストを手作業で行い
スイッチヘルだと死にコードだからと言って無視することはできない
なぜならスイッチヘルでは死んでるコードと死んでないコードが密結合していて分けて考えることが極めて難しいから一緒くたに行きていると判断するしかないからね
もう考えただけでも嫌になってくるよ
927デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 15:05:09.36ID:YwzOlwqa0 >>925
それはすべてのコードを見ないと分からないという敗北宣言でいいのかな?
それはすべてのコードを見ないと分からないという敗北宣言でいいのかな?
928デフォルトの名無しさん (ワッチョイ 934b-z+eH)
2017/07/15(土) 15:10:16.49ID:rcsbZkMo0 まーた始まった
929デフォルトの名無しさん (ワントンキン MM88-roJc)
2017/07/15(土) 15:11:54.72ID:4WiC8QMiM >>927
そう言っておかないとお前後出しするじゃん
じゃあ逆に
void main() {
switch (unko) {
case 1: foo();
case 2: bar();
case 3: baz(); } }
このシステムにおいてどの機能がいつ使われるか全て列挙して
もちろん関数の呼び出し先にも無数のswitchがあるけど聞かれたことしか教えないよ
そう言っておかないとお前後出しするじゃん
じゃあ逆に
void main() {
switch (unko) {
case 1: foo();
case 2: bar();
case 3: baz(); } }
このシステムにおいてどの機能がいつ使われるか全て列挙して
もちろん関数の呼び出し先にも無数のswitchがあるけど聞かれたことしか教えないよ
930デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 15:13:00.41ID:YwzOlwqa0 >>928
だろ?
(*゚∀゚)なるなる!
(*゚∀゚)ならないならない!
ウォーズになっただろ?
そもそも根拠も示さないで
明確になるなんて嘘つくのが悪い
switch case以上のものなんかできねぇよ
だろ?
(*゚∀゚)なるなる!
(*゚∀゚)ならないならない!
ウォーズになっただろ?
そもそも根拠も示さないで
明確になるなんて嘘つくのが悪い
switch case以上のものなんかできねぇよ
931デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 15:14:20.05ID:YwzOlwqa0 >>929
君、俺の質問に答えるのは止めたの?
君、俺の質問に答えるのは止めたの?
932デフォルトの名無しさん (ワントンキン MM88-roJc)
2017/07/15(土) 15:14:29.69ID:4WiC8QMiM >>930
根拠は示してるがお前が無視してるだけだろ
根拠は示してるがお前が無視してるだけだろ
933デフォルトの名無しさん (ワントンキン MM88-roJc)
2017/07/15(土) 15:16:56.21ID:4WiC8QMiM934デフォルトの名無しさん (スフッ Sd70-Icm7)
2017/07/15(土) 15:16:58.46ID:qtlS5nEUd 底辺SIer丸出しで草
まあ初心者なら混乱するよな、処理追おうとして読んでもインターフェースの呼び出ししか書いてないからswitchのほうが分かりやすいってなる
まあ初心者なら混乱するよな、処理追おうとして読んでもインターフェースの呼び出ししか書いてないからswitchのほうが分かりやすいってなる
935デフォルトの名無しさん (アウアウカー Sa0a-kIy9)
2017/07/15(土) 15:20:47.88ID:Ha2IzMP7a リポジトリが泣いとるわ
936デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 15:22:43.89ID:YwzOlwqa0 >>934
いや、明確に判断するにはインターフェイスが継承されてるクラスをくまなく追っかけて呼び出されてる箇所マークして
死にコードと生きコードを分けなきゃならんでしょ?
こんな面倒臭いものをなんで有難がってるのか?
頭がおかしいのか?
switvh caseが問題とかいってるけどお前の脳味噌のが問題だよwww
いや、明確に判断するにはインターフェイスが継承されてるクラスをくまなく追っかけて呼び出されてる箇所マークして
死にコードと生きコードを分けなきゃならんでしょ?
こんな面倒臭いものをなんで有難がってるのか?
頭がおかしいのか?
switvh caseが問題とかいってるけどお前の脳味噌のが問題だよwww
937デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 15:25:53.28ID:YwzOlwqa0 >>933
全部見ないと分かんないって言ったよね?
あの一言で僕の勝ち
君の理論は腐っている
そして全部みなきゃ分からないという君の主張は正しい
だけどそんな複雑なものを好んで使おうとしてる君の脳みそは腐っている
全部見ないと分かんないって言ったよね?
あの一言で僕の勝ち
君の理論は腐っている
そして全部みなきゃ分からないという君の主張は正しい
だけどそんな複雑なものを好んで使おうとしてる君の脳みそは腐っている
938デフォルトの名無しさん (ワッチョイ ac32-5NcT)
2017/07/15(土) 15:29:35.43ID:SkRXwKg10 技術論から離れて揚げ足取り始めたらお終いだろ。
939デフォルトの名無しさん (ワッチョイ 9623-MRQN)
2017/07/15(土) 15:39:40.47ID:RkJDHgF90 前回の再復刻がふたつ同時だったから、以降はふたつずつ追加されるのかと思ったら今回はひとつだけで残念
実は実装間隔が半分に短縮されている…とかじゃないよね?
実は実装間隔が半分に短縮されている…とかじゃないよね?
940デフォルトの名無しさん (ワッチョイ 9623-MRQN)
2017/07/15(土) 15:39:56.94ID:RkJDHgF90 すまん、誤爆
941デフォルトの名無しさん (ワッチョイ e9c0-S4qQ)
2017/07/15(土) 16:00:49.45ID:Npc2MKz10 社内でユニットテスト定着させようとしたらこんな感じの話がズレている層に拒否られたの思い出したわ
942デフォルトの名無しさん (スフッ Sd70-Icm7)
2017/07/15(土) 16:02:37.05ID:qtlS5nEUd .NETのソース見ればいいよ、switch連打じゃなくてインターフェースばっかだから
943デフォルトの名無しさん (ワッチョイ ac3a-WfmG)
2017/07/15(土) 17:47:55.79ID:rJTB/Aaz0 このクソ最近暴れてた奴だろ
クソの相手するな
スカトロ趣味かオメー
クソの相手するな
スカトロ趣味かオメー
944デフォルトの名無しさん (ワキゲー MM6e-FZLt)
2017/07/15(土) 18:08:42.19ID:+h55DWxyM 気づいたらすげー流れてるなぁ
関心があると考えたらいいこととも思えるけど
関心があると考えたらいいこととも思えるけど
945デフォルトの名無しさん (ドコグロ MM36-KaH7)
2017/07/15(土) 18:10:54.37ID:sSrRYJ/sM 一画面で収まるならswitch使う
946遊園地 (ワッチョイ d896-1jjp)
2017/07/15(土) 18:11:43.15ID:PtVLhebb0 xp C#2008
メモリが30Mなんだけど、そんなもんなん?(正常に動きます)
メモリが30Mなんだけど、そんなもんなん?(正常に動きます)
947デフォルトの名無しさん (スッップ Sd70-YOS7)
2017/07/15(土) 18:59:17.09ID:3Bm+zU1dd >>922
あーこれjavaだろwww
あーこれjavaだろwww
948デフォルトの名無しさん (アウアウイー Sa81-lKTh)
2017/07/15(土) 19:24:08.20ID:1X9hghUUa >>891
要は、本来全然違う物を同じ物とみなして使いたい場合が結構あるってこと。
例えば、
例1:
外部機器との通信プログラムで、USBもRS-232Cもイーサも「通信ポート」とみなして
同じように扱えるようにしたい
例2:
ゲームのプログラムで、物理的なゲームコントローラも、過去の操作の記録データも、
AIによる操作も同じように扱えるようにしたい
インターフェイスは同じ物とみなされるために必要な要件を定義するためのもの。
要は、本来全然違う物を同じ物とみなして使いたい場合が結構あるってこと。
例えば、
例1:
外部機器との通信プログラムで、USBもRS-232Cもイーサも「通信ポート」とみなして
同じように扱えるようにしたい
例2:
ゲームのプログラムで、物理的なゲームコントローラも、過去の操作の記録データも、
AIによる操作も同じように扱えるようにしたい
インターフェイスは同じ物とみなされるために必要な要件を定義するためのもの。
949デフォルトの名無しさん (ワッチョイ 3043-1bhL)
2017/07/15(土) 19:37:37.93ID:dGaj0Gpt0 C#使っててinterfaceの有用さを実感したいなら、IEnumerable<T>を実装したクラスたちについて調べるといいと思う
(そして同時にジェネリックのありがたみもわかる)
(そして同時にジェネリックのありがたみもわかる)
950デフォルトの名無しさん (アウアウウー Sa08-1CH6)
2017/07/15(土) 20:01:15.09ID:sSghns+0a スレが進んでると思えば…
ID:YwzOlwqa0はNGにしておけばいいよ
テストやったことない人の意見はガン無視でいい
ID:YwzOlwqa0はNGにしておけばいいよ
テストやったことない人の意見はガン無視でいい
951デフォルトの名無しさん (ワキゲー MM6e-FZLt)
2017/07/15(土) 20:18:35.24ID:+h55DWxyM 頑固なヤツに成長はない
そのまま消えていただければ幸いです
そのまま消えていただければ幸いです
952デフォルトの名無しさん (ドコグロ MM36-KaH7)
2017/07/15(土) 20:28:24.07ID:sSrRYJ/sM enumrableとenumratorの発音にいつも困る。
953デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 21:29:22.37ID:nacMKYtH0954デフォルトの名無しさん (ブーイモ MM5a-1CH6)
2017/07/15(土) 21:31:14.89ID:wHixeaDXM955デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 21:35:27.08ID:nacMKYtH0956デフォルトの名無しさん (ブーイモ MM5a-1CH6)
2017/07/15(土) 21:38:17.50ID:wHixeaDXM 俺にレスしても無駄だよ
お前の超絶技巧で.net framewaorkをinterface無しで再実装してからにしてくれ
お前の超絶技巧で.net framewaorkをinterface無しで再実装してからにしてくれ
957デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 21:40:02.60ID:nacMKYtH0958デフォルトの名無しさん (ワキゲー MM6e-FZLt)
2017/07/15(土) 21:42:12.07ID:+h55DWxyM NGName:ワッチョイ c469
スッキリ!
スッキリ!
959デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 21:43:55.73ID:nacMKYtH0 まあ、お前の言いたいことはわかるよ
みずほ銀行のシステムをcobol無しで再実装してからcobolの批判をしてくれないか?
ってことだろ?
みずほ銀行のシステムをcobol無しで再実装してからcobolの批判をしてくれないか?
ってことだろ?
960デフォルトの名無しさん (ワッチョイ e6ea-Icm7)
2017/07/15(土) 21:49:16.74ID:g8mCRq5Q0 COBOLの話がすぐ出てくる辺りマジで底辺か、多分ほとんどの奴はお前と話合わないからすっこんでろ
961デフォルトの名無しさん (ワッチョイ c469-zKZC)
2017/07/15(土) 21:51:37.25ID:nacMKYtH0962デフォルトの名無しさん (ワッチョイ e6ea-Icm7)
2017/07/15(土) 21:53:48.27ID:g8mCRq5Q0 >>961
誰でもいいじゃん、匿名掲示板なんだしお前と議論する気なんて一切ないし
誰でもいいじゃん、匿名掲示板なんだしお前と議論する気なんて一切ないし
963デフォルトの名無しさん (ワキゲー MM6e-FZLt)
2017/07/15(土) 22:10:48.06ID:+h55DWxyM964デフォルトの名無しさん (ワッチョイ a76f-xIn+)
2017/07/16(日) 01:10:42.69ID:YiC7eEBy0 >>959
いくら出すの?
いくら出すの?
965デフォルトの名無しさん (ワッチョイ 741b-HOJV)
2017/07/16(日) 06:41:53.08ID:S+S2REts0 >>928
たとえばclass PCを定義したいと、
インターフェースとしてUSB、HDMI、DP、PCI-exを持ってる。
この場合
class PC: interface USB, HDMI, DP, PCI-ex
より。
PCはUSBやHDMIを具備していると解釈するのが自然でしょ。つまり
class PC{
public:
Interface USB{
};
Interface HDMI{
};
Interface DP{
};
interface PCI-ex{
};
};
とでもした方が感覚的にしっくりきませんか?
アクセス権としてはclass 内部でInterface宣言されたものはPCのリソースに無条件でアクセスできる。
としたほうが直感的にわかりやすくないですか?
USBやHDMIがPCを出産するってのはあまりに無理がある。
たとえばclass PCを定義したいと、
インターフェースとしてUSB、HDMI、DP、PCI-exを持ってる。
この場合
class PC: interface USB, HDMI, DP, PCI-ex
より。
PCはUSBやHDMIを具備していると解釈するのが自然でしょ。つまり
class PC{
public:
Interface USB{
};
Interface HDMI{
};
Interface DP{
};
interface PCI-ex{
};
};
とでもした方が感覚的にしっくりきませんか?
アクセス権としてはclass 内部でInterface宣言されたものはPCのリソースに無条件でアクセスできる。
としたほうが直感的にわかりやすくないですか?
USBやHDMIがPCを出産するってのはあまりに無理がある。
966デフォルトの名無しさん (ワッチョイ 741b-HOJV)
2017/07/16(日) 06:43:38.07ID:S+S2REts0 つづき
工業製品のシミュレートを考えると継承でインターフェースを増やす、とか機能を増やすとかがしっくりこない。
新製品が旧製品を継承するってならOKだけど、
ある世代のみの製品を定義するなら、
基本モデルに搭載された機能があって、
そこにオプションが追加されて、製品グレードが構成される方がしっくり来ませんか?
この機能追加が継承で実現されるってのはしっくり来ない。
>USBもRS-232Cもイーサも「通信ポート」とみなして
>同じように扱えるようにしたい
これこそ各種インターフェースが通信ポートと派生関係 (is a)関係にある話で、
それらが搭載される大本のPCを派生関係に巻き込むのはおかしな話じゃないですか?
PCから見て同じ通信機能を有するポートと見なしたいだけならエイリアスにでもするとか。
通信ポートがセクロスしてPC出産するなんて考える方が無理ボ
工業製品のシミュレートを考えると継承でインターフェースを増やす、とか機能を増やすとかがしっくりこない。
新製品が旧製品を継承するってならOKだけど、
ある世代のみの製品を定義するなら、
基本モデルに搭載された機能があって、
そこにオプションが追加されて、製品グレードが構成される方がしっくり来ませんか?
この機能追加が継承で実現されるってのはしっくり来ない。
>USBもRS-232Cもイーサも「通信ポート」とみなして
>同じように扱えるようにしたい
これこそ各種インターフェースが通信ポートと派生関係 (is a)関係にある話で、
それらが搭載される大本のPCを派生関係に巻き込むのはおかしな話じゃないですか?
PCから見て同じ通信機能を有するポートと見なしたいだけならエイリアスにでもするとか。
通信ポートがセクロスしてPC出産するなんて考える方が無理ボ
967デフォルトの名無しさん (ワッチョイ 2623-KaH7)
2017/07/16(日) 06:55:25.86ID:QwczUPDI0 何論点に話してるがしらんけど、
部品を組み合わせるんだからhas aで持たせておけよ。
こんなのに継承なんか使ったら破綻するわ。
部品を組み合わせるんだからhas aで持たせておけよ。
こんなのに継承なんか使ったら破綻するわ。
968デフォルトの名無しさん (ワッチョイ ec90-k9rv)
2017/07/16(日) 07:36:55.65ID:DFiYZAtb0 is-aって電子回路で例えるとICの非公開の隠しコマンド使うようなもんだからなあ
その密結合した側からは百歩譲っていいとしても他からそのICを使うと整合が取れなくて
マニュアル通りの動作をしないような事態になったらほとんど手直し不能と言う
その密結合した側からは百歩譲っていいとしても他からそのICを使うと整合が取れなくて
マニュアル通りの動作をしないような事態になったらほとんど手直し不能と言う
969デフォルトの名無しさん (スップ Sd02-sREA)
2017/07/16(日) 09:15:00.53ID:HardVP8Ld インターフェイスとしては、
IDataIOConnectable みたいなのを持つのでは?
IDataIOConnectable みたいなのを持つのでは?
970デフォルトの名無しさん (ワッチョイ e266-S4qQ)
2017/07/16(日) 11:21:50.59ID:tS49D6IL0 C#は移譲とプロバティーとインターフェースを使って、C++の多重継承と外形上同じものを構築できて
しかもより安全なんだよね
道具は使いようだよ
しかもより安全なんだよね
道具は使いようだよ
971デフォルトの名無しさん (ワッチョイ ec90-k9rv)
2017/07/16(日) 12:03:25.24ID:7Dogvjad0972デフォルトの名無しさん (ワッチョイ da4b-MRQN)
2017/07/16(日) 14:36:34.61ID:HcadT/Qg0 誰か>>965-966について解説をオナシャス
973デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/16(日) 14:42:13.82ID:ZbG5GhXO0 よくわからないなら特に理解する必要はないよ
>>967が正解だし
>>967が正解だし
974デフォルトの名無しさん (ドコグロ MM2e-eqnq)
2017/07/16(日) 14:59:39.16ID:qZs6BFdqM きませんかと言われてもきませんとしか言えんわな
Interfaceを理解することが目的じゃないならチラ裏いき
理解したいならとりあえず自分で利用したコードをかけとしか
Interfaceを理解することが目的じゃないならチラ裏いき
理解したいならとりあえず自分で利用したコードをかけとしか
975デフォルトの名無しさん (ワッチョイ 6e69-zKZC)
2017/07/16(日) 18:58:11.86ID:N3AOnliK0 機能は理解していても適用でゴミにするんだな
976デフォルトの名無しさん (ワッチョイ f6e4-esLu)
2017/07/17(月) 00:13:06.25ID:rrWwnLpM0 そもそもPCクラスが直接USBインターフェイスを実装する必要なんてないし
USBインターフェイスを実装したUSB1クラスとかUSB2クラスをプロパティで持つのが普通だろ
IO装置としてのインターフェースって用語と、プログラミング用語としてのそれを混同してるとしか思えん
USBインターフェイスを実装したUSB1クラスとかUSB2クラスをプロパティで持つのが普通だろ
IO装置としてのインターフェースって用語と、プログラミング用語としてのそれを混同してるとしか思えん
977デフォルトの名無しさん (ワッチョイ 2623-KaH7)
2017/07/17(月) 01:30:28.73ID:ka/V7JjN0 そもそも、USB端子2つ持ってたらどうするの?
PC自体にUSBの機能を持たせたら、usb1と2の区別ができない。
よって、そういった場合を考慮すると、部品化して、プロパティとしてusb1、usb2を持たせるのが正しい。
終了。
PC自体にUSBの機能を持たせたら、usb1と2の区別ができない。
よって、そういった場合を考慮すると、部品化して、プロパティとしてusb1、usb2を持たせるのが正しい。
終了。
978デフォルトの名無しさん (スププ Sd70-KmKO)
2017/07/17(月) 08:04:00.32ID:Ijzu2DgTd この話どーせCOMやActiveXの時代までさかのぼるんでしょ?
979デフォルトの名無しさん (ワッチョイ 8ee3-S4qQ)
2017/07/17(月) 12:18:55.20ID:tm+LZBsa0 Visual Studio2017でタプルを使いたいのですが
(ネットで公開されている)正しいコードを入力しても「valueTupleがインポートされていません」
と言われてしまいます。
ターゲットフレームワークがタプルをサポートしているものより古い4.6.1であるのが原因だと思うのですが、
プロジェクトのプロパティには4.6.1までしか表示できず、visual studioの更新もいろいろ試したのですが(CreatorsUpdateなど)
どうしても4.7を採用できません。
どうしたらよいでしょうか OSはwin10です
(ネットで公開されている)正しいコードを入力しても「valueTupleがインポートされていません」
と言われてしまいます。
ターゲットフレームワークがタプルをサポートしているものより古い4.6.1であるのが原因だと思うのですが、
プロジェクトのプロパティには4.6.1までしか表示できず、visual studioの更新もいろいろ試したのですが(CreatorsUpdateなど)
どうしても4.7を採用できません。
どうしたらよいでしょうか OSはwin10です
980デフォルトの名無しさん (ワッチョイ ec90-k9rv)
2017/07/17(月) 12:32:26.53ID:+UBTk6HR0 >>979
新しいプロジェクトの作成画面で.NET Framework 4.7になってないとか
もし古い.NETでプロジェクトを作成してしまっていたらソリューションを右クリック→プロパティ→アプリケーション
で、ターゲットフレームワークを.NET Framwork 4.7に変更する
新しいプロジェクトの作成画面で.NET Framework 4.7になってないとか
もし古い.NETでプロジェクトを作成してしまっていたらソリューションを右クリック→プロパティ→アプリケーション
で、ターゲットフレームワークを.NET Framwork 4.7に変更する
981デフォルトの名無しさん (アウアウウー Sa08-1CH6)
2017/07/17(月) 12:45:01.80ID:50vkYHara >>979
インストーラーから4.7開発ツールインストールしてないなら当たり前
インストーラーから4.7開発ツールインストールしてないなら当たり前
982479 (ワッチョイ 8ee3-S4qQ)
2017/07/17(月) 12:55:32.89ID:tm+LZBsa0983デフォルトの名無しさん (アウアウウー Sa08-1CH6)
2017/07/17(月) 12:57:07.69ID:50vkYHara ただのアップデートしただけじゃ4.7は使えない
インストーラーから個別のコンポーネント選んでインストール
インストーラーから個別のコンポーネント選んでインストール
984979 (ワッチョイ 8ee3-S4qQ)
2017/07/17(月) 13:13:20.69ID:tm+LZBsa0 解決しました ありがとうございます
個別のコンポーネントを選択していませんでした。
個別のコンポーネントを選択していませんでした。
985デフォルトの名無しさん (ワッチョイ 4128-NvYO)
2017/07/17(月) 13:59:58.84ID:T9aCvdZt0 複数の読み込みタスクと一つの書き込みタスクを並列で動かすとき、
書き込みタスクを優先させて動かしたいんだけど、どうするのが正解?
タスクのプライオリティ上げるのかと思ったけど、調べるとどうも違いそうで。
ConcurrentExclusiveSchedulerPairとかのスケジューラをうまく使うのかな?
書き込みタスクを優先させて動かしたいんだけど、どうするのが正解?
タスクのプライオリティ上げるのかと思ったけど、調べるとどうも違いそうで。
ConcurrentExclusiveSchedulerPairとかのスケジューラをうまく使うのかな?
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
- 俺のおちんちん舐めたい女の子いる?
- くそしてかがやけ
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
