探検
ふらっと C#,C♯,C#(初心者用) Part129 [無断転載禁止]©2ch.net
レス数が900を超えています。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
829デフォルトの名無しさん (ワッチョイ 7f4c-KuRC)
2017/07/09(日) 23:16:12.83ID:H6/RuZ0J0 >>828
あっさりできました!ありがとうございます
あっさりできました!ありがとうございます
830デフォルトの名無しさん (ワッチョイ d7aa-gXZb)
2017/07/10(月) 18:47:09.19ID:w+1H0LRc0 C#でテトリスを作っているのですがブロックによっては回転させるとおかしくなったり、また端っこまで寄せてそれ以上移動させようとすると変形したり散々です
ブロックを回転させるときにx座標にyを、y座標に-xを入れればいいと書いてあったのですが違うのですか?
http://ideone.com/35p7Ko
ブロックを回転させるときにx座標にyを、y座標に-xを入れればいいと書いてあったのですが違うのですか?
http://ideone.com/35p7Ko
831デフォルトの名無しさん (ワッチョイ 9f19-zXdO)
2017/07/10(月) 19:06:29.55ID:QQHtP4rc0 既にあるのに
C#でテトリスなんて作る必要ある?
C#でテトリスなんて作る必要ある?
832デフォルトの名無しさん (アウアウカー Sa2b-P7Iq)
2017/07/10(月) 19:34:24.67ID:O/cYMYfea >>830
自分で紙にでも書いてみりゃわかるが単にx=y,y=-xにしても望む回転はしないよね?
それはx=0,y=0を軸とした回転であって動いてるブロックの中心を軸とした回転じゃない
ブロックの中心軸回転したいなら中心座標からのオフセットを回転させる的なことしないとダメ
詳しくは調べりゃ絶対出てくる
自分で紙にでも書いてみりゃわかるが単にx=y,y=-xにしても望む回転はしないよね?
それはx=0,y=0を軸とした回転であって動いてるブロックの中心を軸とした回転じゃない
ブロックの中心軸回転したいなら中心座標からのオフセットを回転させる的なことしないとダメ
詳しくは調べりゃ絶対出てくる
833デフォルトの名無しさん (ワキゲー MMdf-R1hf)
2017/07/10(月) 19:55:43.44ID:Ypzg3NP6M せっかくならボンブリス作成に精を出してもらいたい
834デフォルトの名無しさん (ラクッペ MM8b-rPCP)
2017/07/10(月) 20:12:20.59ID:qOKFO2KrM >>830
テトリスを作るのが凄いんじゃなくて、最初に発想した人が凄い
テトリスを作るのが凄いんじゃなくて、最初に発想した人が凄い
835デフォルトの名無しさん (ワッチョイ bfea-lHvp)
2017/07/10(月) 20:16:20.81ID:9oiksQC/0 >>831
つまらない人生送ってるでしょ君
つまらない人生送ってるでしょ君
836デフォルトの名無しさん (ワッチョイ 7732-KuRC)
2017/07/10(月) 22:23:10.72ID:6R2l0O8O0 WebBrowserのプロキシ設定をやりたいのですが、InternetSetOption使うとIEの設定まで変わっちゃいますよね?
アプリはプロキシ通してIEはプロキシ通さない方法ってないですかね?
アプリはプロキシ通してIEはプロキシ通さない方法ってないですかね?
837デフォルトの名無しさん (ワッチョイ 7732-KuRC)
2017/07/11(火) 00:44:10.74ID:9LvcNct10 すいません、自己解決しました。
IEの設定を書き換えるコード消さずにInternetSetOptionしてたらそりゃIEも設定されますわ・・・
何やってんだろ俺
IEの設定を書き換えるコード消さずにInternetSetOptionしてたらそりゃIEも設定されますわ・・・
何やってんだろ俺
838デフォルトの名無しさん (ワッチョイ 9f19-zXdO)
2017/07/11(火) 02:45:03.56ID:awT4MGi50 お前がテトリス作っても誰も遊ばねーよ
839デフォルトの名無しさん (ワッチョイ b732-oOTD)
2017/07/11(火) 03:12:45.75ID:7rDHAaRU0 初心者が練習で作るなら何でも良いだろうに。
Hellow world作るなと難癖付けてるのと同じ位無意味。
テトリスならプログラミング的には割と単純だし、練習の題材としては悪くないだろう。
Hellow world作るなと難癖付けてるのと同じ位無意味。
テトリスならプログラミング的には割と単純だし、練習の題材としては悪くないだろう。
840デフォルトの名無しさん (ワッチョイ bf93-rPCP)
2017/07/11(火) 07:40:44.76ID:R2QBTC310 いやテトリスは無い
オリジナルの機能も付けないんだろ?
オリジナルの機能も付けないんだろ?
841デフォルトの名無しさん (アウーイモ MM5b-quG2)
2017/07/11(火) 08:07:41.32ID:4tLCxKGnM 誰が何を作ってもそんなの各々の勝手だし。
842デフォルトの名無しさん (ワキゲー MMdf-R1hf)
2017/07/11(火) 08:19:02.76ID:Uezk8qzjM 最近になってようやく拡張メソッドってすげーなって感じた
843デフォルトの名無しさん (ササクッテロレ Spcb-XAlt)
2017/07/11(火) 11:14:07.06ID:HR/3NLpFp >>842
実際は単なるstaticメソッドの構文糖だけどな
実際は単なるstaticメソッドの構文糖だけどな
844デフォルトの名無しさん (ワッチョイ 1f91-KuRC)
2017/07/11(火) 12:10:09.14ID:7obiTgu70 拡張プロパティが欲しくなる
845デフォルトの名無しさん (ワッチョイ 1f91-KuRC)
2017/07/11(火) 12:11:43.17ID:7obiTgu70 SetXX、GetXX って拡張メソッドが美しくないもん。。
多重継承ができないから、どうしても拡張メソッドでカバーせざるを得ない場面が多い
多重継承ができないから、どうしても拡張メソッドでカバーせざるを得ない場面が多い
846デフォルトの名無しさん (ワキゲー MMdf-R1hf)
2017/07/11(火) 12:21:38.98ID:w51PVrvpM それはクラスに手を入れなよ
847デフォルトの名無しさん (ワッチョイ 1f91-KuRC)
2017/07/11(火) 12:32:43.48ID:7obiTgu70 分かりやすく既成品で言うと
TextBoxとLabelに共通する機能を追加したいとき、
共通機能を MyClass に書いて
class MyTextBox : TextBox, MyClass
class MyLabel : Label, MyClass
って風にしたオリジナルクラスを作りたいのだが、それが出来ない。
Interface定義するにせよ、中身はそれぞれに書かないといけない
拡張メソッドで
public static MyMethod(this System.Web.Ui.WebControl Control, ・・・)
って風に共通化させざるを得ない
TextBoxとLabelに共通する機能を追加したいとき、
共通機能を MyClass に書いて
class MyTextBox : TextBox, MyClass
class MyLabel : Label, MyClass
って風にしたオリジナルクラスを作りたいのだが、それが出来ない。
Interface定義するにせよ、中身はそれぞれに書かないといけない
拡張メソッドで
public static MyMethod(this System.Web.Ui.WebControl Control, ・・・)
って風に共通化させざるを得ない
848デフォルトの名無しさん (ワキゲー MMdf-R1hf)
2017/07/11(火) 12:39:25.35ID:w51PVrvpM >>843も言ってくれてるけど拡張メソッドは所詮ただのstaticメソッド
同じような感じでプロパティってなるとどこからでも参照できる単一の状態となる
プロパティの存在意義を考えたらstaticな状態はとっても危険
同じような感じでプロパティってなるとどこからでも参照できる単一の状態となる
プロパティの存在意義を考えたらstaticな状態はとっても危険
849デフォルトの名無しさん (アウアウイー Sacb-G8QH)
2017/07/11(火) 12:46:19.28ID:t4lUkhAUa 第一引数にthisを取ってるんですがw
何が危険なんだw
意味が分からん
何が危険なんだw
意味が分からん
850デフォルトの名無しさん (ブーイモ MMfb-z+Rf)
2017/07/11(火) 13:02:42.77ID:BFcSVt3FM >>847
エヴァンジェリストなんかは「実装の継承は悪」て言ってるけど。
エヴァンジェリストなんかは「実装の継承は悪」て言ってるけど。
851デフォルトの名無しさん (アウアウカー Sa2b-P7Iq)
2017/07/11(火) 13:18:32.42ID:EEzJWlBea プロパティはオブジェクトの状態を表すわけであって
既に閉じたクラスに対して状態を外から付け加えたいって場面はそうないだろ
既に閉じたクラスに対して状態を外から付け加えたいって場面はそうないだろ
852デフォルトの名無しさん (アウアウイー Sacb-G8QH)
2017/07/11(火) 13:43:38.38ID:t4lUkhAUa Rectangleに右下の座標をPointで返すプロパティが欲しいとか、
配列の最後の要素のインデックスを頻繁に使うからa.Length - 1じゃなくてa.LastItemIndexって書きたいとか、
要するにプロパティを追加したいケースなんて普通にコード書いてれば山ほどあるよ。
例に挙げたのはゲッターだけだけどセッター込みで欲しいケースもね。
配列の最後の要素のインデックスを頻繁に使うからa.Length - 1じゃなくてa.LastItemIndexって書きたいとか、
要するにプロパティを追加したいケースなんて普通にコード書いてれば山ほどあるよ。
例に挙げたのはゲッターだけだけどセッター込みで欲しいケースもね。
853デフォルトの名無しさん (ワッチョイ f769-LU+S)
2017/07/11(火) 14:23:28.23ID:yF5c0Q2u0 内容がダセェ
金にならない些末なことはテキトーにやっとけよ
誰も突っ込まねーから
金にならない些末なことはテキトーにやっとけよ
誰も突っ込まねーから
854デフォルトの名無しさん (ワッチョイ 9f19-zXdO)
2017/07/11(火) 14:28:40.11ID:awT4MGi50 テトリスなんて作ってどーするんだよ。
855デフォルトの名無しさん (ワッチョイ f769-LU+S)
2017/07/11(火) 14:34:06.59ID:yF5c0Q2u0 次は倉庫番だ
856デフォルトの名無しさん (アウーイモ MM5b-quG2)
2017/07/11(火) 19:40:01.52ID:4tLCxKGnM >>853
お前うぜぇよ、どっか行け。
お前うぜぇよ、どっか行け。
857デフォルトの名無しさん (ワッチョイ f769-LU+S)
2017/07/11(火) 19:46:36.47ID:yF5c0Q2u0 >>856
(*゚∀゚)はぁ?
(*゚∀゚)はぁ?
858デフォルトの名無しさん (ワキゲー MMdf-R1hf)
2017/07/11(火) 19:59:58.44ID:w51PVrvpM859デフォルトの名無しさん (ワッチョイ ffa2-KuRC)
2017/07/11(火) 21:35:17.36ID:av7+DLXh0 インベーダーでもパックマンでもブロック崩しでも
なんでも好きなの作ればいい
なんでも好きなの作ればいい
860デフォルトの名無しさん (ワッチョイ 9f19-zXdO)
2017/07/11(火) 22:24:42.60ID:awT4MGi50 vpn gateを使っていると2chに書込みが出来ません。
その場合、なんで2chはvpn gate 使ってるのがわかるのでしょうか?
その場合、なんで2chはvpn gate 使ってるのがわかるのでしょうか?
861デフォルトの名無しさん (ワッチョイ f769-LU+S)
2017/07/11(火) 22:35:07.26ID:yF5c0Q2u0 vpn gateのグローバルipアドレスが固定なんだろ?
っていうかBot荒らしが多いから全部アク禁になってんじゃねーの?
っていうかBot荒らしが多いから全部アク禁になってんじゃねーの?
862デフォルトの名無しさん (ワッチョイ 9f19-zXdO)
2017/07/11(火) 23:24:35.69ID:awT4MGi50863デフォルトの名無しさん (ワッチョイ f769-LU+S)
2017/07/11(火) 23:37:08.42ID:yF5c0Q2u0864デフォルトの名無しさん (ワッチョイ 9779-ZZOI)
2017/07/12(水) 00:47:55.19ID:FFWGyTUP0 ワシの股間の拡張メソッドを
喪前らのライブラリに公開してやろうか!?!!
(´・ω・`)b
喪前らのライブラリに公開してやろうか!?!!
(´・ω・`)b
865デフォルトの名無しさん (スフッ Sdbf-lHvp)
2017/07/12(水) 07:02:36.50ID:lpNw3V5Vd >>864
インポートエラーでるぞおい
インポートエラーでるぞおい
866デフォルトの名無しさん (ワッチョイ 9f80-ay8l)
2017/07/12(水) 11:11:16.31ID:gJCzfoEB0867デフォルトの名無しさん (ワッチョイ 1f91-KuRC)
2017/07/12(水) 11:27:05.53ID:SKU2xR2g0 なんかリークしてるぽいし
868デフォルトの名無しさん (ワキゲー MMdf-R1hf)
2017/07/12(水) 11:33:18.78ID:uz/DDJspM >>864
くわえても何もできないからしまってて下さい
くわえても何もできないからしまってて下さい
869デフォルトの名無しさん (ワッチョイ ffb3-O3UY)
2017/07/12(水) 11:53:08.34ID:YWvoGq9a0870デフォルトの名無しさん (ワッチョイ 9f19-zXdO)
2017/07/12(水) 15:53:27.29ID:gcxNWTIE0 >>863
2chはvpnのサーバのIPアドレスを逐一クロールして補足してるのかな?
2chはvpnのサーバのIPアドレスを逐一クロールして補足してるのかな?
871デフォルトの名無しさん (ワッチョイ 17e1-VbWY)
2017/07/12(水) 19:46:28.80ID:mMMvRD100 C#の話じゃねえ
質問者と相手してる奴は死ね
質問者と相手してる奴は死ね
872デフォルトの名無しさん (スプッッ Sd9e-e7nf)
2017/07/14(金) 02:55:50.32ID:i27thCjZd Javaを勉強していてC♯にも興味を持っています
C♯とJavaの似ている点、異なる点を教えていただけないでしょうか?
C♯とJavaの似ている点、異なる点を教えていただけないでしょうか?
873デフォルトの名無しさん (ブーイモ MM5e-5eCk)
2017/07/14(金) 04:59:45.06ID:+GVaW66DM C#はだいたいJavaの上位互換
Javaにある機能はだいたいC#にもあり、C#の方がずっと機能が多く複雑な言語
周辺技術は圧倒的にJavaの方が充実してる
C#はその点MS技術の枠内でわりとコンパクトに完結するので比較的わかりやすい
Javaにある機能はだいたいC#にもあり、C#の方がずっと機能が多く複雑な言語
周辺技術は圧倒的にJavaの方が充実してる
C#はその点MS技術の枠内でわりとコンパクトに完結するので比較的わかりやすい
874デフォルトの名無しさん (ワキゲー MM6e-FPdr)
2017/07/14(金) 06:41:36.15ID:FOyXX5hRM Javaのinterfaceデフォルト実装はC#に存在しない
875デフォルトの名無しさん (ブーイモ MM5a-gxcq)
2017/07/14(金) 07:05:21.07ID:nFfk1BV8M >>872
Visual Studioが使える
Visual Studioが使える
876デフォルトの名無しさん (ワッチョイ 4023-z+eH)
2017/07/14(金) 07:20:35.60ID:PnYwerQL0 僕はC#もといプログラミング初心者でふ(^^
まだ関数の有用性がわからないのでふ(^^
優しく関数の使い道や例を紹介してるサイトはありまふか?(^^
まだ関数の有用性がわからないのでふ(^^
優しく関数の使い道や例を紹介してるサイトはありまふか?(^^
877デフォルトの名無しさん (ワキゲー MM6e-FPdr)
2017/07/14(金) 07:22:13.60ID:FOyXX5hRM >>876
日本語でおk
日本語でおk
878デフォルトの名無しさん (ワッチョイ 4023-z+eH)
2017/07/14(金) 07:28:46.03ID:PnYwerQL0 僕はまだなぜ関数が便利なのかよく分かってまふぇん(^^
なので関数をコピペ以外で使ったことがないのでふよ(^^
関数を使うとなぜ便利なのかを解説してるサイトを教えてくらふぁい(^^
ボッキング!(^^
なので関数をコピペ以外で使ったことがないのでふよ(^^
関数を使うとなぜ便利なのかを解説してるサイトを教えてくらふぁい(^^
ボッキング!(^^
879デフォルトの名無しさん (ワッチョイ 3cc4-WfmG)
2017/07/14(金) 08:59:32.10ID:NzZdCYLZ0 fuck
880デフォルトの名無しさん (JP 0H32-v2r+)
2017/07/14(金) 10:02:07.24ID:ak+4FQ9QH 大規模のプログラムで
アチコチに同じような処理が実装されてると憂鬱になるだろ
つまりそういうことだ
アチコチに同じような処理が実装されてると憂鬱になるだろ
つまりそういうことだ
881デフォルトの名無しさん (ワキゲー MM6e-FPdr)
2017/07/14(金) 10:03:41.84ID:poHR6O80M >>880
つまり、どう言うことだってばよ?
つまり、どう言うことだってばよ?
882デフォルトの名無しさん (ドコグロ MM02-zKZC)
2017/07/14(金) 10:13:35.24ID:Lg3YjH2aM >>878
テトリスでも作ってみろ
テトリスでも作ってみろ
883デフォルトの名無しさん (アウアウウー Sa08-1CH6)
2017/07/14(金) 10:23:02.18ID:D7n96xFVa 関数には大事な機能がいくつもある
処理の一般化
処理の抽象化
コールバック関数
再帰を利用できるようになる
スコープの局所化
他にもいろいろある
でも最初は同じ処理をなんども書かなくていいぐらいでいいんだな
処理の一般化
処理の抽象化
コールバック関数
再帰を利用できるようになる
スコープの局所化
他にもいろいろある
でも最初は同じ処理をなんども書かなくていいぐらいでいいんだな
884デフォルトの名無しさん (ワッチョイ 5691-z+eH)
2017/07/14(金) 13:01:26.15ID:Kku2Hunh0 保守
885デフォルトの名無しさん (ブーイモ MM5a-gxcq)
2017/07/14(金) 14:34:00.53ID:Ryu4JgnUM >>881
1000行のコードが100行で済む
1000行のコードが100行で済む
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 まーた始まった
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【テレビ】25年ぶり復活「炎のチャレンジャー」南原清隆&菊池風磨がMC 懐かし「電流イライラ棒」も [湛然★]
- 【サッカー】驚異の42得点0失点 中国を怒涛の5連勝に導いた日本人指揮官がまさかの退任か。協会対応に国民激怒 [征夷大将軍★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- ( ・᷄ὢ・᷅ )あ?
- 背中が毛むくじゃらのやつなんなの?
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
- ブタをぶったたく
- こんな自転車乗ってたやつがいたら?
- 被災者のためにエロ画像貼ってけ
