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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/05/02(火) 22:05:40.13ID:OPFlvhxj
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part127 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489498042/

■関連スレ
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: default:vvvvv:1000:512:----: EXT was configured
2017/05/30(火) 02:03:42.90ID:7mmlzI+/
>>636
>>611の無限ループの中身がスクレイピング(>>616)って書いてあるんだから、意味あるでしょ。
HttpClientはCancellationTokenに対応してるんだから。
>>633に書いた通り、最近追加されたのは対応してるの多いよ。
2017/05/30(火) 02:06:44.79ID:yo83A8ao
>>637
あ、なるほど納得w
こんな時間にどうも
2017/05/30(火) 07:06:41.02ID:3LKQdhjH
>>612で良かったじゃんな
2017/05/30(火) 08:10:12.34ID:nt0s20eG
>>632,634
InterruptはSleepやロックを潰すだけだよ
従来Interruptで止めていたようなケースでは、自分でトークンの明示的なチェックなんていらなくて
呼び出し先の時間のかかるメソッドにトークンを適切に引き継ぐだけでいい(キャンセルされたら例外で止まるから)
基本的にスレッドをブロックするだけの同期処理とは違って、
async/awaitの場合は「待ち方」が実装に依存するので、最終的に「待っている」ところに限って
実装者がキャンセル処理を個別に実装する必要がある
そこ以外での扱いの考え方は基本的にはInterruptと変わらんよ
2017/05/30(火) 08:36:57.90ID:nt0s20eG
CancellationTokenの引き継ぎって明示的に渡さなくてもいいように実装できなかったのかな
一番深いところで例外を発生させるという、たかがそれだけのために途中の全てのメソッドに引数を追加しなきゃいけないのはイケてない
コンテキストを跨るから単純なスレッドローカルじゃ駄目なのはわかるけど、
そこだけSynchronizationContextみたいに手動でstaticプロパティから取ってきて明示的に引き継げばいいだけじゃないのか
それとも意図的に途中で連鎖を切るようなケースを想定してるのかな
2017/05/30(火) 08:50:03.66ID:nt0s20eG
あーでもキャンセルのハンドリング自体が非同期で行われるようなケースまで想定すると、
トークンをスレッドローカルにしたら無関係な他のジョブにまでキャンセルが伝播してしまうケースがあり得るね
やっぱりダメだな
2017/05/30(火) 09:01:41.80ID:+3RQshmo
>>612で良かったじゃんな
2017/05/30(火) 09:36:50.58ID:4zyQHZTY
>>643
良くないよ
呼び出した先のメソッドをどうやって止めるつもり?
そうやって、よくある止まらない停止ボタンが出来上がるんだよ
2017/05/30(火) 10:23:05.72ID:22c10yuY
>>644
それは別の問題だろ
2017/05/30(火) 10:34:03.46ID:22c10yuY
呼び出した先のメソッドの止め方が分からないだけで
フラグでいいよ
2017/05/30(火) 11:47:54.70ID:27U6uUbR
スクレイピングの処理時間の大半は、レスポンスが返ってくるのを待つ時間と受信処理
CancellationTokenならそれを中断できるけどフラグ処理じゃ手も足も出ない

まあ作っても役立たずのゴミクズボタンが出来るだけだな
2017/05/30(火) 13:19:04.25ID:iGfRfCvW
>>640
従来Interruptで止めてたケースってなんだよ
ここでやってるスクレイピングのためのネットワーク処理はInterruptじゃ止まらないよね?

InterruptとCancellationTokenの類似性って見た目何らかの処理を中断して戻れるってだけでしょ、そんな事は指摘するまでもないし
それ以上は内部実装なども全然違うものだよ

