C#, C♯, C#相談室 Part96

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 7633-kUv4)
垢版 |
2021/12/20(月) 11:03:25.88ID:sdn/+VfW0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/12/24(金) 19:07:23.85ID:kDNbEesr0
1乙
13デフォルトの名無しさん (ワッチョイ e95f-4nvB)
垢版 |
2022/01/07(金) 01:04:58.15ID:wvMkhd+/0
WPFやWinUIなら出来るけど
2022/01/07(金) 19:01:19.47ID:6zNCaZbD0
C++のvectorは、値型だと突っこめる奴がいないレベルの低さに涙が出る
2022/01/07(金) 19:34:32.36ID:qow9t6Ky0
恥ずかしい誤爆だな。
初心者のくせにマウンティングしようとするからだぞ。
2022/01/19(水) 13:00:14.97ID:sR6sbC/m0
.netframework4.7+WinFormでフォームのActiveControlがTextBoxで
そのコントロールのValidatingイベントが実装されていたらValidatingイベントを呼び出す
ってのをやりたいんですがいい方法はないですか?
if ((this.ActiveControl is TextBox box) && !(box.Validating is null))
{
 var args = new CancelEventArgs(false);
 box.Validating(args);
}
こんな感じに書ければいいんですが「Validatingは+=、-=の左辺のみ使用できます」とエラーになってしまいます

リフレクション使って無理矢理OnValidatingを呼び出すしかないんですかね?
2022/01/19(水) 13:42:26.63ID:oO7gN1wAa
Textbox派生クラス作ってOnValidating()呼び出したら?
2022/01/19(水) 18:56:18.18ID:DmIv8IzU0
イベントの正体はマルチキャストデリゲートのはずだから
MulticastDelegate.GetInvocationList でいけんじゃね

つかコントロール参照とれてるなら普通にInvokeするだけで良い気がしてきた
2022/01/19(水) 22:31:55.60ID:hgfWYzZO0
ところがどっこいeventのマルチキャストデリゲートはprivate扱いなので外から触れないのだ
2022/01/20(木) 06:40:21.62ID:yvia8PDa0
デリケートな問題やね
2022/01/20(木) 07:45:00.86ID:UFDwubQ6M
ハートはもう気ままにreflection♪
2022/01/20(木) 19:49:35.36ID:4okD0pz10
デリケートゾーンのかゆみにはタイガーバーム♪
2022/01/20(木) 20:31:44.75ID:EmGHfkcx0
キンカンと薄荷油お勧め
2022/01/21(金) 07:25:25.81ID:Yyf/9wZ7M
private をc# で突破するのは
system.reflectionをggrたまえ
2022/01/21(金) 07:44:34.97ID:cI8Ya7xA0
それってリリースビルドでも大丈夫なん?
2022/01/21(金) 07:48:43.10ID:Yyf/9wZ7M
もちろん
DataGridのプライベートメンバーを
操作するサンプルとかが転がっている
2022/01/21(金) 08:19:27.27ID:Gz0vCIiGa
正攻法は派生。次点でreflectionでprotected
それらで解決できる問題なのにreflectionでprivate触るのはただのバカだよ
privateは基本的に保証されないものだから突然使えなくなっても文句言えない
2022/01/21(金) 11:22:05.14ID:Yyf/9wZ7M
ネタにマジレスカッコ悪
2022/01/21(金) 13:23:55.95ID:PpWisB0YM
マ板ならともかくム板の相談スレで悪質なネタ書くような奴にはなりたくないな
2022/01/21(金) 13:58:52.25ID:Gz0vCIiGa
どう見てもネタじゃないだろ。忘れてくださいってだけだよ
本気でネタだと思って書いてたなら単なる基地外。でもまあ5chには多いから本気でそう思ってたのかもしれないがw
2022/01/22(土) 13:53:51.52ID:60KCKgbr0
どう考えても20からの流れはネタだろぅ
なんか悪いもんでも喰ったのか?

