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

■ このスレッドは過去ログ倉庫に格納されています
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/01(土) 02:10:53.25ID:1nrcRWj9a
まだやってるんかーい

想像だけど、巡回の彼は、単にあるメソッドAが同時に複数のスレッドで
実行されるのを禁止するだけでは足りなくて、各スレッドがメソッドAを実行する
順番を制御する必要があると「忖度」したんだと思うけど、質問者はそんなこと
どこにも書いてない。

もちろん質問者の本当の要件がそうである可能性は否定できないが、
質問の文面上にはそんなこと書いてない
2017/07/01(土) 07:33:43.70ID:41xGfxtKM
そもそも「他のスレッドを巡回」という表現がよくないね
これはスレッドが他の複数のスレッドを直接管理していないと出てこない表現だ
そんな雑なコードを書いてはいけない
スレッドは他のスレッドのことを知らなくても動作するように書くこと
2017/07/01(土) 07:58:29.50ID:qXTa/p8N0
>>551
逆でしょ
> 単にあるメソッドAが同時に複数のスレッドで
> 実行されるのを禁止するだけ
しか考えてなくて>>550も指摘してるけどメソッドAの実行タイミングを考えてない
プログラムの構造も>>514, >>552が指摘してる通りメンテが面倒になるし
2017/07/01(土) 08:05:20.30ID:3TPEFdGE0
普通に
List<Unko>でいいじゃん
駄目なの?
2017/07/01(土) 08:25:07.47ID:tqv04I/40
>>554
巡回君が言ってるようにlockの取得順が問題になるような極端な状況だと間にバッファを用意したところでどうせ処理しきれない
じきにOutOfMemoryを起こす
2017/07/01(土) 08:27:49.75ID:3TPEFdGE0
>>555
Unko1つでスレッド1つだけど
そんなにたくさん作るの?
2017/07/01(土) 08:30:44.27ID:tqv04I/40
>>556
だったらロックでいいだろと言ってんの
2017/07/01(土) 08:33:11.16ID:3TPEFdGE0
>>557
それは別の話とした時
List<Unko>問題起きないよね?
559デフォルトの名無しさん (ワッチョイ 5d23-nIbb)
垢版 |
2017/07/01(土) 08:37:34.56ID:PzxrAcCk0
そもそも元々が非同期だっつってんのに処理の順番もクソもあるんか?
2017/07/01(土) 08:38:45.75ID:tqv04I/40
>>558
Unkoが各スレッドからの要求でそれがスレッドと一対一ってこと?
それ各スレッドが同時に1つしか処理を要求できないからスレッド内でリエントラントにならないし
一つだけ大量の処理を要求するスレッドがあると滞るよ?
2017/07/01(土) 08:41:16.83ID:3TPEFdGE0
>>560
それはUnkoの中身の話だよね
仕組みとしてはこれでいいっしょ?
2017/07/01(土) 08:42:02.17ID:cQ2ajDdZH
queueなのか
stackなのか
プライオリティ付きなのか
ラウンドロビンなのか


