X



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

レス数が950を超えています。1000を超えると書き込みができなくなります。
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
2017/07/12(水) 00:47:55.19ID:FFWGyTUP0
ワシの股間の拡張メソッドを
喪前らのライブラリに公開してやろうか!?!!



(´・ω・`)b
2017/07/12(水) 07:02:36.50ID:lpNw3V5Vd
>>864
インポートエラーでるぞおい
2017/07/12(水) 11:11:16.31ID:gJCzfoEB0
>>864
使えない…

いや、一生使うことがないライブラリだな
2017/07/12(水) 11:27:05.53ID:SKU2xR2g0
なんかリークしてるぽいし
2017/07/12(水) 11:33:18.78ID:uz/DDJspM
>>864
くわえても何もできないからしまってて下さい
2017/07/12(水) 11:53:08.34ID:YWvoGq9a0
>>759
返事遅くなりましたが、やってみたらあっさりできました。
ありがとうございました。
2017/07/12(水) 15:53:27.29ID:gcxNWTIE0
>>863
2chはvpnのサーバのIPアドレスを逐一クロールして補足してるのかな?
2017/07/12(水) 19:46:28.80ID:mMMvRD100
C#の話じゃねえ
質問者と相手してる奴は死ね
2017/07/14(金) 02:55:50.32ID:i27thCjZd
Javaを勉強していてC♯にも興味を持っています
C♯とJavaの似ている点、異なる点を教えていただけないでしょうか?
2017/07/14(金) 04:59:45.06ID:+GVaW66DM
C#はだいたいJavaの上位互換
Javaにある機能はだいたいC#にもあり、C#の方がずっと機能が多く複雑な言語
周辺技術は圧倒的にJavaの方が充実してる
C#はその点MS技術の枠内でわりとコンパクトに完結するので比較的わかりやすい
2017/07/14(金) 06:41:36.15ID:FOyXX5hRM
Javaのinterfaceデフォルト実装はC#に存在しない
2017/07/14(金) 07:05:21.07ID:nFfk1BV8M
>>872
Visual Studioが使える
2017/07/14(金) 07:20:35.60ID:PnYwerQL0
僕はC#もといプログラミング初心者でふ(^^
まだ関数の有用性がわからないのでふ(^^
優しく関数の使い道や例を紹介してるサイトはありまふか?(^^
2017/07/14(金) 07:22:13.60ID:FOyXX5hRM
>>876
日本語でおk
2017/07/14(金) 07:28:46.03ID:PnYwerQL0
僕はまだなぜ関数が便利なのかよく分かってまふぇん(^^
なので関数をコピペ以外で使ったことがないのでふよ(^^
関数を使うとなぜ便利なのかを解説してるサイトを教えてくらふぁい(^^
ボッキング!(^^
2017/07/14(金) 08:59:32.10ID:NzZdCYLZ0
fuck
2017/07/14(金) 10:02:07.24ID:ak+4FQ9QH
大規模のプログラムで
アチコチに同じような処理が実装されてると憂鬱になるだろ
つまりそういうことだ
2017/07/14(金) 10:03:41.84ID:poHR6O80M
>>880
つまり、どう言うことだってばよ?
2017/07/14(金) 10:13:35.24ID:Lg3YjH2aM
>>878
テトリスでも作ってみろ
2017/07/14(金) 10:23:02.18ID:D7n96xFVa
関数には大事な機能がいくつもある
処理の一般化
処理の抽象化
コールバック関数
再帰を利用できるようになる
スコープの局所化
他にもいろいろある


でも最初は同じ処理をなんども書かなくていいぐらいでいいんだな
2017/07/14(金) 13:01:26.15ID:Kku2Hunh0
保守
2017/07/14(金) 14:34:00.53ID:Ryu4JgnUM
>>881
1000行のコードが100行で済む
2017/07/14(金) 14:41:07.20ID:LqMz4TjHM
>>885
主語を明記して欲しい
2017/07/14(金) 16:17:33.09ID:PnYwerQL0
遅くなりまひたがありがとうございまふ(^^
ボッキング!(^^
2017/07/14(金) 21:11:39.26ID:TBQIVSbVM
>>878
「関数って何ですか?」って質問を関数って単語を使わずに書き直してみてみな
関数のありがたさがわかる
2017/07/14(金) 23:16:31.20ID:IdRI9jY90
しかし、C#には関数なるものは存在しない・・・
2017/07/15(土) 06:38:14.05ID:TwERH/ly0
メソッドっていうんだぜ
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だと思うんですが、
どう考えたらいいんですかね?
2017/07/15(土) 08:06:44.71ID:tXCHrVaZ0
あと上のサイトでTVのメンバ変数channelがprivateなので、触れないとか書かれてますが、
class TVそのものにChangeChannelメンバ関数を追加改変するならISwitchがあろうが無かろうが関係なく
channelを自由にいじくれるんですけど。
2017/07/15(土) 08:54:29.21ID:0zGsqKYGM
テレビそのものに書くって事は人はチャンネルを変えらんない
もしくは変えるために直接テレビを触らねばならない
そうしたときにラジオが出てきたらめんどくさいことになる

interfaceは受付窓口と同じ
駅、遊園地、ライブは内部でどんな処理をしてるかそれぞれ異なったとしても利用側はどこでも受付ってinterfaceに切符を渡せば望む結果を得られる

c#は実装側の書き方がabstractとinterfaceでほぼ同じなので慣れるしかないよ
それかここだけjavaで勉強するってのもあり
2017/07/15(土) 09:24:34.53ID:tXCHrVaZ0
ChngeChannel を public にしてしまえば。
あるいはアクセサを用意すればprivateメンバに誰でもアクセス可能かと思われますが?
インターフェースというならこういうアクセサのほうがずっとしっくりきます。
そもそもアクセサってインターフェースですよねwww

たとえば既製のクラスにインターフェースを追加したいときってどうすればいいんでしょうか?
よく既製のクラスを拡張するのに、基本クラスのコードには手をつけず、継承して、機能追加しますよね。
インターフェースにこういう発想は根本的に間違ってるのかな?
でも、上のテレビで、址から赤外線リモコンインターフェースを追加したいと、
そして、元のTVクラスのソースヘッダは触れないときはどーすればいいか?です。
2017/07/15(土) 09:35:28.99ID:IcmPd+odM
そしたら人が直接テレビを触らねばならない
人は必ず有効値を入れるとは限らない
故障の原因になり得る

触りたくないのであれば既存のクラスを継承してinterfaceを貼り付けた新しいクラスを作ればよい
2017/07/15(土) 09:45:52.69ID:K6HEWwBua
そのサイトの例が悪いとしか言えない

ISwitchじゃなくてISwitchableとでも考えればいい

TVはスイッチを持っている!やTVはスイッチだ!
じゃなくてTVはチャンネルを切り替えられるぐらいのこと
2017/07/15(土) 10:10:22.92ID:uJRk81Er0
>>894
インターフェイスは継承関係のないクラスたちを、同じ手続きで操作する為の物なので…
そのサイトの例だと対象が1つなので、確かにアクセサの説明かの様になってしまっている
.NET Reference Sourceで既存インターフェイスの使われ方を見てみるのも良いと思う、複数実装とか

継承か委譲かというのはまた少し異なる話…というか妙な例えは往々にして本質からずれる気がする
2017/07/15(土) 10:12:54.91ID:miTEGb900
このへんで詰まるアホって大抵ネットで拾ってきた一つの例題だけをこねくり回そうとして話が明後日に飛んでくよね
2017/07/15(土) 10:27:42.98ID:K6HEWwBua
いやいや誰でも最初はこんなもんよ

多重継承の代わりと言われたinterfaceの内容知った時の落胆...
非力すぎて涙が出たわ
2017/07/15(土) 10:32:45.07ID:qqsDF0t/M
多重継承するとメモリレイアウトがおかしくなって効率悪すぎ

じゃあ継承はひとつだけにしようか

でもフィールドなければ問題なくね?

ならフィールドなしなら多重継承していいよ

悪く無いねっていうかメソッド実装も衝突するから要らなくないか

なんだこれ凄くイイぞコーディングがめちゃ捗る

あまりにも便利だから名前付けて言語機能にしよう

インターフェース誕生
2017/07/15(土) 10:52:25.26ID:wHixeaDXM
多重継承が捨てられたのはそんな理由じゃない
ググってから出直せ
2017/07/15(土) 10:54:05.46ID:qqsDF0t/M
>>901
どんな理由だよ
2017/07/15(土) 10:54:39.28ID:wHixeaDXM
ググれよ
2017/07/15(土) 11:15:41.99ID:qqsDF0t/M
ググったがわからんかった
解説して
2017/07/15(土) 11:27:09.38ID:nQVjhHv2M
>>900
javaのデフォルト実装についてコメント願います
2017/07/15(土) 11:32:14.35ID:qqsDF0t/M
>>905
まああってもいいかな〜ぐらいのノリ
2017/07/15(土) 13:41:14.84ID:YwzOlwqa0
結局テストするときはマトリックス書いて全部抜けが無いようにしなきゃいけないからインターフェイスなんて邪魔だけどな
継承なんてありがたがってるやつはまともなテストなんか要求されないゴミ環境にいるとしか考えられない
2017/07/15(土) 14:10:33.48ID:qqsDF0t/M
>>907
まともなテストをしたことがない人って不思議とみんなこういうこと言うよね
2017/07/15(土) 14:14:37.87ID:YwzOlwqa0
>>908
そうかな?
じゃあインターフェイスから派生してる処理は全部でいくつあってそれぞれいつ呼ばれるの?
一覧になってる?
こんな当たり前のこと聞かれても
本能に任せて作っちゃったもんだから
全く説明できないでしょ?
じゃ、明日までに一覧作ってテストやり直してくれるかなぁ?
って言われちゃうよ
2017/07/15(土) 14:18:16.87ID:YwzOlwqa0
単純に作るだけのアマチュアから脱却しなくてはならない
2017/07/15(土) 14:22:44.84ID:4WiC8QMiM
>>909
そんなのすぐにわかるよ
わからないならそれはお前にスキルがないだけだろ

というか君の認識は全く逆だよ
そういった「機能が幾つあるのか」「どんな時に使われるのか」ってのを明確にするためにインターフェースを使うんだろ
インターフェースを使ったらそれがわからなくなるという発言は全くもって理解が足りてない証拠

インターフェースも使わずに密結合しまくった汚いシステムだと
そもそも「どっからどこまでが1つの機能なの?」って問いに明確に答えられない
そして境界がわからないから、「幾つあるか」も数えられないし
それが「どんな時にどれが有効になるのか」もわからない(どれ?という問いは当然だけどそれぞれが明確に区別できる前提がないと答えられない)
2017/07/15(土) 14:27:02.76ID:4WiC8QMiM
さらにいうと
インターフェースで疎結合を維持すれば自動テストを構築できる
そうすれば明日までと言わずに1時間もあれば回帰テストをやり直せる

インターフェースを使わないガチガチに密結合したシステムではこうはいかない
テストだけでも丸一日、下手すれば数日はかかる
2017/07/15(土) 14:28:56.54ID:4WiC8QMiM
>>910
まさに君のことだね
2017/07/15(土) 14:32:21.17ID:YwzOlwqa0
>>911
え?明確になる?
はぁ?
swich caseで並べてあるときよりも?
俺には動かしてみないとどれが死にコードでどれが生きてんだかわかんねぇよw
2017/07/15(土) 14:33:55.74ID:wIL5gJgE0
個人だとインターフェース使う機会があまりないなぁ
2017/07/15(土) 14:34:40.29ID:YwzOlwqa0
ここから俺とお前で

(*゚∀゚)明確になるなる!
(*゚∀゚)明確にならないならない!
(*゚∀゚)なるなる!
(*゚∀゚)ならないならない!

って1000レスぐらい想定www
2017/07/15(土) 14:37:21.67ID:4WiC8QMiM
>>914
ほらね
やっぱりスキルがないじゃん
適当なコードを書くからわからなくなるんでしょ
2017/07/15(土) 14:38:08.00ID:qtlS5nEUd
switchでその手の分岐かますと汚くて保守性低いコードになるから嫌い
2017/07/15(土) 14:43:55.40ID:4WiC8QMiM
タイプコードswitchはたいていの場合おなじようなswitchをコードのあらゆるところにばら撒いてどこで何やってんだ状態(いわゆるスイッチヘル)に陥る
インターフェースを使うとそのようなswitchは一箇所にまとめられたり、設定ファイルに抽出されたり、コーディング規約に従って動作するようになり、誰が見てもはっきりとどんな時のどの実装が使われるかを理解できるようになる
このように構造化されていれば機能一覧や使用条件などをリアルタイムに出力することすらできる
switchとの格闘で費やしていた無駄な時間をバカンスに割当てることもできるのだ
2017/07/15(土) 14:44:31.73ID:YwzOlwqa0
>>918
でも間違いが無いよね?
実行する場所ですべてのパターンがひと目でわかる
インターフェイスだとどう?
全部で何パターン処理があるの?
2017/07/15(土) 14:47:19.82ID:qtlS5nEUd
>>920
IDEで追えるだろ全部
2017/07/15(土) 14:47:37.52ID:YwzOlwqa0
>>919
じゃあ、ホイ

unko.flyhigh();

いくつあるか言ってみろよ
お前が判断に必要な情報を俺が出していってやるよwww
2017/07/15(土) 14:48:35.92ID:YwzOlwqa0
>>921
死にコードもわかる?
2017/07/15(土) 14:50:14.71ID:4WiC8QMiM
>>920
間違いがあるのはswitchを多用する複雑怪奇な方法
間違いがないのはインターフェースを使ってエレガントな方法

switchでパターンがわかるのは1箇所だけ
実際にはswitchの数だけ掛け算したパターンを把握しなければならない
3分岐のswitchが4箇所で使われていたらそれだけで3 * 3 * 3 * 3 = 81パターンの実行パスが考えられる
このコードベースで処理パターンと条件を列挙するのは事実上無理と言っていい
ところがインターフェースを使った方法ならswitchは1箇所で済むのでコードパスの爆発は起こらない
機能一覧と使用条件を洗い出すのもとても容易になる
2017/07/15(土) 14:53:15.41ID:4WiC8QMiM
>>922
コード全部ちょうだい
コードってのはインターフェース使ってOOPで書かれたコードのことな
あっという間に数えてやるよ
ちなみにお前の書いた汚いswitchスパゲティは意味わからんからいらないよ
それはコードじゃなくてゴミだから
2017/07/15(土) 14:59:32.85ID:4WiC8QMiM
>>923
容易に判明するよ
インターフェースを使っていれば生成箇所だけを見れば判断ができる
場合によってはソースや設定ファイルを見ただけでわかるし
生成箇所が変数に依存して実行するまでわからない場合も生成箇所だけにログを仕込めばわかる
そして何より重要なポイントは仮に死にコードだとしても全く害がないということ

スイッチヘルだと全てのコードを追跡しなければならない
何時間も何日もかけてソースを読んで
ログを仕込む作業何百回と繰り返し
そのログを仕込む作業で凡ミスしてないかの確認を要求されて
また何時間も何日もかけて回帰テストを手作業で行い
スイッチヘルだと死にコードだからと言って無視することはできない
なぜならスイッチヘルでは死んでるコードと死んでないコードが密結合していて分けて考えることが極めて難しいから一緒くたに行きていると判断するしかないからね
もう考えただけでも嫌になってくるよ
2017/07/15(土) 15:05:09.36ID:YwzOlwqa0
>>925
それはすべてのコードを見ないと分からないという敗北宣言でいいのかな?
2017/07/15(土) 15:10:16.49ID:rcsbZkMo0
まーた始まった
2017/07/15(土) 15:11:54.72ID:4WiC8QMiM
>>927
そう言っておかないとお前後出しするじゃん

じゃあ逆に

void main() {
switch (unko) {
case 1: foo();
case 2: bar();
case 3: baz(); } }

このシステムにおいてどの機能がいつ使われるか全て列挙して
もちろん関数の呼び出し先にも無数のswitchがあるけど聞かれたことしか教えないよ
2017/07/15(土) 15:13:00.41ID:YwzOlwqa0
>>928
だろ?

(*゚∀゚)なるなる!
(*゚∀゚)ならないならない!

ウォーズになっただろ?
そもそも根拠も示さないで
明確になるなんて嘘つくのが悪い
switch case以上のものなんかできねぇよ
2017/07/15(土) 15:14:20.05ID:YwzOlwqa0
>>929
君、俺の質問に答えるのは止めたの?
2017/07/15(土) 15:14:29.69ID:4WiC8QMiM
>>930
根拠は示してるがお前が無視してるだけだろ
2017/07/15(土) 15:16:56.21ID:4WiC8QMiM
>>931
続けたいならコード出してよ
出せないなら続かないよ
2017/07/15(土) 15:16:58.46ID:qtlS5nEUd
底辺SIer丸出しで草
まあ初心者なら混乱するよな、処理追おうとして読んでもインターフェースの呼び出ししか書いてないからswitchのほうが分かりやすいってなる
935デフォルトの名無しさん (アウアウカー Sa0a-kIy9)
垢版 |
2017/07/15(土) 15:20:47.88ID:Ha2IzMP7a
リポジトリが泣いとるわ
2017/07/15(土) 15:22:43.89ID:YwzOlwqa0
>>934
いや、明確に判断するにはインターフェイスが継承されてるクラスをくまなく追っかけて呼び出されてる箇所マークして
死にコードと生きコードを分けなきゃならんでしょ?

こんな面倒臭いものをなんで有難がってるのか?
頭がおかしいのか?
switvh caseが問題とかいってるけどお前の脳味噌のが問題だよwww
2017/07/15(土) 15:25:53.28ID:YwzOlwqa0
>>933
全部見ないと分かんないって言ったよね?
あの一言で僕の勝ち
君の理論は腐っている

そして全部みなきゃ分からないという君の主張は正しい
だけどそんな複雑なものを好んで使おうとしてる君の脳みそは腐っている
2017/07/15(土) 15:29:35.43ID:SkRXwKg10
技術論から離れて揚げ足取り始めたらお終いだろ。
2017/07/15(土) 15:39:40.47ID:RkJDHgF90
前回の再復刻がふたつ同時だったから、以降はふたつずつ追加されるのかと思ったら今回はひとつだけで残念
実は実装間隔が半分に短縮されている…とかじゃないよね?
2017/07/15(土) 15:39:56.94ID:RkJDHgF90
すまん、誤爆
2017/07/15(土) 16:00:49.45ID:Npc2MKz10
社内でユニットテスト定着させようとしたらこんな感じの話がズレている層に拒否られたの思い出したわ
2017/07/15(土) 16:02:37.05ID:qtlS5nEUd
.NETのソース見ればいいよ、switch連打じゃなくてインターフェースばっかだから
2017/07/15(土) 17:47:55.79ID:rJTB/Aaz0
このクソ最近暴れてた奴だろ
クソの相手するな
スカトロ趣味かオメー
2017/07/15(土) 18:08:42.19ID:+h55DWxyM
気づいたらすげー流れてるなぁ
関心があると考えたらいいこととも思えるけど
2017/07/15(土) 18:10:54.37ID:sSrRYJ/sM
一画面で収まるならswitch使う
2017/07/15(土) 18:11:43.15ID:PtVLhebb0
xp C#2008
メモリが30Mなんだけど、そんなもんなん?(正常に動きます)
2017/07/15(土) 18:59:17.09ID:3Bm+zU1dd
>>922
あーこれjavaだろwww
2017/07/15(土) 19:24:08.20ID:1X9hghUUa
>>891
要は、本来全然違う物を同じ物とみなして使いたい場合が結構あるってこと。
例えば、

例1:
外部機器との通信プログラムで、USBもRS-232Cもイーサも「通信ポート」とみなして
同じように扱えるようにしたい

例2:
ゲームのプログラムで、物理的なゲームコントローラも、過去の操作の記録データも、
AIによる操作も同じように扱えるようにしたい

インターフェイスは同じ物とみなされるために必要な要件を定義するためのもの。
2017/07/15(土) 19:37:37.93ID:dGaj0Gpt0
C#使っててinterfaceの有用さを実感したいなら、IEnumerable<T>を実装したクラスたちについて調べるといいと思う
(そして同時にジェネリックのありがたみもわかる)
2017/07/15(土) 20:01:15.09ID:sSghns+0a
スレが進んでると思えば…

ID:YwzOlwqa0はNGにしておけばいいよ

テストやったことない人の意見はガン無視でいい
2017/07/15(土) 20:18:35.24ID:+h55DWxyM
頑固なヤツに成長はない
そのまま消えていただければ幸いです
2017/07/15(土) 20:28:24.07ID:sSrRYJ/sM
enumrableとenumratorの発音にいつも困る。
2017/07/15(土) 21:29:22.37ID:nacMKYtH0
>>950
で、その結果がソース全部出せなの?
(*゚∀゚)ズイブンコウリツヨサソウジャン
2017/07/15(土) 21:31:14.89ID:wHixeaDXM
>>953
誰と勘違いしてるんだか

まともにテストツールを使ったことがないか
まともな方法でテストしたことない人の意見は読むだけ無駄
2017/07/15(土) 21:35:27.08ID:nacMKYtH0
>>954
おお、そりゃスゲェ
是非その超絶技巧をご披露いただきたい
(*゚∀゚)オモシレー
2017/07/15(土) 21:38:17.50ID:wHixeaDXM
俺にレスしても無駄だよ

お前の超絶技巧で.net framewaorkをinterface無しで再実装してからにしてくれ
2017/07/15(土) 21:40:02.60ID:nacMKYtH0
>>956
アレ?お前はなんにもしないの?
(*゚∀゚)イツモドオリダナオマエ
2017/07/15(土) 21:42:12.07ID:+h55DWxyM
NGName:ワッチョイ c469

スッキリ!
2017/07/15(土) 21:43:55.73ID:nacMKYtH0
まあ、お前の言いたいことはわかるよ
みずほ銀行のシステムをcobol無しで再実装してからcobolの批判をしてくれないか?

ってことだろ?
2017/07/15(土) 21:49:16.74ID:g8mCRq5Q0
COBOLの話がすぐ出てくる辺りマジで底辺か、多分ほとんどの奴はお前と話合わないからすっこんでろ
2017/07/15(土) 21:51:37.25ID:nacMKYtH0
>>960
え?お前誰?
単発IDが主義主張もなく割り込んでいいcobolじゃねーよ
2017/07/15(土) 21:53:48.27ID:g8mCRq5Q0
>>961
誰でもいいじゃん、匿名掲示板なんだしお前と議論する気なんて一切ないし
2017/07/15(土) 22:10:48.06ID:+h55DWxyM
>>961
ここはC#のスレだよ
COBOLの話は別でどうぞ
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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