トウダイツブは毒腺除去せずに売っている場合があるから気をつけろよ。
2022/01/22(土) 15:39:53.29ID:rpi4epE/0
>>31
どうみても>>24からの流れはネタになってないんだが
ちゃんと流れ見えてるのか?ネタは外すと痛いぞ
2022/01/22(土) 19:54:59.23ID:60KCKgbr0
実装可否ではなく俺の美学に反する奴は全て悪。
って主張そのものがネタだと思っていたんだがマジだったのか。

そういう主張はnoteかquiitaにでも書きたまえ
2022/01/22(土) 23:08:24.28ID:OPsihse90
ガイジ多すぎ
2022/01/24(月) 12:17:52.32ID:8sRMh2mLM
いまいち何がしたいのか分からんが、Validatingの処理を別メソッドでやるようにしてEnterイベントでそのイベント実行すればいいんでないの
継承コントロール作れるなら継承した方がいいけど
2022/01/24(月) 14:24:45.58ID:VRumLvNTM
よくわからないが最近のC#は
private メンバーを派生クラスから
アクセス出来るようになったのかね?

19にはprivateと明記されているが
別の世界線の住人かな?w
2022/01/24(月) 14:37:40.44ID:zeqExr0Ka
privateに格納されてるイベントを呼び出す処理が実装されてるんだよ
それがon〜系の関数でprotectedもしくはpublicになってる
今回はprotectedだから派生してやればそれを呼び出せるということ
2022/01/24(月) 14:51:41.28ID:VRumLvNTM
それは、19の時点で公開されている情報では無いな

只の後出しじゃんw
2022/01/24(月) 14:55:19.40ID:zeqExr0Ka
>>16-17 を見てみろ。質問主もon〜を把握してるとこから始まってるんだよ・・・
2022/01/24(月) 15:08:11.62ID:VRumLvNTM
ならミスリードは19やね
2022/01/25(火) 06:41:35.44ID:iMjZ0/CX0
19で話の流れが変わった事に対して
別の回答を出した24に対して
いきりマウントした27がガイジという結論やな
2022/01/25(火) 09:43:08.82ID:9Tw1d9u5M
>>41
> 別の回答を出した24に対して
本人によるとネタらしいぞ
また恥の上塗りしちゃったねw
2022/01/25(火) 10:48:13.94ID:f2t7Ea9PM
基地はNG推奨
44デフォルトの名無しさん (アウアウウー Sa9b-PN0l)
垢版 |
2022/02/05(土) 16:47:04.66ID:tJRnKD74a
構造体の配列のメモリ確保で
データを入れる事は
できますか
A[] ={{1,2,2},{3,4,2},{1,5,6}}
みたいなノリの

お願いいたします
45デフォルトの名無しさん (アウアウウー Sa9b-PN0l)
垢版 |
2022/02/05(土) 16:51:55.17ID:gB/WrKWla
それと多重配列で
初期値データ入れたり
2022/02/05(土) 17:50:07.67ID:B70fTfWxa
A = new int[][] { new int[] { 1, 2, 2 }, new int[] { 3, 4, 2 }, new int[] { 1, 5, 6 } };
47デフォルトの名無しさん (アウアウウー Sa9b-PN0l)
垢版 |
2022/02/06(日) 06:30:33.16ID:SLNZfJCCa
それと多重配列で
初期値データ入れたり
2022/02/06(日) 11:36:56.19ID:PShjp8Rsa
多重配列がどんなか知らないけどできるだろ。ぐぐれ
2022/02/06(日) 15:12:56.93ID:OIlcPbSe0
多重配列とか勝手に用語作って質問するのは良くないよ。
2022/02/06(日) 15:21:21.57ID:+LnLbHsI0
コマンドプロンプトで起動するソフトで
コマンドプロンプトだと途中処理取得できるけど