さぁどれ?
2017/07/01(土) 08:43:40.84ID:tqv04I/40
>>561
良くないよ
スレッドごとに分ける積極的理由がない
だったらわざわざ面倒な構造を作るよりスレッドに関係なく要求単位で共通のキューに放り込めばよい
2017/07/01(土) 08:45:52.42ID:3TPEFdGE0
>>563
今問題なのは動くかどうかだよ
実現できないなら議論してもしょうがないだろ
2017/07/01(土) 08:49:05.51ID:tqv04I/40
>>564
だから「動かない」理由は560で既に示しただろう
2017/07/01(土) 08:50:51.93ID:3TPEFdGE0
>>565
じゃあ議論する必要ないな
実現不可能でFA
2017/07/01(土) 09:02:35.34ID:s5XdkdiI0
今日も真っ赤にしてやがるのかキチガイの群め
2017/07/01(土) 09:22:06.32ID:41xGfxtKM
2ちゃんはコードを書きにくいからディスカッションが捗らないね
運営は古臭いシステムを捨てて早くMarkdownをサポートしなよ
2017/07/01(土) 09:26:03.94ID:7kq0BhxN0
C#(.Net4.5)でSQL Serverに読み書きしたいんですがDataSet?というのが便利なのでしょうか?
DataGridViewやテキストボックス、チェックボックス等でSQL serverを更新・追加したいのですがやったことがないのでどれがいいでしょうか?
もちろん運用テストはしっかりするつもりです
2017/07/01(土) 09:43:21.59ID:41xGfxtKM
>>569
DataSetは古いのでもう誰も使ってません
2017/07/01(土) 09:46:50.49ID:QOMwfPgTM
>>569
WinFormsは10年以上前から時が止まってるからそれでいいよ
Webに乗り換えるんならEFとかもっと今風の新しいのも選択肢に入るけど
2017/07/01(土) 10:19:32.35ID:RqnO9maa0
>>569
今やるならdapperかEFかね
未だにDataSetの呪縛に囚われ続けて辛い
2017/07/01(土) 10:52:13.85ID:yOorSSFm0
DataSet というか DataTable でいいだろ
軽いし
2017/07/01(土) 10:59:58.96ID:Aeoj/xNP0
軽い…?どこの世界の話ですか?
2017/07/01(土) 11:02:52.60ID:RqnO9maa0
>>574
データ量が少ないと軽いからプロトタイプ作成で行けると勘違いして、いざ作ると一気に遅くなったわ
2017/07/01(土) 11:06:33.55ID:3RWjHzVk0
>>569
Datasetは便利だから使ったほうがいい
VisualC#2015パーフェクトマスターにも載っているくらいだから
けっして古くないんだよ。
2017/07/01(土) 11:09:22.98ID:Aeoj/xNP0
そりゃ書籍は機能を網羅する必要があるから載せているだけだよ
「載っている=今でも使える」にはならないぞ
2017/07/01(土) 11:13:14.26ID:7wn2WOTV0
>>569
なぜ今さらサポート切れのランタイムを?
2017/07/01(土) 11:16:34.88ID:3RWjHzVk0
DataSet使わないで何使うんだよ?
2017/07/01(土) 11:49:40.14ID:41xGfxtKM
Dapperがイイね
理解が簡単だし速いし生産性も高い
2017/07/01(土) 12:45:36.61ID:TklztT9sa
各環境事でSQLかける人にはそうだろう
2017/07/01(土) 13:26:56.32ID:41xGfxtKM
SQLは環境ごとでいいんじゃないか
そんなところで互換性を確保するメリットは小さいだろう
リポジトリなどもう少し抽象的な層で互換をとろう
2017/07/01(土) 16:55:26.39ID:R3CPGyWF0
ちなみにEFは

エンティティティフーレムワークの略だからな
2017/07/01(土) 20:55:39.87ID:7kq0BhxN0
返信ありがとうございます
とりあえずDataset使ってみたいと思います