もっと言うとCancellationTokenはキャンセル処理を統一的に扱うインターフェースでInterruptはその実装の一つと見れる
しかしCancellationTokenの実装としてスレッドのInterruptを使っているものは少なくともIO処理ではないでしょう
実際FileStreamのキャンセル実装はwin32apiのCancelIoEx使ってたし
ネットワーク系のもそんな感じでしょ
2017/05/30(火) 13:27:52.68ID:yiTLmUbP
>>647
それと611の処理となんの関係があるの?
650626
垢版 |
2017/05/30(火) 14:31:20.95ID:Wk6Gc0Fl
昨日はタスクのキャンセルの件ありがとうございました。大変助かりました。

そして、また連日の投稿となってしまい申し訳ありませんが
現在また原因不明の現象に悩まされていて困っております。
もしよかったらどなたか解決して頂けませんでしょうか?

seleniumを使ったプログラムなんですが
一度遷移先でタイムアウトが発生してしまうと
それ以降別ページへの遷移ができなくなってしまうというものです。
そもそもなんでタイムアウトを設定しているかというと
重たいページであっても一定時間すぎたら無条件で次ページへ遷移してほしいからです
どなたか解決方法がわかる方お答え頂ければと思います。

ソースは以下のような感じです

webDriver = new ChromeDriver();
// タイムアウトを2秒に設定
webDriver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2));

foreach (string UrlString in UrlList){
try
{
webDriver.Navigate().GoToUrl(UrlString); // 一度タイムアウトが発生すると次回以降遷移出来ない
}
catch (OpenQA.Selenium.WebDriverTimeoutException) { }
}

※UrlListには適当なURLがいくつかはいっております
度々すみませんがどうぞよろしくお願いします。
2017/05/30(火) 14:47:13.92ID:4zyQHZTY
>>649
関係ないと思うなら多分君はキャンセルフレームワークの使い方を勘違いしてるんだろうな
CancellationTokenは同じものを引き回して使うの
受け取ったCancellationTokenを呼び出し先のメソッドにそのまま渡すことで、
キャンセル要求時に処理がどのメソッドにあったとしても関係なく例外を起こして潰すことができる仕組みだ
2017/05/30(火) 14:57:38.82ID:yiTLmUbP
>>651
そんな仕組み誰も提供して欲しくないと思うわwww
653626
垢版 |
2017/05/30(火) 15:23:37.93ID:Wk6Gc0Fl
自分の質問のせいで争いが起こってしまうとは・・・
申し訳ないです。。
2017/05/30(火) 15:50:05.28ID:r/CU7EmN
気にすんな