C#上でリアルタイムで途中処理表示させるのって
スレッドを非同期にするやりかたとか考えた方がいいの?
2022/02/06(日) 15:24:24.54ID:PShjp8Rsa
プロセスの標準出力を読むだけ
C#側がシングルスレッドでもリアルタイムに取得して表示できる
2022/02/06(日) 17:31:20.88ID:TTEcICQ70
>>49
グーグル先生は賢い「多重配列」で検索すると「多次元配列」が出てくる。間違える人が一定数居るんだな。
c#だと多次元配列じゃなくてコレクションを使うほうが多いが。
2022/02/06(日) 17:34:23.14ID:TTEcICQ70
>>50
非同期にしなくても表示出来るが非同期の方がスマート
2022/02/06(日) 20:51:37.74ID:St9v7rC+0
C#で多次元配列とか速度も遅いし普通は使わん
2022/02/07(月) 00:06:03.73ID:tbXg2wz+0
せやな
2022/02/07(月) 08:00:35.82ID:2lq/vobIM
コンソールを開きたまえ
2022/02/07(月) 15:46:58.65ID:zWOfGBGY0
C#を独学で勉強したいんですが何から手をつけたら良いでしょうか
言語はシェルやvbaはできます、Pythonもちょっとだけ
2022/02/07(月) 15:56:11.87ID:ZbbRMlPga
なんでc#やりたくなったのか思い出してそのやりたかったことをどうやったらできるかぐぐってやればいい
とりあえずvsインストールしてさっさと始めろ
考えたり人に聞くよりもまずは手動かせ
2022/02/07(月) 16:05:15.62ID:zWOfGBGY0
C#ってvisualstudioのインストールだけで出来るの?
PythonみたいにC#自体はインストール不要なん?
2022/02/07(月) 16:11:45.01ID:ZbbRMlPga
vsのインストーラー起動したらc#をインストールするかどうかチェックするところがある
とりあえずやってみりゃ分かる
2022/02/07(月) 16:17:47.79ID:zWOfGBGY0
なるほど、ありがとうございます
ちなみにやりたいと思った理由はなんとなくの思いつきです
2022/02/07(月) 17:33:25.04ID:CWmTnMKY0
最初に画面作る→コード作る
勝手にコード作るから書き換えるときリファクタリングでちゃんとなおさないと
ボタンとの連携が外れたりしてだるい
2022/02/11(金) 20:18:35.80ID:Wnuvjl9G0
C#EntityFrameworkでテーブルの有無をチェックする方法ってありますか?
今はDbSet<Entity>のFirst()で例外が出たら、で仮チェックしてます
SQL文で書けば良いと言われればそれまでですが、それとは別にLINQや
DbSet<Entity>.Where(x => x.~ = Id);
みたいな方法でチェックする事はできるのでしょうか?
2022/02/11(金) 20:31:49.53ID:kVpyHF8c0
わいならSELECT文書くな
2022/02/11(金) 20:38:37.22ID:dtTIM78z0
Dictionary<string, Func<T, TRESULT>>
みたいな事をやりたいのですが
どう書くのが正解でしょうか?
2022/02/11(金) 20:57:51.73ID:vdb8lbDWa
適当な関数宣言をもったinterface作って、それ派生のclassで実装して
dictionary<string, interfacename>?
2022/02/11(金) 21:24:52.36ID:Wnuvjl9G0
適当だが書き方の話なら

どこかに書く
bool func(int n) { if (n <= 3) { return true; } else { return false; } }

var a = new Dictionary<string, Func<int, bool>>();

a.Add("test2", func);
bool b2_t1 = a["test2"](1);
bool b2_t3 = a["test2"](3);
bool b2_f5 = a["test2"](5);

ラムダ
a.Add("test1", x => { if (x == 1) { return true; } else { return false; } });
bool b_t1 = a["test1"](1);
bool b_f3 = a["test1"](3);
bool b_f5 = a["test1"](5);

Funcを加工するなら>>66のようにinterface、他オブジェクト型とか識別子渡して型チェックとか?
68デフォルトの名無しさん (ワッチョイ 1736-Jms/)
垢版 |
2022/02/11(金) 21:26:42.58ID:Wnuvjl9G0
>>64ありがとうございます
SELECT 〜 FROM 〜やOBJECT_IDのべた書きって事ですよね
それしかないんかな
2022/02/11(金) 22:10:25.35ID:dtTIM78z0
>>66,67
すみませんありがとうございます
Tが色々な型のFuncを登録したいのですがinterfaceの書き方がわかりません
2022/02/11(金) 22:17:26.15ID:w2aWSXHv0
そもそもなぜテーブルがないとかいう状態になるのか
その設計を見直したほうが良いんじゃね
2022/02/11(金) 22:20:58.05ID:kVpyHF8c0
あれだろ、ワークテーブルがもし存在したら消したりとか
年度でテーブルを分けたいとかわけわからんこと言われたりとか
そういう用途だろ
2022/02/11(金) 22:26:34.03ID:vdb8lbDWa
>>69
実際どんなのが欲しいのか知らないけどこんな感じでいいんじゃないの?
interface aaa
{
TRESULT bbb<T, TRESULT>(T n);
}