>>578
VS2010使ってるからです
2017/07/01(土) 22:24:38.81ID:E3dk6Acc0
お前ら、何使ってるの?
Dataset?ダッパー?ef?
2017/07/01(土) 22:25:43.42ID:41xGfxtKM
Dapperがベストバランスパッケージ
2017/07/02(日) 08:52:01.75ID:IJgSt27L0
http://i.imgur.com/ztvvQIS.png
このボタンを押したとき画像がunko1からunko2に切り替えるにはどうしたら良いでしょうか?
ネット上の画像を呼び出す(切り替える)ことはできるのですがデータ内の相対パス絶対パスがいまいちよくわからなくて困ってます
2017/07/02(日) 08:57:33.81ID:CReiXwHD0
>>587
ネット上の参照はやったことはないけどunko1の同じ形式のパスを適用したらいいだけでは
「データ内の」がいまいちわからないがパスが相対パスならば補完して絶対パスにするとか
ローカルでの参照ならそうする
2017/07/02(日) 09:13:50.60ID:IJgSt27L0
出来ました!
ありがとうございます!
2017/07/02(日) 10:04:30.01ID:IJgSt27L0
出来てなかった
絶対パスだと別のパソコンに移したりしたときとかに画像が読み込まれん
http://i.imgur.com/A7kdZFD.png
これをこうすればできると思ったけどこれだとエラーを吐いてしまいます
なぜでしょうか?
当方C#どころかパス云々についての知識もさっぱりの初心者なので・・・
2017/07/02(日) 10:29:02.34ID:0JAKzAeZM
>>590
まずはC#の入門書とVC#のチュートリアル本を一通り終えてきたら?
悪いけどそんなレベルでいちいち2chで質問してたら何年経っても勉強終わらんぞ
2017/07/02(日) 10:30:38.54ID:qQa06oVOM
というか2ちゃんは勉強や議論には不向き
Markdownも使えないゴミシステムなんて今や罵り合いぐらいにしか使えん
593デフォルトの名無しさん (アウアウカー Sae9-nIbb)
垢版 |
2017/07/02(日) 10:44:40.55ID:BaqIvPNda
C#を勉強し始めた初心者ですが質問させて下さい
LIST<T>に、あるクラスのインスタンスを追加していって、必要なくなったらRemoveしてるのですが、このRemoveしたインスタンスの破棄処理は明示的に行ったほうがいいのでしょうか
その場合どういう風にすればいいのか教えていただけないでしょうか
2017/07/02(日) 10:49:58.90ID:uZLVxHTaa
何を突っ込んでるかによる
PCのリソースを独占したり圧迫するようなものなら破棄作業したほうがいい
でもよくあるデータだけの小さなクラスのインスタンスはほっとけばいい
2017/07/02(日) 11:13:27.07ID:EblgvX+p0
>>593
list
2017/07/02(日) 11:13:46.07ID:qQa06oVOM
>>593
状況次第だよ
インスタンスの所有者(破棄の責任者)はそのリストなのか否か
要素のクラスがIDisposableを実装しているか否か
2017/07/02(日) 11:16:06.46ID:EblgvX+p0
>>593
listにのみインスタンスをnewしてるならlistからRemoveしたらガベージコレクションされると思うけど(タイミングは知らん)
2017/07/02(日) 11:57:12.72ID:nvssW8dPa
>>593
(1) リストから削除するアイテムの型がIDisposableを実装している
(2) リストから削除後はもう使うことはない

この2つを満たすならDispose呼んだ方がいいのかもね。

俺ならやらないけど、コード1行でも減らさないと死ぬ病気なら
拡張メソッド使ってIDisposable実装してたらRemoveと同時にDispose呼ぶメソッドでも追加するとか
2017/07/02(日) 12:25:36.45ID:nvssW8dPa
っていうか、.NET のガベコレとか理解してないならまずそっちが先決だね
別に難しい話じゃないし
2017/07/02(日) 14:03:45.88ID:vHDN06g30
俺のアプリは10秒に一度強制ガベコレが動く
って実装にしといたら引き継いだやつが組んだコードが落ちまくる
強制ガベコレ動かすと落ちるプログラム組む奴って結構いるよ
オススメ
2017/07/02(日) 15:03:56.21ID:qQa06oVOM
逆に疑問なんだけど、どうやったらガベコレで落ちるようなコードを書けるんだ?unsafe?
2017/07/02(日) 15:24:12.89ID:vHDN06g30
>>601
すでに死んでいるから
普段はガベコレが動くまで偶然生きていて
強制ガベコレを動かすとすぐ削除されるから死ぬ
2017/07/02(日) 15:34:00.52ID:KsQTCCxQ0
rubyの拡張をC言語で書いてたりすると余裕でそんなことを起こせるが
c#でどうやったらそんなことになるのか全然わからん
2017/07/02(日) 15:39:04.23ID:E8kEd3o60
知ったか臭しかしないしスルーでいいよ
2017/07/02(日) 15:40:01.17ID:E2bjFKws0
p/invokeとかunsafeが絡めばよくある話だな。
2017/07/02(日) 15:47:41.79ID:vHDN06g30
>>603
Diposeしてるやつ使おうとしたりremoveatしてるやつをremoveatされてないかのように使ったりして死んでる
後中身の見えないクラスで実はしんでんすよその状態的な

