ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2015/10/02(金) 20:50:08.06ID:IGV3Viy6他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1436344868/
■関連スレ
C#, C♯, C#相談室 Part89 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1443271409/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
0159デフォルトの名無しさん
2015/10/12(月) 19:08:20.89ID:wjSQdsNOなんでTaskの中でTask作ってんの?
継続タスクにしたいなら、ContinueWithでつなげれば良いだろう。
あと、そのケースなら Task.Factory.StartNewじゃなくて Task.Runを使ったほうがすっきりするだろう。
ちなみにTaskのDispose()は、無理に呼ぶ必要はない。むしろ無闇に呼び出したらタイミングによっては、厄介なことになる。
>>158
CancellationTokenSourceは、一度限り、再度使いたいならCancellationTokenSourceを作り直すしかない。
キャンセルされてたら、tokenSource.Token.ThrowIfCancellationRequested()が例外を吐いて強制終了するだけなんで
ボタンが復帰しないのは当然のこと。
0160デフォルトの名無しさん
2015/10/12(月) 19:27:19.47ID:E/TV++i+ありがとうございます。
あ、継続タスクでも同じ動作をしますか
すいませんうっかりしていました。
TaskRunは使いたいのですが環境の問題で駄目でした。
キャンセルの方はならパブリックにするのではなく
プライベートにしてやってみてるのですが今度はキャンセルが出来なくなりました。。。
Taskキャンセルが難しいです
0161デフォルトの名無しさん
2015/10/12(月) 19:51:26.84ID:wjSQdsNOprivate CancellationTokenSource cancelSource;
private void button1_Click( object sender , EventArgs e ) {
if( this.cancelSource != null )
this.cancelSource.Cancel(); // まだキャンセルされてなければキャンセル要求
this.button1.Enabled = false;
this.cancelSource = new CancellationTokenSource();
var token = this.cancelSource.Token;
Task.Factory.StartNew( () =>{
for( int i = 0; i < 100000; i++ ){
token.ThrowIfCancellationRequested();
Thread.Sleep( 100 );
}
} , token )
.ContinueWith( task => {
// 継続タスク(UIスレッドに切り替わって実行される)
// キャンセルされようとも正常に完了しようとも、例外が発生しても実行される。
this.button1.Enabled = true;
} , TaskScheduler.FromCurrentSynchronizationContext() );
}
private void button2_Click( object sender , EventArgs e ) {
if( this.cancelSource != null ) {
this.cancelSource.Cancel(); // キャンセル要求
this.cancelSource = null;
}
}
0162デフォルトの名無しさん
2015/10/12(月) 20:15:07.87ID:E/TV++i+ありがとうございます。
参考例は非常に助かります。
早速やって見ます。
0163デフォルトの名無しさん
2015/10/13(火) 01:05:59.89ID:41s2HnEDどうやらCancellationTokenSourceの扱いをミスっていたみたいで
>>149の方の仰るとおりあのやり方ではブロック内で再生成してないので
一回しか扱えずこれで詰まっていたようです。
今回の参考例非常に助かり無事に期待した動きをしています。
ありがとうございました。
0164デフォルトの名無しさん
2015/10/13(火) 04:02:33.87ID:P4Y/UxqF事前にそのurlに合わせてエンコーディングを指定すると上手く行くのですが、
UTF-8を指定してSJISのヘージを読むと当然文字化けしてしまいます。
読み込むページのエンコーディングを自動的に認識するなどの機能はありませんか?
0165デフォルトの名無しさん
2015/10/13(火) 04:44:41.46ID:7dOTeKt20166デフォルトの名無しさん
2015/10/13(火) 05:03:23.35ID:P4Y/UxqFじゃあどうすれば任意のurlを文字化けせずに読み込めますか?
0167デフォルトの名無しさん
2015/10/13(火) 06:43:34.47ID:YzZ6qWCc自分でエンコーディングを推定してStringに変換するに決まってんだろ
言わせんなよ恥ずかしい
0168デフォルトの名無しさん
2015/10/13(火) 08:45:24.81ID:xr5l46tc0169デフォルトの名無しさん
2015/10/13(火) 09:06:53.64ID:P4Y/UxqF確かにこの方法で出来そうなのですが、URLによっては
リモート サーバーがエラーを返しました: (500) 内部サーバー エラーです
Status ProtocolError
と出る場合が有りますが。
0170デフォルトの名無しさん
2015/10/13(火) 09:17:24.10ID:IPzu3dLL決まった値でいいならブラウザのデバッガで通信を監視してその通りにリクエスト送ればいいけど、
セッションが必要ならRubyのMechanizeみたいなの使わないとすぐに動かなくなる
非常に面倒だから本当にそのページが重要なのでない限りは諦めた方がいい
0171デフォルトの名無しさん
2015/10/13(火) 10:52:29.13ID:P4Y/UxqF情報ありがとうございました。
RubyのMechanizeというのを少し調べてみたのですが、C#でこういうのは
ありませんか?
0172デフォルトの名無しさん
2015/10/13(火) 11:18:31.92ID:IPzu3dLL0173デフォルトの名無しさん
2015/10/13(火) 12:02:46.15ID:7dOTeKt2あとは、一旦、ASCIIで読み込んで、HTMLの<META>タグ判定するぐらいか。
0174デフォルトの名無しさん
2015/10/13(火) 19:36:16.73ID:bwylg/oX1.オブジェクト指向の基礎を学ぶ(参考書の選択肢はJAVAのが多かったのでJAVAを選択)
2.(今のところWEBがメインなので)HTML,CSS,javascriptの基礎
3.HTTPやTCP/IPの基礎
4.C#3.0以降の技術(LINQ等)
5.デザインパターンを一通り網羅
6.リファクタリングの手法を習得
7.CODE COMPLETE等を読んで基礎固め
8.ASP.NET MVCの基礎、MVC等のレイアー層の理解
今のところこんな感じで進めてるけど
まだまだ足りない所ばかりで成長遅い。
どこかでC言語の勉強もしなきゃいけないと思ってるし...
0175デフォルトの名無しさん
2015/10/13(火) 19:45:39.68ID:xI0jh4Ci具体的にどんな仕事をして誰に一人前と言われたいのか
SIerでドカタやるだけならそんだけできたら一人前どころかエースだ
0176デフォルトの名無しさん
2015/10/13(火) 19:54:30.96ID:7dOTeKt2いろいろ言いたいことはあるが、C#ならサイトなら未確認飛行の人のサイトをお勧めする。
ArrayListとか使ってる入門サイトは、ゴミ以下だ。何の役にも立たないから気をつけろ。
非同期処理でThread(生スレッド)使ってる解説もゴミ以下だから、窓から投げ捨てよう。
C#とJavaと同じとかいう奴に出会したら、にわかなので軽くスルーしよう。
c#使いが覚えるべきことは、
拡張メソッドとIEnumerable<T>の関係性だろう。
こいつを理解できれば、LINQは、理解できたもの同然。
INotifyPropertyChanged
WPFなどのMVVMを理解する上で欠かせない。
Taskとasync , await
非同期関係は、だいたい、これで間に合う。
あと、余裕ができれば、Rx周りに手を出しても良いだろう。
0177デフォルトの名無しさん
2015/10/13(火) 20:11:30.28ID:YzZ6qWCc0178デフォルトの名無しさん
2015/10/13(火) 20:16:29.39ID:P4Y/UxqF動作になると思うのですが、文字列、配列、構造体、クラスなど
受け渡しする時にrefを使うと効率良くなって動作が速くなりますか?
0179デフォルトの名無しさん
2015/10/13(火) 20:34:16.68ID:Jlc+RBffそういえばゴールはあまり明確にしていませんでした。
とりあえず目標?は
・新しいシステムを作るときに、良い設計手法、技術を用いてそれを形にできるスキルを身につけたい
・別の会社にいっても、通用するような基礎を身につける
ですね。正直今のSIer企業には、ずっといたくないと考えているので
転職前に早くスキルを身につけたいところです。
>>177
アドバイスどうもです。
LINQ周りの考え方については結構調べました。
INotifyPropertyChangedや非同期関連は、まだ浅いので詰めて行きたいです。
Rxまで早くたどり着きたい...
0180デフォルトの名無しさん
2015/10/13(火) 21:32:56.02ID:4DY03Csk状況次第だ
しかしそのような質問が出てくる時点で君には時期尚早と言える
0181デフォルトの名無しさん
2015/10/13(火) 21:37:37.13ID:IPzu3dLL個人的には関数型言語覚えるのがお勧めだな
実務で使わないとしても、プログラミングセンスを磨くには最適
細かい技術なんて基礎さえできてればその都度ググればいいこと
0182デフォルトの名無しさん
2015/10/13(火) 21:53:19.65ID:3EVIu19yC#においては「参照型」と「値型」の区別が重要だよ
参照型はclass、値型はstructやプリミティブ型だよ
0183デフォルトの名無しさん
2015/10/13(火) 22:14:15.51ID:JgCmGigF0184デフォルトの名無しさん
2015/10/13(火) 22:20:08.70ID:P4Y/UxqFそれは知っているのですが、
そういう前提で、とりあえずrefを入れまくっておけば
速くなることはあっても遅く成る事は無いですか?
0185デフォルトの名無しさん
2015/10/13(火) 22:24:23.58ID:IPzu3dLL参照型は遅くなる
元々ハンドルを渡してるだけなのにその上余計な間接アクセスが入るから
0186デフォルトの名無しさん
2015/10/13(火) 22:47:11.18ID:7dOTeKt216バイト以上の構造体(値型)であれば、コピーコストを抑えることができるので若干、速くなる。
class A {
string hoge;
void Run() => Set( ref hoge );
void Set( ref string n ) => n = "aaa";
}
こうすれば、Setメソッドで hogeが書き換わるようになるだけ。
これを利用したのがLazyInitializer.EnsureInitializedあたりの遅延初期化あたり。
また、仮に速度向上が見込まれるとして何でもかんでもrefを使うと可読性が悪くなるだけでなく、余計なバグの温床になるだろう。
0187デフォルトの名無しさん
2015/10/13(火) 23:33:34.52ID:wNVuw2e31しかやってないけど年収一千万超えてるわ俺
0188デフォルトの名無しさん
2015/10/14(水) 00:11:28.33ID:9EHqXlxG0189デフォルトの名無しさん
2015/10/14(水) 00:15:52.35ID:6bQwcZBRそれが普通。
少なくとも好き好んで使うような物じゃないでしょ
0190デフォルトの名無しさん
2015/10/14(水) 01:11:41.08ID:3R4nuN13outは使うことがあるかも
複数値リターンがあればいらないんだけどね
0191デフォルトの名無しさん
2015/10/14(水) 01:41:54.81ID:KX7liTZS0192デフォルトの名無しさん
2015/10/14(水) 02:17:16.60ID:zAeiUrE80193デフォルトの名無しさん
2015/10/14(水) 09:46:15.40ID:Kzgl2aXhSystem.Threading.LazyInitializer.EnsureInitialized( ref x );みたいなやつ
0194デフォルトの名無しさん
2015/10/14(水) 10:43:03.02ID:/REmo4T1周りに詳しい人いないから誰にも聞けないわ
0195デフォルトの名無しさん
2015/10/14(水) 10:59:37.46ID:H7Zj+QeL0196デフォルトの名無しさん
2015/10/14(水) 13:27:10.88ID:C7hQw/KG0197デフォルトの名無しさん
2015/10/14(水) 16:31:12.31ID:aOACpiFqhttp://stackoverflow.com/questions/1315621/implementing-inotifypropertychanged-does-a-better-way-exist
0198デフォルトの名無しさん
2015/10/15(木) 18:28:08.01ID:2u28QwcFdo{
int pos = line.IndexOfAny(new char[] { '●', '■', '▲' }, pos);
if(pos==-1)
break;
pos++
while(true);
こういう探索をする場合、上例のように
new char[] { '●', '■', '▲' }
をループの中に入れると毎回newされて効率悪くなったりしますか?
事前に
const array = new char[] { '●', '■', '▲' };
として、ループの中では
int pos = line.IndexOfAny(array, pos);
とすべきですか?
0199デフォルトの名無しさん
2015/10/15(木) 18:37:34.62ID:fomBTPP1だけど全体の処理から考えると誤差以下よ
0200デフォルトの名無しさん
2015/10/15(木) 22:37:02.52ID:2u28QwcFありがとうございました
0201デフォルトの名無しさん
2015/10/17(土) 08:47:07.62ID:b8m6XFK10202デフォルトの名無しさん
2015/10/17(土) 08:54:54.81ID:FN3G7dO/どうしてもフィールドを直接弄りたいなら StructLayout(LayoutKind.Explicit) + FieldOffset でunion相当が実現可能
0203デフォルトの名無しさん
2015/10/17(土) 12:06:28.13ID:HFus6TsSって話じゃないのか?
意味不明
0204デフォルトの名無しさん
2015/10/17(土) 12:08:03.62ID:TjssbBGsそうだとしたら、でもそこが値型のメリットでもあるわけで、まあちゃんと理解して使えとしか。
0205デフォルトの名無しさん
2015/10/17(土) 12:16:22.10ID:b8m6XFK1そういう事
0206デフォルトの名無しさん
2015/10/17(土) 12:21:07.89ID:TjssbBGs参照型でRectを作った場合でも、まともなセンスの人なら>>201みたいなことができないように講じる
(Rectをイミュータブルにする)わけで、同じなんだけどね。
0207デフォルトの名無しさん
2015/10/17(土) 12:44:09.96ID:b8m6XFK10208デフォルトの名無しさん
2015/10/17(土) 15:11:26.94ID:y+IPLvAOいったいどうしたらいいんですか?
(´・ω・`)
0209デフォルトの名無しさん
2015/10/17(土) 15:21:06.30ID:c8KbfCFXそれは中二病の症状です。
20歳を超えて発症した場合は恐らく一生治りません。
定めだと思って諦めて一生青春しててください。
0210デフォルトの名無しさん
2015/10/17(土) 16:01:56.58ID:HUgpKArY0211デフォルトの名無しさん
2015/10/17(土) 16:32:12.70ID:YVKz2Gue嘘
短寿命オブジェクト用のGen0GCはクソ速いから、
クラスをnewするならするですぐに使い捨てるのがよい
0212デフォルトの名無しさん
2015/10/17(土) 16:54:05.33ID:ceUp4SbXあ、マジか…
60FPSなら16msで一周しないといけないけどGCは30msくらい掛かるって書いてあったから心配してた
0213デフォルトの名無しさん
2015/10/17(土) 20:48:01.48ID:lEhwHPlHWindows崩壊とか勘弁ですよ
0214デフォルトの名無しさん
2015/10/17(土) 21:30:39.49ID:Qv9BWxTIアップルも新しいものを生み出せずに飽きられたら将来はどうなるかわからん
0215デフォルトの名無しさん
2015/10/17(土) 22:12:12.95ID:1b1MshO00216デフォルトの名無しさん
2015/10/17(土) 22:13:36.87ID:ixXAzgg3狙い撃ちってどういう意味?
0217デフォルトの名無しさん
2015/10/17(土) 22:14:17.57ID:lZc14wWH詳し区
0218デフォルトの名無しさん
2015/10/17(土) 22:30:15.39ID:1b1MshO0いや、単に.NET4.0〜4.5.1が来年の1月12日にサポート切れて4.5.2以外サポート対象外になるだけの話なんだわ
http://www.atmarkit.co.jp/ait/articles/1501/23/news031.html
.NET Framework 3.5 SP1および3.5.1
.NET Framework 4.5.2
3.5.1以前は下位バージョンが内包されているからいいんだが、4.0〜4.5.1は4.5.2入れろ
必要ならば動作検証し直してねとMSが明言しているから扱い面倒そうだなと
0219デフォルトの名無しさん
2015/10/17(土) 22:37:10.95ID:FN3G7dO/.NETのマイナーバージョン間非互換ってインストールパスに依存してる糞アプリがあるかもしれないとかそんなレベルだし
0220デフォルトの名無しさん
2015/10/17(土) 22:42:15.32ID:ixXAzgg3現時点で4.6出ているけど4.5.2はずっとサポートされると思っていいんだろうか
それとも今後新バージョンが出るたびに動作検証し直さなければならない?
0221デフォルトの名無しさん
2015/10/17(土) 22:43:10.59ID:S84Ssc/e0222デフォルトの名無しさん
2015/10/17(土) 22:49:06.59ID:/7+5znpF仮に4.5.1がサポートされてたらWin10に上げても検証しなくていいのか?
どう考えても.NETのバージョンなんかよりWin10へ上げること自体の方が遥かに問題になる可能性が高いだろ
0223デフォルトの名無しさん
2015/10/17(土) 23:23:15.70ID:ixXAzgg3Win10に上げるのは自己責任じゃねーの
4.5.2には上げざるを得ないから対応しろと言われかねない
0224デフォルトの名無しさん
2015/10/18(日) 01:04:40.12ID:/DhocndZ0225デフォルトの名無しさん
2015/10/18(日) 12:54:14.13ID:i95LMF8HC#使いはみんなアホなのか
0226デフォルトの名無しさん
2015/10/18(日) 13:00:46.03ID:ivrEFHM8✕C#使いはアホ
○日本のITはアホ
0227デフォルトの名無しさん
2015/10/18(日) 13:26:26.09ID:rT2sf8QY0228デフォルトの名無しさん
2015/10/18(日) 16:09:43.90ID:/DhocndZマイクロソフト工作員暴れすぎだろ、見境なくなってる
末期症状だな
0229デフォルトの名無しさん
2015/10/18(日) 16:13:20.14ID:/DhocndZこまごましたクラスで名前空間汚れる
0230デフォルトの名無しさん
2015/10/18(日) 16:36:13.19ID:tIhTJhT+重症の2ch脳だな。酷い馬鹿だ。
0231デフォルトの名無しさん
2015/10/18(日) 17:53:35.54ID:EteQ/5LB0232デフォルトの名無しさん
2015/10/18(日) 17:54:02.78ID:rT2sf8QYとか馬鹿にされることもなかったのにな
アンダースは細かい使い勝手を改善するような変更に対してすごく保守的だった
拡張メソッドもstaticクラスでしか作れないみたいな嫌がらせを受けたままだし
0233デフォルトの名無しさん
2015/10/18(日) 17:56:00.48ID:hcyPsAl40234デフォルトの名無しさん
2015/10/18(日) 18:22:39.24ID:rT2sf8QYデータクラスと別に手続きクラスを用意するのは自然になっていくと思う
ただ手続きを探すためには圧倒的に.を打ってインテリセンスに名前が出たほうが便利だから
拡張メソッドは第一線で使われるものになっていくだろう
それで拡張メソッドをstaticクラスにまとめること自体はいいんだが
問題はstaticクラスの内部で型が作れないことなんだよなあ
多値を返すためにoutみたいな奇道を使わない場合structを定義しないとどうしようもないが
トップレベルに書くと名前空間が汚れすぎる
まあそれもタプルが来れば解決か
0235デフォルトの名無しさん
2015/10/18(日) 21:06:11.60ID:O3txSH0Mほとんどはネットでググれば出てくるし
唯一金出して買うって書籍はせいぜい洋書の翻訳版くらいだよな?
0236デフォルトの名無しさん
2015/10/18(日) 21:10:59.06ID:Fyu9IAr8自動アップデートが実装されない限り技術書籍は買う気にならないが…
0237デフォルトの名無しさん
2015/10/18(日) 21:11:18.08ID:S+d/GOeW大抵の技術書の著者って技術評価みたいなことしかしてない奴ばっかりだから
ほんとにネットでググったtipsが羅列されてるだけみたいなのが多い
0238デフォルトの名無しさん
2015/10/18(日) 21:13:06.08ID:1K54QMcp独学や素人だと結構本が理解の入り口になると思うよ
ただ、記述ミスが結構あって逆に理解に苦しむことがあったり、
著者が理系脳で、わからない人にわかるように表現されてない
わかるひとが読めばわかるが、わからない人が読むとさっぱり・・・
悲しいかな、購入者はわからない人がほとんどなのだけどね
で、ネットの情報や複数の本で補完せざるを得ない
そういう意味ではネットでいいというのもうなずけるけど・・・
0239デフォルトの名無しさん
2015/10/18(日) 21:26:39.43ID:O3txSH0M初心者だってググれば知りたい事出てくるんだから、書籍を買う意義の在処が無いでしょ
0240デフォルトの名無しさん
2015/10/18(日) 21:41:31.99ID:CUxV7ZEj>著者が理系脳で、わからない人にわかるように表現されてない
>わかるひとが読めばわかるが、わからない人が読むとさっぱり・・・
このへんはネットの情報でもたいして変わらんと思うが。
加えて、ネットだと
・断片的なトピックしか書いてない
・そもそも間違っている
ってのも割合としては多くなるな。
0241デフォルトの名無しさん
2015/10/18(日) 22:47:11.00ID:Fyu9IAr8もしくはぐぐるためのキーワードを知らない
0242デフォルトの名無しさん
2015/10/18(日) 23:12:02.85ID:0PlCKIO2情報が主題に沿ってまとまってる
その情報が編集されて主題にそって提示されている
の2点
つまり編集されていると言う事に意義を感じないなら価値はないな
0243デフォルトの名無しさん
2015/10/18(日) 23:17:11.53ID:ZeZpTvFbASP.NET関係だとネットだけだと断片的過ぎてな
初心者は本を買わざるを得ないだろう
おまけに文法本と違って本の選択肢も少ないという問題もある
0244デフォルトの名無しさん
2015/10/18(日) 23:21:12.01ID:1MrL9p77俺はこの一年でvb、c++、c#、asp.net、js、php、その他全部ネットで習得したよ。一冊も本は買っていない。
0245デフォルトの名無しさん
2015/10/18(日) 23:26:42.33ID:/DhocndZ自分も作っているのはデスクトップアプリオンリーだし
無料のレンタル鯖にC#で組めるcgiとかできたら嬉しいんだけどね(←時代に置いて行かれたおっさんw)
0246デフォルトの名無しさん
2015/10/18(日) 23:30:25.33ID:ZeZpTvFb来年登場予定のASP.NET5はリナックスでもMACでも動くという触れ込み
フレームワークがオープンソースの.NET COREに代わる
これで普及すればいいんだがな
0247デフォルトの名無しさん
2015/10/18(日) 23:40:24.72ID:FU6fHshJMVCの方でいいんなら今でもMonoで動くよ
0248デフォルトの名無しさん
2015/10/18(日) 23:46:53.39ID:1MrL9p77iisもlinuxに移植されるの?
0249デフォルトの名無しさん
2015/10/18(日) 23:47:34.93ID:/DhocndZ軽くperl書くノリくらいで、って感じですw
0250デフォルトの名無しさん
2015/10/18(日) 23:50:52.54ID:ZeZpTvFbiisが移植されることはないでしょ
むしろASP.NET5はwebサーバー依存じゃなくなってるのでアパッチでも何でも動くのが売り
0251デフォルトの名無しさん
2015/10/18(日) 23:55:05.84ID:1MrL9p77iisの設定画面に慣れているがapacheあまり知らないので不安だなあ
0252デフォルトの名無しさん
2015/10/19(月) 00:26:53.06ID:VNgGX25K0253デフォルトの名無しさん
2015/10/19(月) 00:29:12.84ID:kIMtGLET0254デフォルトの名無しさん
2015/10/19(月) 00:48:22.49ID:pvWtLvxK何を言ってるんだこのばかは
0255デフォルトの名無しさん
2015/10/19(月) 00:53:57.97ID:cS+kHoUQ馬鹿はお前
0256デフォルトの名無しさん
2015/10/19(月) 02:29:19.17ID:/AkA90sIただ、SSL関連とか、機能が足りないところがあるので、そこはnginxとかapache(+middleware)と組み合わせて使う必要があるかも。
0257デフォルトの名無しさん
2015/10/19(月) 03:18:42.76ID:D6E0OVv30258デフォルトの名無しさん
2015/10/19(月) 05:27:57.56ID:c9jTiL6V詳しく教えてください
(´・ω・`)
■ このスレッドは過去ログ倉庫に格納されています