class AAA : aaa
{
public TRESULT bbb<T, TRESULT>(T n)
{
throw new NotImplementedException();
}
}
2022/02/11(金) 22:30:29.44ID:Wu/zW80b0
>>69
欲しいのは本当にinterfaceか?って疑問が出るが

ジェネリクスinterfaceの定義方法は(System.Collections.Generic.)IEnumerableの定義を見に行けばなんとなく分かるとは思う

あとinterfaceはinterfaceからしか継承できない

>>65の書き方だとジェネリクスclassになりそう
2022/02/11(金) 22:34:33.50ID:w2aWSXHv0
Dictionary<string, Func<object, object>>ではだめなのか
2022/02/12(土) 08:20:21.64ID:X2Srr7cu0
>>64
それが1番分かりやすくて単純だ
2022/02/12(土) 17:09:02.11ID:HCWO3i2I0
.net 6で、DataGridViewにDataSourceをバインドして表示する時、
データ量が多い(約24万レコード)と一時的に応答なしになります。
※データ取得は別スレッドで行っています。

サブフォームで表示しており、処理中はメインフォームも応答なしになりますが、
メインフォームとサブフォームを別スレッドにするみたいなのは無理ですか?
2022/02/12(土) 17:25:09.00ID:XcSi1DQ3a
VirtualMode=true
にする。その他もろもろ処理加える必要あるからぐぐれ
2022/02/12(土) 18:34:31.92ID:X2Srr7cu0
>>76
>>77が言ってるように仮想モードを使うんだよ。グリッドで見えてる部分だけを読み込む。
サンプルコードがMSDNのサイトにあるから頑張って実装してくれ。
2022/02/12(土) 21:15:10.31ID:wWgyF7+Aa
窓を閉じたときに
MethodInvokerの中の処理がまだ実行中で例外出すんだけど

停止させるか完了するまでフォームの廃棄を待つ方法は無いの?
2022/02/12(土) 21:27:27.68ID:C+pjCsCl0
一旦FormClosingでキャンセルしたあと完了してから改めてCloseする
2022/02/13(日) 12:57:34.90ID:5Mv4IyiB0
>>69
Genericだとコンパイル時点で型決定する必要があるから、色々な型に対応させたいとかなると
>>74が言ってるみたいにobjectにするか、dynamicにでもするしかない
2022/02/13(日) 14:18:56.36ID:3OIdnfKh0
>>81
嘘教えんな
ジェネリクス定義側はFunc<T, TResult>みたいにコンパイルに型決まってないだろうが

Func<object, object> とかいうクソみたいな型を使わせようとするな
2022/02/13(日) 14:35:33.11ID:TxpWrVyK0
dic.Add("a", (int a) => a * 2);
dic.Add("b", (string b) => b + b);
をやりたいって質問であるという想定なんでしょ?
2022/02/13(日) 14:40:02.85ID:5Mv4IyiB0
>>82
なら出来るやり方言ってみろよ
2022/02/13(日) 14:40:38.46ID:3OIdnfKh0
いろんな型のFuncを受け付けるようにするならそれ用のclassを作ってしまった方が手っ取り早い

public class MyDictinary<T, TResult> : Dictinary<string, Func<T, TResult>{...}

Funcをなんでも受け付けるようにするなら
public class MyDictinary<TDelegate> : Dictinary<string, Func<T, TResult> where TDelegate: Delegate {...}

どうしてもinterfaceにしなくちゃいけないなら
public interface IMyDictinary<T, TResult> : IDictinary<string, Func<T, TResult>{...}


ごちゃ混ぜのFuncを受け付けるようにするとFunc呼び出し時に大変な思いをするだけだからやらん方がいい
2022/02/13(日) 14:46:43.73ID:ifSJDHUhM