後はマルチスレッド関係で削除してんのに別スレッドではそうでないつもりで動いてたり
強制ガベコレかけるとゾンビも速攻であの世行くし不具合発見にいい
こういうタイミングが微妙なコード書くやつのソースって落ちやすい
2017/07/02(日) 16:08:18.93ID:KsQTCCxQ0
普通using使うだろ
2017/07/02(日) 16:41:39.44ID:BVHjPtPq0
そういえば、使い終わったオブジェクトは using 使うなりして破棄してね。
ってリクエストしたら、try - catch の finaly で .dispose するからいいんだって言った人がいたな。
結果は同じだけど、どうせ直すなら using の方が素直な気がしたんだけど。まあいいけど。
2017/07/02(日) 16:50:21.19ID:8cy4cqEH0
>>608
usingの複数定義が気持ち悪いと言って頑なにfinalyでdisposeする人居たわ
2017/07/02(日) 16:51:54.15ID:vHDN06g30
>>607
開放されるかどうかは作り手の努力次第だけどなw
2017/07/02(日) 16:57:16.82ID:LSg2LORi0
なんかくせーなお前
技術的に風呂入ってる?
2017/07/02(日) 16:57:31.53ID:63jjEdz20
>>609
シコシコ
2017/07/02(日) 16:59:16.69ID:MoO3L/4V0
他人の作った関数が仕様通りに動作するかどうかはその作り手の努力次第、ってのと何か違うの?
2017/07/02(日) 17:19:56.91ID:vHDN06g30
>>611
ウルセェゾホラァ!( ‘д‘⊂彡☆))Д´) パーン
2017/07/02(日) 17:26:36.02ID:E8kEd3o60
>>610
そんなの using 関係ないだろ
自分のなけなしの知識全開かよ w
2017/07/02(日) 17:43:52.22ID:vHDN06g30
>>615
でもdisposeなら解放されるんでしょ?
2017/07/02(日) 18:49:49.73ID:E8kEd3o60
>>616
はあ?
using って単なるシンタックスシュガーだぞ
2017/07/02(日) 19:18:19.40ID:vHDN06g30
>>617
( ̄ー ̄)ニヤリ
619デフォルトの名無しさん (アウアウカー Sae9-nIbb)
垢版 |
2017/07/02(日) 20:12:27.11ID:ZKny9U86a
>>593です
レス頂いた皆様ありがとうございます
listの追加はインスタンスの作成と同時に行いlistから削除した後は2度と使用しません
そのクラスは個別のデータを管理するだけのクラスです
とりあえずあまり何も考えずGCの対象になると思い明示的な解放は必要ないのかなと思ってたのですが作法的にどうなのかと思い確認しました
ですので現状IDisposableは実装しておらず言わばリストから削除してほったらしの状態です
GCについてはあまり勉強していないので調べてみたいと思います
その他アドバイスありましたらよろしくお願いします
620デフォルトの名無しさん (アウアウエー Sa4a-kiAr)
垢版 |
2017/07/02(日) 21:55:59.98ID:19kDKEGSa
>>606
そんなコード書き奴いるのが驚きだけど、居るところにゃ居るんだなぁ。。。
2017/07/03(月) 07:19:58.02ID:oiFj/hKrM
>>620
> Diposeしてるやつ使おうとしたりremoveatしてるやつをremoveatされてないかのように使ったりして死んでる
これGC関係ないし
> 後はマルチスレッド関係で削除してんのに別スレッドではそうでないつもりで動いてたり
別スレッドだろうが参照もってりゃ回収されないし
どう見てもおかしい人だから相手しなくていいと思うよ
2017/07/03(月) 09:45:56.42ID:aLVc3s/F0
数日前からいるガイジだな
2017/07/03(月) 10:16:25.45ID:5B3ucqRJ0
>>621
強制ガベコレすると落ちるけどしないと落ちないときあるじゃん
ってまあヘンテコなコード書いてないとお目にかかれないけどさ
そんなことないと主張するなら別にそれでもいいよ
俺は困らないし
2017/07/03(月) 12:07:19.95ID:VcEmiG6s0
そうか困らないかよかったなおめでとさん
625デフォルトの名無しさん (ワッチョイ 2e96-naxa)
垢版 |
2017/07/03(月) 13:36:19.21ID:SOE5pMOT0
Visual StudioC#
同じ階層のフォルダをクリックしたら、設定を変更してメモ帳を起動でませんか?