タイムアウトしたら次、ってことはCookieの引き継ぎとかどうでもいいってことになるけど
それなら新しくChromeDriverをnewするって雑なやり方は?
2017/05/30(火) 16:48:13.36ID:Wk6Gc0Fl
はい、クッキーはどうでもいいです
ただchromedriverをnewするとブラウザが新たに立ち上がっちゃうのでなるべく同じブラウザのまま対応したいです
2017/05/30(火) 18:28:13.59ID:nt0s20eG
>>655
それだけが理由ならPhantomJS使えば済む話じやね
657デフォルトの名無しさん
垢版 |
2017/05/30(火) 19:00:00.41ID:9pAG49er
あの…WPFとUWPはどっちが速いですか?
優秀な方教えてください
2017/05/30(火) 19:01:21.46ID:Z7PF006I
>>657
form最強
659デフォルトの名無しさん
垢版 |
2017/05/30(火) 19:01:55.63ID:9pAG49er
>>658
エェッo┤*´Д`*├o
2017/05/30(火) 19:09:08.93ID:27U6uUbR
>>657
UWPが桁違いに早い。特に起動時
661デフォルトの名無しさん
垢版 |
2017/05/30(火) 19:10:38.44ID:9pAG49er
>>660
起動確かに速いな
常にスタンバってるのかな
2017/05/30(火) 19:18:21.10ID:27U6uUbR
>>661
.netと違って、ライブラリの中で使うクラスだけ抽出してスタティックリンクするから
ロードするサイズが全然違いますね
2017/05/30(火) 19:22:45.51ID:5LsaYMbU
ある意味「石器」最強かもねw
2017/05/30(火) 19:24:02.22ID:Q5Vu0cbW
>>656アプリに色々スクレイピングしたデータを表示させたいんです
665デフォルトの名無しさん
垢版 |
2017/05/30(火) 19:27:03.66ID:9pAG49er
>>662
ほえー
アプリ開発者と関係なくUWPがそういう仕組みになってるってこと?
2017/05/30(火) 19:27:17.24ID:nt0s20eG
>>664
それとPhantomJSじゃ駄目というのとがどう繋がるのか分からん
ブラウザも表示しておく必要があるのか?
667デフォルトの名無しさん
垢版 |
2017/05/30(火) 19:28:41.25ID:9pAG49er
>>650
お前エロ動画自動収集作ろうもしてるだろ
俺にはわかるぞ
2017/05/30(火) 19:33:16.73ID:Q5Vu0cbW
>>666
PhantomJSからwindowsアプリにデータの受け渡しをすればいいって事ですか?
タイムアウトの問題を解決するためだけなのにすごく二度手間な事してるような気がしてしまいますが・・・
2017/05/30(火) 19:34:33.06ID:Q5Vu0cbW
>>667
いえ違います
2017/05/30(火) 19:40:27.25ID:27U6uUbR
>>665
まあそんなところ。その他.net nativeだから、ライブラリもCLiじゃなくて普通のバイナリだから立ち上がった後の反応も全然違いますよ
2017/05/30(火) 19:42:58.08ID:n5zRqOxX
UWPは起動は遅いだろ
くるくるばっかしてる
672デフォルトの名無しさん
垢版 |
2017/05/30(火) 20:29:50.15ID:PLPV+qTT
class ClassA
{
public override bool Equals(object obj)
{
if (this == obj)
{
return true;
}
else{
return false;
}
}
public override bool GetHashCode() { }
}

static void Main(string[] args)
{
ClassA a1 = new ClassA();
ClassA a2 = new ClassA();
bool b = a1.Equals(a2);
}

GetHashCodeなしだと警告がでるんですが、この場合GetHashCodeのコードはどう書けばいいでしょうか?
2017/05/30(火) 20:48:23.05ID:nt0s20eG
>>668
いやブラウザが開くのが嫌ならヘッドレスなドライバを使えばいいだろと言ってるだけなんだが
2017/05/30(火) 20:53:25.27ID:sRXo2Yu8
>>672
コンストラクタで乱数生成してそれ使ったら?
2017/05/30(火) 21:27:08.94ID:/DgUh2Dj
>>672
とりあえず動けばいいだけなら
public override int GetHashCode() {
return 1;
}
でもいい
http://blog.masakura.jp/node/35
2017/05/30(火) 22:40:18.35ID:GhBAathx
便乗で質問だけど、オブジェクトの等価検査で使われる値が変化した時は
ハッシュコードも変えないとまずいよね?
2017/05/30(火) 22:43:36.35ID:kWERrntF
>>676
変えなくてもハッシュテーブル系のパフォーマンスが落ちるだけ、それで使わんなら適当でいい
678デフォルトの名無しさん
垢版 |
2017/05/30(火) 23:44:25.77ID:PLPV+qTT
>>674 >>675
お2人のレスでGetHashCodeがintを返すものだと気づきました。
いろいろ漁ってみたんですが、this.GetHashCode()の方が1より速いみたいなんでこれで行こうと思います。
レスありがとうございました。
679デフォルトの名無しさん
垢版 |
2017/05/31(水) 00:37:06.72ID:lBEWYtx2
Formアプリで登録リスト一覧みたいなものを表示させたいんですが、DataGridViewみたいな感じにしたい時は何を使いますか?
2017/05/31(水) 01:04:50.93ID:XimrquBh
DataGridView
2017/05/31(水) 01:46:52.64ID:zMZ0t3dm
意図が全く分からん
2017/05/31(水) 02:01:48.65ID:toHF4qpw
マジキチ
683626
垢版 |
2017/05/31(水) 05:04:07.36ID:zbjxMbd2
>>673
いえブラウザが開くのは問題ないんですが
タイムアウトが発生するたびにブラウザを開き直すのはちょっと問題があります
なにか他に方法があればいいんですが・・・
2017/05/31(水) 06:29:23.93ID:+xjBJZk4
>>683
対象のページを手動で開いてるってことか?
2017/05/31(水) 06:30:10.04ID:+xjBJZk4
>>683
対象のページを手動で開いてるってことか?
2017/05/31(水) 06:39:24.23ID:zbjxMbd2
すいません質問がかなり流れてしまってるのでもう一度書かせていただきます

seleniumを使ったプログラムなんですが
一度遷移先でタイムアウトが発生してしまうと
それ以降別ページへの遷移ができなくなってしまって困ってます
そもそもなんでタイムアウトを設定しているかというと
重たいページであっても一定時間すぎたら無条件で次ページへ遷移してほしいからです
どなたか解決方法がわかる方お答え頂ければと思います。

ソースは以下のような感じです

webDriver = new ChromeDriver();
// タイムアウトを2秒に設定
webDriver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2));

foreach (string UrlString in UrlList){
try
{
webDriver.Navigate().GoToUrl(UrlString); // 一度タイムアウトが発生すると次回以降遷移出来ない
}
catch (OpenQA.Selenium.WebDriverTimeoutException) { }
}

※UrlListには適当なURLがいくつかはいっております
度々すみませんがどうぞよろしくお願いします。
2017/05/31(水) 09:22:20.58ID:7bh7QxEt
>>667
俺の時代はjpeg画像だったわ
688デフォルトの名無しさん
垢版 |
2017/05/31(水) 10:03:22.46ID:bfprNrby
お世話になります。
ある二次元のArrayListがありまして、
そのArrayListのある1行だけをまるまる別のListへコピーしたいのですが、
色々調べても書き方がわかりませんでした。
どのように書けば良いのでしょうか。

型は全要素がstringになっているという前提で良いです。
2017/05/31(水) 10:10:44.40ID:bfprNrby
688ですが、一旦質問を取り下げます。
二次元のArrayListではなくて、string配列のArrayListでした。
頭の中を整理してからまた質問させていただきます。
2017/05/31(水) 11:11:33.20ID:YxSv7yTD
Comparison<T>をIComparer<T>に変換する機能って用意されてないよねやっぱり

デリゲートは拡張メソッドも変換演算子も定義できないし、古典的なユーティリティークラスで
やるしかないのかな
691デフォルトの名無しさん
垢版 |
2017/05/31(水) 11:41:32.37ID:vbSdRoYa
そういうライブラリを探す手間が大変
高級言語ってそれが面倒
最初っから当てにしない方が精神的に良いのがわかってても
あるはずだと思って探す
2017/05/31(水) 14:16:43.04ID:Z1ZTId/u
>>690
ん?
public static IComparer<T> ToIComparer<T>(this Comparison<T> cmp)
って定義できたし呼び出しもできたけど VS2015
2017/05/31(水) 15:14:41.46ID:SYDtjKSh
あれ、デリゲートの拡張メソッドって定義できないと思い込んでたけど勘違いか。
ジェネリックの制約か何かとごっちゃになってたかな
2017/05/31(水) 15:17:45.21ID:YmmFUVDx
そんなことするより普通にnew MyDelegateComparer(comparison)でいいだろ
変なごちゃ混ぜユーティリティクラスに依存するよりよっぽどマシ
695686
垢版 |
2017/05/31(水) 15:44:13.55ID:zbjxMbd2
ここでもだれもわからないんですね・・・
どうすればいいんだろう・・・
2017/05/31(水) 15:53:10.88ID:RyxKgJ03
人生の無駄だと気付け
697デフォルトの名無しさん
垢版 |
2017/05/31(水) 19:20:18.69ID:EmdHwMni
Null許容型の話ししてもいいですか?
2017/05/31(水) 19:25:07.13ID:pBTVyMi8
駄目だと言ったらどうする!
2017/05/31(水) 20:58:06.31ID:P4eqmxhP
ASP.NET Identityって要するにユーザー情報やロール情報のリポジトリを注入するだけで認証処理が機能するようになるよって感じ?
2017/05/31(水) 21:18:26.40ID:rluwNjli
>>689
ArrayListは過去の遺物だ。
新規で作っているならList<T>を使った方が良い。
2017/05/31(水) 21:36:24.45ID:PjLtCLFm
いつも思うけど、こういう奴誰に向かって威張ってるつもりなのかね
っていうかそれがそんな偉そうに言うような話かw
馬鹿じゃねえのほんっと
2017/05/31(水) 21:38:57.89ID:L1juUrGR
>>700
arraylistを使うとどんなデメリットが有るの?
2017/05/31(水) 21:48:30.04ID:QtUbvsGm
>>702
要素にどんな型でも放り込めてしまう
2017/05/31(水) 21:50:42.84ID:rluwNjli
>>702
Object型で格納されるから参照する時にキャストが必要。
後、値型だとボックス化が起きる。
2017/05/31(水) 21:58:14.69ID:L1juUrGR
>>704
すいません、ボックス化ってなんですか?
2017/05/31(水) 22:01:37.80ID:lqV8qj25
>>705
https://www.google.co.jp/search?client=android-asus&;ie=UTF-8&source=android-browser&q=ボックス化&gfe_rd=cr&ei=b74uWdaaIabz8AeGtomgCg
2017/05/31(水) 22:16:20.70ID:rluwNjli
>>705
ボックス化とボックス化解除 (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/boxing-and-unboxing

要は、値型をObject型に変換するとパフォーマンスが悪い。(その逆も)
2017/05/31(水) 22:22:39.78ID:bj9JDDoN
以下のようなコレクションから、プロパティ「name」「no」が重複しているオブジェクトを全削除したいのですが
Linq等で短いコードで書けそうだなと思いながら、いざ考えてみるとやり方が思い浮かばず困っております
よろしくお願いします

public class TestStore
{
public string name { get; set; }
public int no { get; set; }
public int noctl { get; set; }
}

class Program
{
static void Main(string[] args)
{

List<TestStore> list = new List<TestStore>();
list.Add(new TestStore { name = "hoge",no=2,noctl=999});
list.Add(new TestStore { name = "hoge", no = 2, noctl = 888 });
list.Add(new TestStore { name = "fuga", no = 1, noctl = 888 });

      //プロパティ「name」「no」が重複するオブジェクトを削除する処理
//最終的にはname = "fuga"だけが残っているイメージです

}
}
2017/05/31(水) 22:24:50.71ID:ne18o3PY
>>708
あのさ
自分でもわかんねーコード
人にどうやって読んでもらうの?
少なくとも初心者スレで聞くのはやめろ
2017/05/31(水) 22:27:06.86ID:L1juUrGR
>>706、707
ありがとうございました。
2017/05/31(水) 22:27:16.87ID:ne18o3PY
linq友の会スレでも行けよ
2017/05/31(水) 22:42:27.39ID:P4eqmxhP
>>708
list.GroupBy(x => new { x.name, x.no })
.Where(x => x.Count() == 1)
.Select(x => x.First())
2017/05/31(水) 22:58:48.07ID:bj9JDDoN
>>712
期待通りの結果が出ました

なぜ上手くいくのかメカニズムが解らないので
参考にさせて頂きます

やはり出来る人は凄いですね

ありがとうございます
2017/05/31(水) 23:01:16.13ID:QtUbvsGm
>>709
( ´,_ゝ`)プッ
2017/05/31(水) 23:04:44.02ID:KM4I6X6v
>>709
解らないなら黙ってスルーして良いんだぜ?な?
2017/05/31(水) 23:18:52.50ID:PjLtCLFm
匿名型ってEqualsも自動実装されてるのか
知らんかった
2017/06/01(木) 00:42:51.33ID:mM6BhS1s
改めて思ったけど、IEquatable<T>とIEqualityComparer<T>の関係って
なんだかわかりづらいな。