>>69はDictionaryいっこにいろんな引数型/戻り値のFuncを入れたいと言ってるみたいだから>>81しかないと思うんだけど・・・
引数型/戻り値型毎に別々のDictionaryにするだけなら、たとえば
var dic1 = new Dictionary<string,Func<int, string>>();
var dic2 = new Dictionary<string,Func<int, int>>();
var dic3 = new Dictionary<string,Func<string, string>>();
みたいにT/TResultの組み合わせに応じて別変数にするだけで解決するような・・?
なんでわざわざ>>85みたいなclassなりinterfaceなりを作る必要があるのかわからない
2022/02/13(日) 14:48:17.51ID:5Mv4IyiB0
>>85
それで違う型の引数のdelegateどうやって突っ込むつもりだ?
アホなのか
2022/02/13(日) 14:54:01.04ID:3OIdnfKh0
マジで1つのインスタンスに別の型のdelegateが入ればなんでもいい前提なん?

取り出して呼び出すときに引数/返り値型調べないといけないが
2022/02/13(日) 14:56:56.20ID:+oV/29aBd
DynamicInvoke使えばいい
2022/02/13(日) 15:19:09.62ID:ifSJDHUhM
ていうか>>85ってコンパイル通る?
「>」ひとつ付け忘れとかDictionaryのミススペルはともかくとして、
2つめの書き方でT/TResultの型はどこから決まるんだろう?

それとも
public class MyDictinary<TDelegate> : Dictionary<string, TDelegate> where TDelegate: Delegate { }
を意図してるのだろうか
Func<object, object>をクソと言ってるからには引数1つの制約すらつかなくなるこんなクソ以下の書き方を意図してるとも思えないけど・・・
2022/02/13(日) 15:28:36.94ID:5Mv4IyiB0
そもそも、そのDictionary使って何したいかまでは知らんから
それを言えば、もう少しマシな案なりが出てくるとは思うが
2022/02/13(日) 15:30:03.46ID:3OIdnfKh0
>>90
携帯からやったから酷いミスしてるのは悪かった

T/TResultの型を決めないならって意図で書いてる
当然Func<object, object>と同じで使うときに酷い目に遭うが

Func<object, object> だと引数型がobjectを受け付けないといけない縛りができるから
「いろんな関数を受け付ける」という要件を満たせない

Delegateだとその縛りはなくなる
ラムダを受け付けられなくなるが
2022/02/13(日) 15:34:09.27ID:Igq9caCG0
質問者は
1つのDictionaryの中に異なる型を混在させたいという話をしてるのか
1つのDictionaryの中は同じ型のみ入るが、型が異なる複数のDictionaryをジェネリックで統一して扱いたいという話をしてるのか

前者ならジェネリックを使うケースではなさそう
2022/02/13(日) 16:07:38.09ID:5Mv4IyiB0
単純なインターフェース使う例だとこんなもんかな
受け取る結果の型が決まってるなら、dynamic使わんで済むけど
public interface IJob
{
dynamic Run();
}

public class SomeJob<T1, T2> : IJob
{
public T1 Param1 {get;}
public T2 Param2 {get;}

public SomeJob(T1 param1, T2 param2)
{
Param1 = param1;
Param2 = param2;
}
public dynamic Run() => (dynamic)Param1 + (dynamic)Param2;
}

public static void Main()
{
var dic = new Dictionary<string, IJob>()
{
{"a", new SomeJob<int, double>(2, 3.3) },
{"b", new SomeJob<float, double>(5.5f, 16.612340) },
};
Console.WriteLine(dic["a"].Run());
Console.WriteLine(dic["b"].Run());
}
2022/02/13(日) 16:11:15.84ID:5Mv4IyiB0
SomeJobをジェネリックにしたけど、別にIJobを実装したクラス個別に作っても構わない
2022/02/13(日) 17:02:55.32ID:7+Po28QvM
わざわざinterfaceを定義する意味がわからん
たぶん>>94はdynamic型にキャストしたデリゲートを直接呼び出せることを知らないんだろう
2022/02/13(日) 17:24:19.17ID:5Mv4IyiB0
さすがにそれは判るわw
>>69でinterfaceが判らんって書いてるからサンプルで出しただけ
2022/02/13(日) 17:47:23.01ID:DvSkIP620
別にインターフェイスを使いたいってわけじゃないだろ