構造
フォルダ0
ーーフォルダ1
ーーメモ.txt

フォルダ1をクリックしたら、同じファイルのメモ.txtを太字にして、
閉じる時に元に戻す。
626デフォルトの名無しさん (ワッチョイ 2e96-naxa)
垢版 |
2017/07/03(月) 13:37:07.82ID:SOE5pMOT0
>>625
太字にして起動でした。
2017/07/03(月) 13:50:01.76ID:SOE5pMOT0
すいません。
どうもテンパってる見たいです。

フォルダを開くと同時にメモ帳でフォルダ内のテキストファイルを全て起動
メモ帳を起動する前に 太字とファントにして文字サイズを変更したい。
メモ帳を閉じたら、設定を元に戻す

どうしたら良いでしょうか?
2017/07/03(月) 15:16:40.85ID:SV1wmXKG0
落ち着け
フォルダをクリックしたらってのはエクスプローラ上でってこと?

フォントはメモ帳開く前にレジストリ変更、開いたら戻すって感じでできると思う
2017/07/03(月) 15:23:47.15ID:SOE5pMOT0
>>628
エクスプローラーの右側に有る奴です。
2017/07/03(月) 15:58:34.40ID:SOE5pMOT0
やゃ落ち着きました。

アクティブフォルダ(操作中のファオルダ)内にtxtファイル存在するか調べる。
もしも、存在するなら、Windows10のメモ帳で全てのtxtファイルを開く。
存在しないなら、何もしない。

メモ帳を開く場合
    規定フォントかを調べる。
windows10付属の規定フォントで無いなら、規定フォントにする。
_規定フォントなら、文字を大きくする。
_次に太字にする。

メモ帳の開く場所をディスプレイ中央に設定する。

やりたい事はこんな感じです。
2017/07/03(月) 16:05:48.40ID:c1Vi+KHiM
>>601
Zombie
2017/07/03(月) 17:26:05.31ID:KvFRlLU90
>>630
アクティブフォルダを検知する手段が見当つかないけど
それをドロップされたフォルダ(指定されたパス)で実行するに変更ならすぐできるんじゃない?
1.指定されたディレクトリに*.txtがあるか調べる
2.見つかればメモ帳の設定をバックアップして変更>>628
3.メモ帳に*.txtを順次渡して起動
4.メモ帳が全て終了したら設定を元に戻して終了
2017/07/03(月) 17:40:07.28ID:SOE5pMOT0
>>632
アクティブフォルダを検知する方法はボクも知らないです。

タスクバーに存在するフォルダがアイドル常態かどうかを調べて、
アクティブなら実行させる とか考えました。

一日、数百回ほど、
フォルダを開くのに対してドロップ&ドラッグは流石に勘弁して下さい。
2017/07/03(月) 17:43:31.54ID:KvFRlLU90
>>633
じゃあフォルダ群を最初に全部登録して選択したもので実行するとか
とりあえず>>632の部分は必要になるから答えを待ちながら作った方がいいんじゃないかな
2017/07/03(月) 17:52:47.65ID:5B3ucqRJ0
俺にはウィルスにしか見えないわけだが
こいつの目的は何なの?
2017/07/03(月) 17:54:07.35ID:uUZDIYcxa
DOSじゃないんだからOS全体でアクティブなディレクトリなんて存在しないと思うよw
2017/07/03(月) 17:55:34.21ID:5B3ucqRJ0
アプリケーションにドロップしたディレクトリじゃ駄目なのかよ
2017/07/03(月) 18:00:01.58ID:5B3ucqRJ0
まず現行業務フローの洗い出しができてないよね
1日数百回フォルダ移動してる暇な奴ってすでに俺には聞き込み調査か粛清が必要なレベル
プログラムを組むんじゃなくて
ローキックの連打で解決できそうな臭いしてる
2017/07/03(月) 18:14:18.18ID:SOE5pMOT0
皆さん、いろんな意見をありがとうございます。