IEquatable実装したらGetHashCodeもオーバライドしろっていうのなら
IEqualityComparerだけあれば十分じゃないのか
2017/06/01(木) 01:35:28.25ID:ludZVk+R
コンパレータ渡さ(れ)なくても比較したいことは多いだろ
2017/06/01(木) 01:39:00.91ID:ZOQStLdx
>>717
IEquatable<T>は値型に実装するもので、参照型に実装する意味はないよ
一種のマーカーインターフェイスみたいなもんで、これがあることによって
値型のときEqualityComparer<T>.Defaultなどでボックス化を回避することができる
2017/06/01(木) 02:01:45.31ID:ZOQStLdx
>>718
EqualsやGetHashCodeはObjectのメソッドなんだから常に等値比較は可能なはずで、なのになんでインターフェイスが必要なのかが質問者の疑問なんじゃないの?
その疑問はもっともで、実際、非ジェネリックなIEquatableって存在しないでしよ
等値比較できることを示すというよりは、型限定なEqualsの実装を持ってることを保証するためのインターフェイスなんだよ
2017/06/01(木) 02:23:40.58ID:ldik7UUC
>>713
なぜうまく行くのか自分でもわからんコード仕事で書きたいんだな
アホだな
お前がうまく行くことを祈る
2017/06/01(木) 02:31:26.88ID:5sVH+pSJ
煽るために産まれたのか悲しい子よ
2017/06/01(木) 02:33:53.74ID:EL41vKcx
>>721 == >>709
2017/06/01(木) 03:49:27.04ID:aKp9LbeA
C# で 6乗したら100になる数字を求める方法ってありますか?
で、プログラムで 6とか 100の部分を可変で入れ込む関数を作りたいのです。
よろしくお願い致します。
2017/06/01(木) 04:27:00.57ID:EL41vKcx
>>724
単に Math.Pow(100, 1/6) でいいと思いますが
2017/06/01(木) 04:45:54.50ID:ldik7UUC
数学的には指数と対数の関係式とか言うとこだな
2017/06/01(木) 05:26:56.81ID:ldik7UUC
>>725
累乗根ってそれで行けるんだ
2017/06/01(木) 06:53:06.02ID:rOL2FVf4
>>724
そんな数字求めて何に使う?
2017/06/01(木) 07:01:20.29ID:ldik7UUC
桁数に合わせた表示領域の計算とかするのに必要だった気がする
2017/06/01(木) 08:08:40.56ID:YbQp1MN1
>>729
それは Log10 の方だろ
巾乗根なんて日常生活だと複利計算ぐらいしか思い付かんが6年で100倍なんてあり得んし w
2017/06/01(木) 09:24:36.49ID:ABXdazBj
音つくるんかな
2017/06/01(木) 10:11:36.56ID:ZOQStLdx
工学系なら普通にあるだろうけどさすがに724は理系ではなさそうだし
2017/06/01(木) 10:43:13.05ID:RLRug1po
>>726
対数は関係ないよw
x^a^b = x^(a*b)
こういう理屈
2017/06/01(木) 11:01:21.36ID:sVwWAQG0
クラスの中にスタックを持たせたい場合、どう書くのが正しいんでしょうか。
class Solution {
private Stack<char> st = new Stack<char>();
Solution() {
}
public void pushCharacter(char c) {
st.Push(c);
}
場当たりでこんな書き方をしましたが、とても汚く感じます。
2017/06/01(木) 11:05:21.05ID:MxLX2EtY
それを汚く感じる完成が分からん
2017/06/01(木) 11:22:25.63ID:bvaaJ1gb
>>734
可読性とかはその人の感性によるものだから君が汚いって言っても他人にはよくわからんかもしれん
もっと具体的に何がどう気に入らないのか説明してくれんと要件満たしてるんだしそのコードでいいじゃんとしか言えない
2017/06/01(木) 11:34:56.00ID:8D8uwWqC
>>733
いや手持ちの数学の教科書の項目の話だった
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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