var dic = new Dictionary<string, Delegate>();

Func<int, int> f1 = (i => i + 1);
Func<string, string> f2 = (s => s + "さん");
dic.Add("1", f1);
dic.Add("2", f2);

Console.WriteLine(dic["1"].DynamicInvoke(2));
Console.WriteLine(dic["2"].DynamicInvoke("名無し"));

これでいいんじゃないか
2022/02/13(日) 19:33:32.60ID:gSu1aBn10
>>98
なんかすげーなまじで
仕事で使ってるだけのわいには到底思いつかんわ

しかしこれなんか業務で使える場面あるん?
2022/02/13(日) 19:55:15.91ID:DvSkIP620
>>99
本当は何がやりたいかは知らんわ

>Dictionary<string, Func<T, TRESULT>>
>みたいな事をやりたいのですが
って話だからな
2022/02/13(日) 20:48:10.88ID:7zxfmdEw0
本当にやりたいことを突き詰めるとそんな面倒なことをしなくてもよい解決方法があったりするのはよくある事よな
今回の件でも当てはまるかどうかは知らんけど
2022/02/15(火) 12:56:44.30ID:XMXX+kQj0
例えばFFMPEGをC#で起動させてるときに
エンコード処理みたいな定期的に値が返ってくるやつって
別スレッドでFFMPEGを走らせて
本スレッドではテキストボックスあたりに出力するようにしたいんだけど
これってFFMPEGの処理が終わるまでメインスレッドはwaitしないとダメってことですよね?

単独スレッドで終了した結果は表示できるんですけど
2022/02/15(火) 13:01:30.90ID:XQ5fPZCEa
そんなことはない
別スレッドで読みだした値をメインスレッドに送って、メインスレッドでその値を表示すればいい
別スレッドからUIに表示しようとしたらエラーになる
2022/02/15(火) 17:00:40.59ID:/St4XHrW0
>>102
本スレッドのTextBox.TextにInvoke使って書き込むんだよ
2022/02/15(火) 19:16:59.08ID:jLK4fSzed
たぶんGUIアプリ作ってるんだろうけど
GUIのデータはメインスレッドしか書き換えちゃダメなルールがある

TextBox.Invokeでメインスレッドに自分のデータ変えてくれってお願いするか、
WPFのBindingならメインスレッドがデータ持ってないからデータ取りに来いってできたりする
2022/02/15(火) 19:24:23.63ID:IqKJXua+0
今のc#はスレッドを安易に使えるがスレッドには深い闇がある。
107名無し募集中。。。 (ワッチョイ ffad-aF3f)
垢版 |
2022/02/20(日) 04:59:16.93ID:gLgXgTw20
c#ってvisual studio でテストする時って
アプリの前回値みたいの記憶できないの?
〇〇フォルダのパスとか記憶したいんだけど
108デフォルトの名無しさん (JP 0H1f-JnE0)
垢版 |
2022/02/20(日) 05:45:33.44ID:9eA/EulNH
Windows上だと何日動かしてもメモリ使用量40MBくらいで安定してるプログラムが
(VS2002の診断ツールで確認)

ラズパイのMono上だと徐々にメモリ使用量が増え続けて
1日くらいで4GB到達して落ちるんだけど何故だろう
109デフォルトの名無しさん (アウアウウー Sae7-iDSx)
垢版 |
2022/02/20(日) 08:10:15.15ID:k8LvFvhxa
タイマーかなんか仕掛けて手動で↓を呼ぶ
GC.Collect(2, GCCollectionMode.Forced, false, true);

それで減らないならMonoのランタイムがそもそもUNCOと思われ。

Unity Profilerで表示されるMonoで使用メモリ量が膨大になってしまう
https://teratail.com/questions/238133
2022/02/20(日) 08:11:50.49ID:/uCWXFvO0
VS2002?
2022/02/20(日) 15:59:54.94ID:gLgXgTw20
dataGridView の中のリストの大きさってどうやって変えるの?
枠の大きさは変えられるんだけど
中のリストだけ小さいままでこまってる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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