(笑わないで聞いて下さい。)
毎回落としてくる、エロ画像がボクの宝物なので、
大事にパスワードを設定してます。

開く時にパスワードを書いたメモファイルを何時も開き忘れるので、
フォルダを開いたと同時に表示して欲しいんです。

>>638
画像によっては属性が夢の様に、いっぱい詰まってるので毎回、移動させてます。
2017/07/03(月) 18:16:39.30ID:T3cHTlj+0
エクスプローラーもメモ帳も自分で作ればいいだけに見えるんだが・・・
それらの部品ならCodeProject漁れば出てくるよ
2017/07/03(月) 18:17:23.61ID:SOE5pMOT0
フォルダにパスをかけなければと言う人も居ますが、フォルダにパスワードは必要です。
メモファイルは隠しフォルダにしたら何とか隠せますが、パスがついてない画像は
閲覧されちゃいます。
2017/07/03(月) 18:24:04.65ID:KvFRlLU90
>>640に賛成
ディレクトリの位置に紐つけたパスワードのデータベース作ればメモ帳起動する必要もなくなる
2017/07/03(月) 18:28:02.02ID:oiFj/hKrM
>>623
> 強制ガベコレすると落ちるけどしないと落ちないときあるじゃん
>>605みたいなケースだろ
そうじゃなくて普通に使っててそんなことになると言うならサンプルコードあげてみそ
2017/07/03(月) 18:34:05.18ID:SOE5pMOT0
>>642
メモ帳が必要な理由としては、コメント書いてるんです。
「今日も可愛いね」「その猫耳が似合ってるよ。」とか書き込んで、
後から同じファイルを開いた時に追加してコメント入れてるんので、メモ帳を起動させたいのです。
2017/07/03(月) 18:35:12.16ID:SOE5pMOT0
間違えました。
652では無く、
625でした。
2017/07/03(月) 18:46:56.71ID:SOE5pMOT0
現状では634の方法で行きたいと思います。
一部を保留にしながら、632にを参考に進めて行きたいと思います。
647625 (ワッチョイ 2e96-naxa)
垢版 |
2017/07/03(月) 20:33:26.13ID:SOE5pMOT0
レジストリを触りたくないので、メモ帳を起動後にフォントと文字サイズを変更
しようと思ってますが、やり方が見つかりません。

ファイル内に.txtが有るか調べる
ファイルを指定してメモ帳で起動するまで行きましたが、
起動後、メモ帳の設定の仕方が分かりません。
どなたか教えてくれませんか?

(ファイルへの書き込みと読み込みは結構、でてくるんですけどねw)
2017/07/03(月) 21:08:48.55ID:i2Oq28ow0
DLL AとAが参照しているDLL Bがあって、BでAのPOCOクラス使いたいんだけど循環参照になっちゃうからPOCOクラスをDLL Cとか別で定義するしかないよね?
C#なら別DLLにしなくてもいけると言われたんだが、どうやるのか見当つかない・・・
649デフォルトの名無しさん (アウアウエー Sa4a-kiAr)
垢版 |
2017/07/03(月) 21:10:48.36ID:UwBLUxpla
メモ帳だから出来ないんよ。
最低限テキスト編集機能しか無いからね。
ワープロじゃ無いから、テキスト編集さえ出来れば良い(高機能でも快適な編集が出来ればいい)ってのがテキストエディタ。
フォントとかはワープロの領分だよ。
2017/07/03(月) 21:11:02.19ID:MkRtof65M
>>648
Bに実装してAから呼び出す
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。