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

■ このスレッドは過去ログ倉庫に格納されています
2017/07/18(火) 06:40:45.47ID:mH9qbH+m0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part129
http://mevius.2ch.net/test/read.cgi/tech/1497000961/

■関連スレ
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/08/12(土) 23:29:51.13ID:aQBsN87od
>>447
周回遅れwww
2017/08/12(土) 23:32:32.20ID:EdsW5Ca+0
>>445
そうだね、まだソース示せてないもんね
2017/08/14(月) 18:15:11.19ID:L2nzIYhid
>>446
いまだに訂正記事出さないってどういう神経してるんだろうか
2017/08/14(月) 19:11:43.71ID:Em96n+jc0
クライアント10台分のサーバ間送受信処理100回を並列で処理しようと考えているんだが、

Enumerable.Range(1, 10).AsParallel().ForAll(t =>
{ 
  Enumerable.Range(1, 100).ToList().ForEach(c =>
  {
    クライアントの送受信処理
  }
}

var taskArray = Enumerable.Range(1, 10).Select(t=>
 {
  return Task.Run(() => {  
    Enumerable.Range(1, 100).ToList().ForEach(c =>
    {
     クライアントの送受信処理
    }
}).ToArray();
Task.WaitAll(taskArray );

でそれぞれ実行すると実行順が明らかに違う理由を教えてください。
どちらも10台が順不同で各100回実行すると思いきや、なぜか前者は任意の1,2台だけ100回実行した後に残りを順不同で各100回実行して、後者は狙い通り10台順不同で各100回実行する・・・
2017/08/14(月) 22:59:55.53ID:W9S89Wta0
ラムダ使うの止めたらええんちゃう?
2017/08/15(火) 07:23:29.80ID:+u37r3ou0
.ForAllのせいじゃないかな…
Enumerable.Range(1,10)の出力だけが並列で実行されて、
.ForAllの中味は現スレッド1本で順次行われてない?
2017/08/15(火) 09:17:22.57ID:OGbi9cLy0
>>451
CPUがデュアルコアだからじゃね?


Enumerable.Range(1, 10000).AsParallel().ForAll(i =>
{
Console.WriteLine("{0} 処理開始", i);
Thread.Sleep(1000);
Console.WriteLine("{0} 処理終了", i);
});
455デフォルトの名無しさん (ワッチョイ a3db-6KBD)
垢版 |
2017/08/15(火) 11:46:48.87ID:ReZpKiqA0
昔XPのころVS2010ExpressでC#で遊んでました
7年ぶりにまたいじってみようかと思い立ったのですが
最新版の無償版ってVS2017Comunityとかいうやつになるんですか?
これで2010時代のソリューション読み込めますか?
当時はC♯としかいってなかったはずだけど今はC#7というみたいですがずいぶん内容は変わったのでしょうか?
浦島状態ですみません。乙ちゃ〜ん!
2017/08/15(火) 11:53:00.99ID:9bM/QnfQa
>>455
(*゚∀゚)b
2017/08/15(火) 12:43:34.23ID:20T/HkCgd
>>455
vs2010はC#4.0やで
2017/08/15(火) 13:42:35.85ID:OC/mFne80
>>455
開く時にコンバートする必要あるけど問題なく開けるよ
仕事だと未だにVS2010現役だわ
459デフォルトの名無しさん (ワッチョイ a3db-6KBD)
垢版 |
2017/08/15(火) 14:20:35.06ID:ReZpKiqA0
>>456-458
どうもありがとう!
なんとかインストールできました
とりあえずフォームアプリのビルドはできました
昔のソリューション読み込みまだ試してません
使い方思い出しながら頑張ります!
2017/08/15(火) 14:38:44.06ID:uu1RAYqy0
expressと違ってフル版だからそこは新規に覚えるとこかな
2017/08/15(火) 22:19:09.81ID:4mEDxDEa0
スレ違いかもしれませんが
基本認証のID/PASSでしっかり認識される最大文字数はどうなっていますか?


桁数を増やせば安全かと思い 30桁オーバーで設定していますが
そもそも基本認証では、前方8文字までしか認識されない、といったブログがありました。
462デフォルトの名無しさん (ワッチョイ be69-UL2x)
垢版 |
2017/08/15(火) 22:41:40.92ID:o38j9B5b0
webbrowser1のボタンを押す処理でhtmlにnameが無くても
foreach (省略)
{
      if(省略)
 {
// 要素をクリック
he.InvokeMember("click");
}
}
で今まで全て問題なく押せましたが、今日、この書き方で押せないボタンがありました。
he.InvokeMember("click");を実行しても何も反応しないということです。。
ここに居る人でこのような問題を解決した人は解決方法か解決のヒントを教えてください。
2017/08/15(火) 23:25:24.31ID:LXsTJVda0
>>461
仕様上の制限は特にない
サーバの実装上の制限は知らん
2017/08/15(火) 23:27:56.73ID:oy/WgDX5a
>>463
1GB超える文字列アタックで死にそうだな
2017/08/15(火) 23:37:08.46ID:4mEDxDEa0
>>463
知らんかった!ありがとう!
2017/08/16(水) 00:11:54.50ID:NyarCuNKM
インターネット上のbasic認証っていざとなったら破られても
実害のないものぐらいにしか使わないほうがいいよ

とにかく破られる前提で
2017/08/16(水) 11:06:00.81ID:bxXjJfOJa
>>465
ハッシュ化にcrypt使ってたらそうなる
2017/08/16(水) 11:10:45.85ID:bxXjJfOJa
htpasswdのusageに書いてあるな
2017/08/16(水) 11:16:53.17ID:IhBdVBZAr
みんな、どういう現場でC#使ってるの?

ゲーム開発?
2017/08/16(水) 12:20:59.08ID:PSdbs+NyM
C#はエンタープライズ系がほとんどでしょ
2017/08/16(水) 12:41:41.63ID:G1nlxVN/a
トンガリ耳の宇宙人が乗ってるあれかワクテカだな
2017/08/16(水) 12:46:29.97ID:qOG9houbd
業務アプリで使ってる
2017/08/16(水) 13:11:32.49ID:8/sKEHVn0
>>471
スポック「んなわけねーだろ、ばーか」
2017/08/16(水) 13:51:25.49ID:dFRX8QvB0
>>471
マッコイ「精神的に疲れているようだな、メディカルステーションに行こう」
2017/08/16(水) 14:39:51.83ID:WlWiRltK0
C#(windows)しか知らん奴ばかりかと思ったけど

意外とlinux周りの知識ある奴もいるんだね。

雑魚ばかり、という訳ではなさそうだ
2017/08/16(水) 15:00:59.30ID:IhBdVBZAr
>>475
linux周りの知識がないと雑魚なの?
2017/08/16(水) 15:02:12.23ID:IhBdVBZAr
>>470
基幹システムってこと?
2017/08/16(水) 15:03:51.18ID:dFRX8QvB0
>>476
> C#(windows)
の時点で雑魚以下の奴に構うなよ
2017/08/16(水) 15:06:37.38ID:6u80Tv+y0
VB++みたいなもんだもんな、C#
2017/08/16(水) 15:08:45.04ID:IhBdVBZAr
>>478
目糞が鼻糞笑ってたってこと?
2017/08/16(水) 15:10:04.02ID:IhBdVBZAr
>>479
どの辺がVB++?
2017/08/16(水) 15:14:27.54ID:6u80Tv+y0
VBと比べて方言レベルの違いしかない
2017/08/16(水) 15:17:20.37ID:IhBdVBZAr
>>482
ああ、そういえば、C#でできることはVBでもできるって言ってた人がいたけど、そういうこと?
2017/08/16(水) 15:28:42.63ID:dFRX8QvB0
>>480
耳糞レベルの煽り? w
2017/08/16(水) 15:31:48.23ID:IhBdVBZAr
>>484
というか、linux周りの知識があれば雑魚ではなくなるのかなって…

目糞が鼻糞笑っててそれを耳糞が煽ってるだけならそれはそれでいいんだけど…
2017/08/16(水) 15:52:23.27ID:oFHraf+3a
鍛え抜かれた筋肉がないと真のプログラマとは呼べんな
2017/08/16(水) 15:59:28.74ID:G1nlxVN/a
しょうもないことで荒れてまんなw

山形治生だと思ったけど、UNIX系の人が威張って他を見下してる
(今はそんなことないと思うけど)のは、昔メインフレーマーに同じことをされたからだって書いてたな
2017/08/16(水) 16:00:28.19ID:IhBdVBZAr
>>486
なるほどー。なんか名言のような気がする。
2017/08/16(水) 16:09:00.21ID:IhBdVBZAr
>>487
たとえばさ、何万個ものジャガイモの皮を剥いてきた料理人と料理好きの芸能人(グッチ裕三とか)とはやっぱ違うんだよね。

グッチを料理人と思う人はいないもんね。
2017/08/16(水) 20:58:12.89ID:2E64Am1a0
そしたら君の言う真の料理人達は
グッチ祐三をバカにしてると思うか?
2017/08/16(水) 21:10:36.48ID:i+NmnZ+e0
>>486
体力マジ大事
2017/08/16(水) 23:41:57.26ID:IhBdVBZAr
>>490
たしかに!
真の料理人は他の料理人をバカにはしない。

でも弟子には厳しいよ。
2017/08/17(木) 00:11:24.02ID:iTFxBfxz0
linuxの知識ねーやつは雑魚グラマ
2017/08/17(木) 00:25:27.24ID:DvHgRVVt0
ム板でやれ
2017/08/17(木) 00:25:52.50ID:DvHgRVVt0
違った、マ板でやれ
2017/08/17(木) 01:03:52.74ID:ugZ0fkzt0
>>494
ハイ!
2017/08/17(木) 16:54:44.90ID:fSYjKEAR0
プログラミング自体初めてで(3日目)、MSのチュートリアルをやってる最中です
https://msdn.microsoft.com/ja-jp/library/dd553230.aspx
このページの内容で質問があります

Listで並べたアイコン(text)をテープルレイアウト上に並べたラベルにランダムで次々に流し込むという内容ですが
次々に流し込むというのはテーブルレイアウトの次のマスへ順番に勝手に流れ込んでいくのですが
どこのマスへ…という指定がなくても、作動しています
で、そのテーブルレイアウトのマスを次々変えているのは簡単に言うと
foreach (Control control in tableLayoutPanel1.Controls)
でループしている間、その都度tableLayoutPanel1.Controlsを変更(適用?)して次のマスへ行く様に作動している
という認識で良いのでしょうか?
2017/08/17(木) 17:10:40.76ID:ur5EMh3c0
>>497
foreachは含まれる要素全てに実行される
tableLayoutPanel1.Controlsを変更じゃなくtableLayoutPanel1.Controlsに含まれる要素(inの前のControl control )にたいして実行される
デバッガでforeachの中にブレークポイント置いてcontrolの値がどう変わるか確認したほうが分かりやすい
2017/08/17(木) 17:23:35.76ID:fSYjKEAR0
>>498
ありがとうございます
超初心者の自分にも凄く分かりやすい説明で助かりました
デバッガの使い方調べてみます
2017/08/17(木) 17:49:30.79ID:sB3nMuGZr
初めてとか超初心者を強調しすぎ。
ここは初心者用スレなのにしつこく強調する意図を勘ぐったり勘ぐらなかったり…
2017/08/17(木) 18:38:27.43ID:iTFxBfxz0
質問です。
2017/08/17(木) 18:46:51.87ID:I0R9izuAa
>>500
小姑かよww
くっだらねえ
2017/08/17(木) 18:47:00.19ID:4gMV5zAaM
for文でデータスキャンしながら、不正データを除外するPGを
C#で書いて、SharpDevelopでVB化したら正常に動作しません。
同じ事が出来るっていう人は嘘つきだと思います。
2017/08/17(木) 19:03:38.85ID:sB3nMuGZr
>>502
申し訳ない。

必要の無いことをしつこくやってる人がいるとどうも気になってしまう体質でして…
505デフォルトの名無しさん (ワッチョイ 2ba2-oL0b)
垢版 |
2017/08/17(木) 19:51:20.19ID:r/967Sma0
外部のアプリ(EXEファイル)を別プレセスで複数実行させるのどうやんの
2017/08/17(木) 19:56:19.12ID:ur5EMh3c0
>>505
http://dobon.net/vb/dotnet/process/shell.html
このあたり
507デフォルトの名無しさん (ワッチョイ 2ba2-oL0b)
垢版 |
2017/08/17(木) 20:07:52.35ID:r/967Sma0
>>506
天才
インスタンス化したかったんだありがとう
508デフォルトの名無しさん (ワッチョイ 5bc8-faiX)
垢版 |
2017/08/19(土) 05:38:22.41ID:pqlrWbIe0
タプルでコレクションの中身を書けばノイズが少なくていいかと思って配列に変換するコードを書いてみたら
なんか毒々しいものが出来たんだけどどうすれば改善できる?

http://ideone.com/nfbYcC
2017/08/19(土) 09:03:58.70ID:GJ9v1oeu0
>>508
タプルはコレクションではないのでそんな間違った発送は捨てる
2017/08/19(土) 09:46:57.21ID:L0VsKhKh0
>>508
自前のメソッドなんて使わなくてもSelect使えばIEnumerableなTaple作れると思うが
511デフォルトの名無しさん (ワッチョイ 5bc8-faiX)
垢版 |
2017/08/19(土) 10:19:25.53ID:pqlrWbIe0
new[]{ hoge, hoge } だと冗長やん?
(hoge, hoge) ならスクリプト言語並みにスッキリするから
科学技術計算かなにか向けに数値のリストを渡そうなんて時にはいいよね
一次元ならint[] Nums(params int[] nums) => nums; みたいなのを書けば
Nums(3,4,5)といった感じで可読性もバッチリだけど
問題は二次元になった時
new int[][]{
 Nums(1,2),
 Nums(3,4,5)
}
毎行Numsが出てきたら冗長すぎて耐えられない
どうしてもこうしたい
var hoge = NumArray2(
 (2, 3),
 (4, 5, 6)
);
int[][] NumArray2(params IStructuralComparable[] tuples) => tuples.Select(tuple => tuple.TupleToArray<int>()).ToArray();
2017/08/19(土) 11:04:54.36ID:Qv1Dw1g0F
Dictionary
2017/08/19(土) 13:25:33.54ID:cYLfyEivM
でもそれメタプロで遅いし型チェック効かなくなるじゃん
だったらスクリプト言語を使いなよ
514デフォルトの名無しさん (ワッチョイ 5bc8-faiX)
垢版 |
2017/08/19(土) 13:49:29.79ID:pqlrWbIe0
http://ideone.com/RUcYj6 速度はこれでだいぶまともになると思う
2017/08/19(土) 13:54:04.95ID:y3ZCFtJSM
>>511
そんなもん一次元で渡してから二次元に変換すりゃいいだろ
括弧すら必要ない
516デフォルトの名無しさん (ワッチョイ 5bc8-faiX)
垢版 |
2017/08/19(土) 14:32:05.62ID:pqlrWbIe0
>>515
1, 2, Delim,
3,4, 5, Delim

みたいに区切りを書くの?
それだとNum(1,2)みたいにするのと冗長さは変わらんでしょ
2017/08/19(土) 14:39:34.62ID:GJ9v1oeu0
>>516
科学技術計算なら矩形しか使わないからデリミタなんか要らん
numpyなんかだとreshapeで行列の型を読み替えたりするのは普通に行われている
2017/08/19(土) 15:01:44.09ID:cYLfyEivM
遅すぎわろた

public struct TupleWrapper<T> {
public TupleWrapper(object tuple) { tupleOrValue = tuple; }
public T Value => (T) tupleOrValue;
public int Length => CountItemField() < 8 ? CountItemField() : 7 + GetRest().Length;
public TupleWrapper<T> this[int index] => GetItem(index + 1);
private TupleWrapper<T> GetItem(int i) => i < 8 ? new TupleWrapper<T>(GetItemField(i).GetValue(Tuple)) : GetRest().GetItem(i - 7);
private FieldInfo GetItemField(int i) => Tuple.GetType().GetField($"Item{i}");
private TupleWrapper<T> GetRest() => new TupleWrapper<T>(GetRestField().GetValue(Tuple));
private FieldInfo GetRestField() => Tuple.GetType().GetField("Rest");
private int CountItemField() => Tuple.GetType().GetGenericArguments().Length;
private object Tuple => tupleOrValue;
private readonly object tupleOrValue;
}

var t = (
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20),
(11, 22, 33, 44)
);
var w = new TupleWrapper<int>(t);

for (int i = 0; i < w.Length; ++i) {
for (int j = 0; j < w[i].Length; ++j) {
Console.Write($"{ w[i][j].Value } ");
}

Console.WriteLine();
}
2017/08/19(土) 15:31:46.04ID:5zKij7dqM
>>518
初心者スレであんたどうしたいの?
520デフォルトの名無しさん (ワッチョイ 5bc8-faiX)
垢版 |
2017/08/19(土) 15:40:55.40ID:pqlrWbIe0
>>517 矩形しか使わないわけないやろ
まあ一行の個数が決まってるなら普通にTuple指定すれば型安全にちゃちゃっと書ける
2017/08/19(土) 19:40:18.23ID:zNHilmkoa
csv読み込め
522デフォルトの名無しさん (ワッチョイ 5bc8-faiX)
垢版 |
2017/08/19(土) 19:50:47.56ID:pqlrWbIe0
たとえば1回目の実験では15人の被験者がいました
2回目では13人で3回目は20人でN回目はM人でしたと
一人分のデータには名前とか年齢とかいろんな型のデータが使われます
これを一気に処理しようとすれば一人分のデータの型は固定の2次元ジャグ配列になるよね
このデータを書く時にVisual Studioで書けば、データ型のエラーは即検知してくれるしデータを修正するときにもエクセルとか立ち上げなくて済むしJSONみたいな冗長な型式にして可読性を犠牲にしなくてもいい
別のスクリプト言語を実行するための環境を用意しなくても済むしその言語の変な仕様に足をすくわれることもない
いいことづくめでしょ タプルを使えばね
2017/08/19(土) 20:09:37.64ID:y3ZCFtJSM
>>522
そんなデータをソースにリテラルで書くことがどれだけあるのだろう
そういうデータ処理はわりとよくやるけどPythonやPerlですらソースに書くなんてやったことないわ
2017/08/19(土) 20:10:28.00ID:xJNDdKxb0
>>522
そのケースだとタプル使う意味なくね?
2017/08/19(土) 20:17:26.15ID:y3ZCFtJSM
まあ実験IDか実験日を持たせるわな
重複が嫌なら正規化するべきだし
2017/08/19(土) 20:24:22.85ID:FWLPt1pK0
バカが例を出すとこうなるよな
2017/08/19(土) 20:34:08.67ID:xhyE7NbO0
Nが少ないなら高速処理要らないんだしファイル経由でいい
N多いならそもそもデータベースかファイル群として格納しとけっていうデータやね
数値計算で扱うデータではないよ
2017/08/19(土) 20:34:56.03ID:zNHilmkoa
だからデータはソースじゃなくて外に出せよ
c#入門したてでファイルの読み込みできないのかもしれないけど
勉強したほうがいいぞ

最低でもcsvにしとけば他でも使いやすい
2017/08/19(土) 20:51:46.08ID:y3ZCFtJSM
なるべく細かく設計するならこんな感じだな
実験(実験ID, 実験日, …)
実験結果(実験ID, 被験者ID, 項目1の結果, 項目2の結果, …)
被験者(被験者ID, 氏名, 年齢, …)
1項目ごとに結果の値が複数個あるなら項目ごとに別々の実験結果テーブルを作ったしたほうがいいかもね
2017/08/19(土) 21:17:47.49ID:khsltEiUM
実験するたびに手作業でタプル書いてリビルドするとか斬新な修行方法だな
2017/08/19(土) 21:22:03.91ID:xhyE7NbO0
データは流石に機器制御で自動取得なのでは
2017/08/19(土) 21:34:04.23ID:zNHilmkoa
最近は横着しだしてcsvじゃなくてタブ区切りにしてる
2017/08/19(土) 23:16:55.78ID:6Hx+8ODk0
>>532
所謂TSVってやつだけど、知名度いまいちだね。
Excelでそのまま開いてくれないから、採用し辛い。
2017/08/19(土) 23:23:29.02ID:hlM8r5U9a
>>533
今のは開かないのか
前のは普通におkだったけど
2017/08/19(土) 23:40:22.90ID:L0VsKhKh0
>>533
普通に開けるよ
方言でトラブル多いCSVよりTSV使って欲しいわ
2017/08/20(日) 00:32:23.71ID:ZcNe1uIUa
どっとも同じにしか思えないけどw
CSVで起こるトラブルは全部起こるんじゃないの?
セパレーターが違うだけじゃんw

ただ、TSVってクリップボード経由でエクセルに矩形(N列×M行)のデータ
貼り付けに使えるんだよね。
それ以外の用途で使ったことないなあ
2017/08/20(日) 01:18:43.49ID:sHrA4xR7a
>>536
いやいや普通のテキストには普通にコンマ入ってるけどタブは入ってない
これが重要
2017/08/20(日) 01:21:28.72ID:ry172e0x0
TVで報道されない真実


集計マシーン  ムサシ


作ってる会社は?


wwww
一番触れられたくない部分www 税金垂れ流しで身内がばぶってる糞安倍特需
2017/08/20(日) 01:53:56.95ID:dZsjl021a
>>537
確かにカンマの方が頻度が圧倒的に高いのはそうだね

プログラマの端くれだからどうしても「例外的な状況でも問題を起こさないか?」
って視点で考えちゃうけど、現実論としてはそうかもしれん
2017/08/20(日) 02:16:19.45ID:g2LxWR3u0
>>537
それを区別するためにダブルクォーテーションを先頭と末尾につけて更にドツボにハマるケースとかあるしな
2017/08/20(日) 03:12:20.91ID:sDPteTwuM
そう、C#ならね
2017/08/20(日) 03:14:12.06ID:sDPteTwuM
>>535
え、もしかしてcsvのcって、カンマで、tsvのtってタブなの??
543デフォルトの名無しさん (ワッチョイ 5bc8-faiX)
垢版 |
2017/08/20(日) 05:20:55.44ID:Z/sZ4AZQ0
だから言ってるだろ
ソースに書いたほうが何もかもいいんだよ
いちいち別ファイルにして読み込んで混乱してもなんにもいいことはないし
修正にも手間がかかる
仮想的にデータを修正して結果がどうなるか調べていって新たな実験のプランを立てたりもするのだから
デリケートでミスが多い型式にするのも可読性を犠牲にするのも何も合理的じゃない
ソースにデータを書いてはいけないというのはただの思いこみに過ぎない
2017/08/20(日) 05:41:01.10ID:MYcnjkMXM
>>543
データ変わるときには再コンパイル?
2017/08/20(日) 08:23:09.88ID:NOqm8CtN0
引っ込みつかなくなったガキ
546デフォルトの名無しさん (ワッチョイ 5bc8-faiX)
垢版 |
2017/08/20(日) 09:11:36.31ID:Z/sZ4AZQ0
>>544
もちろん
C#なら一瞬 なんならプロジェクト分ければそこしかコンパイルされない
2017/08/20(日) 09:18:37.94ID:WBEiN1za0
TSVを使えると言うならソース側のソフトもいじれることを示すわけで
両方いじれるならIPCでも使ったほうが使い勝手が良さそう

ケースバイケースだけどね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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