[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/29 16:42 / Filesize : 310 KB / Number-of Response : 1032
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part137



1 名前:デフォルトの名無しさん mailto:sage [2018/04/06(金) 17:40:19.48 ID:oKXVP34zM.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■関連スレ
C#, C♯, C#相談室 Part95
mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part136
mevius.5ch.net/test/read.cgi/tech/1520057345/

■コードを貼る場合は↓を使いましょう。
ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

856 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 15:02:55.06 ID:AHiLgPdDM.net]
コンソールアプリです。
今までに自分が吐き出した標準出力を自分で取得する事は可能でしょうか?
このアプリ(A)は主に他のアプリ(B)から実行されることを想定しています。Aは普通にConsole.WriteLineで出力し、BがProcess.StandardOutput.ReadToEndで取得、ログを残します。
A単体で実行してログも残したい要求があります。 Console.WriteLineと同時にファイルに出力すればいいのですが、最後に一括で取得できればスマートかなと思ったのですが、いかがでしょうか?

857 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 16:59:57.59 ID:B2m5C+ouM.net]
>>840
ウィンドウアプリです

858 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 17:02:19.57 ID:q7DgX+HL0.net]
両方に出力する関数作って、その関数に置き換える事すら出来ない無能に何をアドバイスしろと?

859 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 17:11:45.68 ID:iQu+wqIP0.net]
Windowsで使えるteeコマンド探した方が早いんじゃねえか

860 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 17:19:25.14 ID:EdBeTbDkM.net]
PowerShellならデフォルトで用意されてるよ!>tee

861 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 17:19:52.49 ID:AHiLgPdDM.net]
>>841
???
すみません、よくわかりません

>>842
書き方まずかったですかね。
そう言うのも含めて、2つの処理を同時にするという意味だつたのてすが。
他にはなさそうですね。

862 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 19:35:28.68 ID:MnVBsXE4d.net]
TraceSource

863 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 20:33:40.60 ID:hof73DG2a.net]
正直何言ってるのかよく分からんけど、普通にリダイレクトするだけのような...
っていうか、普通はコマンドライン引数で出力先を切り替えるように作ると思うんだけど...

864 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 23:35:59.30 ID:iQu+wqIP0.net]
>>844
へえ知らなかったな



865 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 00:27:44.75 ID:j/dB1L1+0.net]
PowerShellはもっと流行るべき

866 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 00:39:09.38 ID:N3c6aWbUa.net]
PowerShellとか罰ゲームだろ
インタラクティブシェルとしては悪くないけど、まとまったスクリプト書こうとすると大嫌いになる
Add-TypeでインラインでC#書いたほうがマシだわ
特にC#erはソースの見た目がなんとなく似てるだけに地獄を見るんだよ

867 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 12:59:33.01 ID:RzxaIECOd.net]
>>847
名前付パイプでOkだよな

868 名前:デフォルトの名無しさん mailto:sage [2018/05/26(土) 00:52:48.69 ID:grpyMBkE0.net]
アプリ側で完結してないと、スクリプト操作とか変なバッチ叩かせてアプリ起動とか怪し過ぎるだろ。
業務アプリじゃねーんだw

869 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 00:24:44.02 ID:2eqT73MR0.net]
if (-100 <= clickPointXTemp && clickPointXTemp <= 100)
{
clickPointX[clickNumber] = clickPointXTemp;
MessageBox.Show(clickPointX[clickNumber].ToString() + "%");
MessageBox.Show(clickPointX[0].ToString() + "%");
MessageBox.Show(clickPointX[1].ToString() + "%");
MessageBox.Show(clickPointX[2].ToString() + "%");
clickNumber++;
}

870 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 00:29:53.74 ID:2eqT73MR0.net]
クリックしてカーソルが-100<=clickPointXTemp<=100の位置にあるときに配列にその値を代入させているのですが、
クリックするとその場で配列に代入できても次のクリックで0になってしまいます。

1回目クリック
clickPointXTemp=10
[0]=10
[1]=0
[2]=0

2回目クリック
clickPointXTemp=30
[0]=0
[1]=30
[2]=0

2回目クリック
clickPointXTemp=100
[0]=0
[1]=0
[2]=100

なんでだろ・・・。

871 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 00:30:12.40 ID:2eqT73MR0.net]
5時間ぐらい悩み中。。。

872 名前:デフォルトの名無しさん [2018/05/28(月) 00:33:24.89 ID:SRIgyUF4a.net]
データベースを使わないで、インデックスが共通する複数のデータ配列を作りたいときってどういう風な実装が最適なんでしょうか
var A = new int[x]
var B = new int[x]
var C = new int[x]



var E = new int[x]
みたいな感じです

873 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 00:33:25.48 ID:MfVpzBU40.net]
スコープが原因だろうから全体のソース出さないとエスパーだらけの回答になるよ

874 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 01:08:05.78 ID:dlEIDhlNa.net]
>>856
struct Hoge
{
  int A;
  int B;
  int C;
  int D;
  int E;
}
....
var hogeArray = new Hoge[100];



875 名前:デフォルトの名無しさん [2018/05/28(月) 07:52:50.79 ID:Mf7CKKuIa.net]
>>858
ありがとうございます
助かりました!

876 名前:デフォルトの名無しさん [2018/05/28(月) 12:27:04.88 ID:YifI+gJdr.net]
誰か>>857のエスパーたのむ

877 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 13:02:33.05 ID:PWPrnTKxM.net]
>>853-854へのレスだろ

878 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 13:47:49.05 ID:i/nkRhbIM.net]
>>860
https://youtu.be/mKrYRsENA-I

879 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 15:55:38.64 ID:W2eXy6T5M.net]
エスパー能力ないと5chはこなせない

880 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 20:32:45.18 ID:0z7zyrSed.net]
複数のクラスで共通の変数定数を外出しして、
その変数クラスを継承するのって良し悪しで言うとどうでしょうか

is aなのかちと微妙な感じです
内臓名クラスを継承して動物クラスを作ってるような

has aなのでオブジェクトとして渡すべきですか?

881 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 21:46:19.79 ID:rs0fZbm/M.net]
>>864
共通の変数などという低い抽象度でクラス設計を考えるのがそもそも間違ってる
実装からクラスを考えると必ず破綻するから、君の今の考え方のまま進む限りはいかなる選択肢も不正解
とはいえ最初から抽象度を上げて設計しろといっても初心者には無理な話だから、気にせず自分の思うように作ればいい
一通りモノ作れるようになったらオブジェクト指向モデリングの書籍を読むことをお勧めする

882 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 21:51:33.12 ID:I0m/gtVC0.net]
オブジェクト指向プログラミングしない方がいいもの作れるよ
関数で組む方法を極めた方がいい

883 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 21:56:33.33 ID:dVAXJXVu0.net]
>>865
>オブジェクト指向モデリングの書籍
例えばどんな本がありますか?特におすすめ、とかじゃなくてもいいです
どういう本が該当するのかよくわからないのです

884 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 22:18:11.40 ID:rs0fZbm/M.net]
>>867
王道はエリック・エヴァンスとかダグ・ローゼンバーグとか
今読んでも実際のコーディングに対しては何の参考にもならないと思うよ



885 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 22:21:17.59 ID:dVAXJXVu0.net]
>>868
キーワード提供、感謝しています

886 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 12:48:47.90 ID:dUPfr/v4M.net]
どのプログラム言語を選ぶかでオブジェクト指向モデルの実現方法がかなり違う

887 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 12:57:47.07 ID:Xt8fAcdVa.net]
>>868の本くらいの抽象度になると実装方法にはほとんど依存しないよ
それどころかオブジェクト指向モデルすらも方法論全体の中では下層の方に位置付けられる

888 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 19:04:25.63 ID:QoecqRn60.net]
とりあえず入門レベルが終わったんだけど次はeffective c#4.0っての読めばいいですか?

889 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 19:05:12.69 ID:upesQ40yM.net]
6.0 7.0のでてるからそっちでいいよ

890 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 19:28:28.39 ID:QoecqRn60.net]
more effective C# 6.0 7.0ですか?
moreとついてるので前の本を読む必要があるかと思っていたんですが大丈夫そうならそちらを購入しようかと思います

891 名前:デフォルトの名無しさん [2018/05/29(火) 21:07:37.85 ID:FUNbZ4ty0.net]
フォーム間でのデータのやりとりはどうするのが一般的なのでしょうか?
例えば、Form2の表示と同時に、Form1に入力済みのデータをForm2に表示させる場合、今は以下のようにしています。

class Form1
{
 public object Data{get; set;}

 var form2 = new Form2();
 form2.Parent = this;
}

class Form2
{
 public Form Parent{get; set;}

 Load()
 {
  this.Data = Parent.Data;
 }
}

892 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 21:31:23.00 ID:T0OOxyUA0.net]
>>875
一般的と

893 名前:かいいやりかたって聞かれると逆に難しいんで自分のやりやすい形で
https://dobon.net/vb/dotnet/form/accessanotherformdata.html
コンストラクタやメソッドの引数でも渡せるし
[]
[ここ壊れてます]

894 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 22:26:37.07 ID:LfCUNSAB0.net]
>>874
Apressお勧め



895 名前:デフォルトの名無しさん [2018/05/29(火) 22:58:12.01 ID:G7p9dius0.net]
>>874
言語仕様とか環境の変化で不要になった部分をバージョンアップしてるから
今からかうなら最新だけでいい
初版と4.0と最新で内容は被っている

896 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 23:11:52.08 ID:5CF0lkGw0.net]
ビジュアルスタジオでC#使ってると、どんどんコードスタイルが簡略化されていくんだよな。

897 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 13:41:56.71 ID:Bf3z8rw50.net]
SocketクラスのBeginConnectとかBeginReceiveとかに渡すコールバック関数を
staticで書いてあるのとそうでないのと両方見かけるんですけど
どっちが良いんでしょう?

898 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 14:44:18.44 ID:LltEUg5c0.net]
まあ、C#ならコールバックは登録解除を明示的に行うからスタティックである必要は無いけどな。
でもこれがイベントハンドラからのデリゲートなら話は別だ。

899 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 14:47:38.89 ID:WVM+AecNM.net]
>>880
そのSocketオブジェクトに合わせるのが正解
Socketを生で使うサンプルってスキルの低い業務ドカタが書いてたり書かれた時代が古かったりすることが多いので、
C#をよく理解してなくてCやVBの感覚でstaticにしないといけないと思ってるようなのが多い

900 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 15:03:40.50 ID:Bf3z8rw50.net]
>>881
イベントハンドラからのデリゲートとはどういう状況でしょう?

>>882
なるほどありがとうございます!

901 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 15:19:11.21 ID:AbqPsR3A0.net]
TextBoxか、MaskedTextBoxに単位をつけたい。
小数点有りや無し、-の数値を入力できたりするものってできますか?
-2℃
14℃
25.5℃
2.5℃

902 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 18:15:14.92 ID:Zw7Yk0+cM.net]
テキストボックスの横にラベルで単位でも書いておこうぜ

□㌕

903 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 18:16:46.93 ID:Zw7Yk0+cM.net]
小数点は

□.□㌕



904 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 19:19:02.19 ID:0ajP7AA9a.net]
>>884
TextBoxクラスを継承



905 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 20:26:49.48 ID:9/5XjJFR0.net]
>>884
入力支援・単位の入力補完・数値⇔文字列の変換
何でもできるけどホントにしたいことがそのレスでは分からない

906 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 21:28:20.09 ID:ygkZdVXVM.net]
>>878
え、more付いてないのと付いてるのって同じ本なん?
独習C#と言い、命名がわけわからんな…

907 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 09:05:55.18 ID:azdekr4p0.net]
説明不足ごめんなさい。
出力ですが、最終的にはTextBoxの枠ごと印刷したいと考えております。
883の言う単位の入力補完だと思います。

MaskedTextBoxのマスクに####℃と記入し、
「-24.4」等のデータをデータベースから取り出して、入れたところMaskedTextBox.Textが244℃となってしまいました。
このテキストボックスを小数点有りの場合、なしの場合、負の符号が有りの場合なしの場合、「----」の場合、
1桁から5桁+「℃」としてTextBox.Textに出力したいと考えております。

できますか?

908 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 09:13:09.12 ID:gkm5sPLjM.net]
TextBoxクラスを継承して自前で実装すればできる

909 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 09:47:05.22 ID:czZmZo8za.net]
TextBoxクラスを継承してTextプロパティを上書き
書式とか単位を属性に持たせれば汎用的に使える。
コピペされたときの場合も考慮すること

910 名前:[879] mailto:sage [2018/06/01(金) 09:58:02.26 ID:azdekr4p0.net]
ありがとうございます。
なんと

911 名前:なく、それっぽいものが作れそうです。 []
[ここ壊れてます]

912 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 10:22:08.86 ID:XLd38QjBM.net]
ユーザーコントロールでボーダーなしテキストボックスとラベル並べた方が楽な気がする

913 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 18:06:59.69 ID:TnI3eVXu0.net]
テキストボックスの描画や挙動を弄るの面倒くさいから汎用性を求めるんなら InputMan 買った方がいいよ

914 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 18:10:44.74 ID:UBye49NJM.net]
ライセンスとかテクリスとか面倒だから買わない



915 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 18:21:51.24 ID:S7DUtxKdM.net]
NuGetで参照できるオープンソースのWinFormsリッチコンポーネントって何が有名なの?

916 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 20:17:26.63 ID:dZV2tAFxM.net]
nugetは俺の鬼門

917 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 21:28:02.83 ID:naL+ZRGN0.net]
僕の半蔵門

918 名前:デフォルトの名無しさん [2018/06/01(金) 23:18:54.61 ID:fWGAwsr30.net]
前門の虎 肛門の狼

919 名前:デフォルトの名無しさん [2018/06/02(土) 00:25:46.86 ID:A4SZL/oE0.net]
寒っ

920 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 10:06:40.82 ID:QJbZaU5f0.net]
c#で穴ぼこメモリにしないように組むのって不可能?

921 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 10:27:51.87 ID:nL4AUV2I0.net]
可能だが、規模によっては現実的でない
パフォーマンスを気にするなら、別にボトルネックが存在していないかを見直す方が先

922 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 10:30:12.89 ID:rvy10L9Oa.net]
OSの仕事
どうしても嫌でデカいbyte配列確保して中に文字や数字全部入れても無駄

923 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 10:40:30.36 ID:QJbZaU5f0.net]
>>904
それでも駄目なの?
もうサービス部分はC言語で組んだほうが良さげ?

924 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 10:42:11.98 ID:1ZPJADB4M.net]
GCが勝手に詰めてくれるから気にしなくていい
ただし巨大なオブジェクトは専用の領域があって移動されないので断片化されやすいから注意



925 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 11:05:50.81 ID:msgJi+IZM.net]
Spanとstackallocで我慢しなさい

926 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 11:10:29.54 ID:rvy10L9Oa.net]
>>905
Cだって確保管理はOSの仕事だろ
何のためにメモリの管理をOSに任せたくないんだ?

927 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 11:12:27.29 ID:msBkLZBc0.net]
DMAが僕を呼んでいるから

928 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 11:18:59.70 ID:J1HVezEsH.net]
>>908
Cだってオブジェクト毎の領域をそれぞれ全てOSが管理しているわけじゃない
mallocが効率化のためにだいぶ仕事してる

929 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 11:42:21.94 ID:gRqFSsBQa.net]
OSでメモリはブロックなどで管理されていて要求があったら
要求サイズに合わせてそのブロックの中のさらに細かいブロックなどを払いだしてる
こっちがどうしようとOSでブロックを作ってその中でやりくりしてる

例えそのブロックの中で断片化していて何か不都合あるのか?

930 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 14:08:09.74 ID:65ghWvPg0.net]
使う予定の最大量の倍の空きメモリーあれば大体は気にならない。
いまどきのパソコンはアプリが使いたいメモリーサイズの数百倍は有るから気にするな。

931 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 14:25:15.68 ID:QJbZaU5f0.net]
リークしてると1ヶ月ぐらいで死ぬじゃん
現状自分でメモリ管理しないとどこで何が確保されてるのかわからないわけで
そういうの確実に管理したいときはc言語のがいいのかなぁ?と

932 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 14:34:09.78 ID:gayBoTaI0.net]
極めて厳密に管理したいならC/C++でアロケータを自前で書くというのはあり得る
しかしリークという点ではC#よりC/C++の方が遥かにやっちまい易いので, メモリ安全を確保する目的でC/C++で書くのは本末転倒のように思う

933 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 14:39:58.23 ID:I3vJQFJE0.net]
リーク前提

934 名前:とかバカでしょ []
[ここ壊れてます]



935 名前:デフォルトの名無しさん [2018/06/02(土) 15:01:44.21 ID:fV6b9MUi0.net]
List#Containsの重複判定基準をEquals以外にすることはできないでしょうか?
ListにしたいクラスのEqualsが、別の目的用にオーバーライドされている為、Equalsを使うことができません。

936 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 15:43:20.19 ID:QJbZaU5f0.net]
>>914
c#は現在実行中のアプリのインスタンスを確認する方法はあるの?

937 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 15:47:01.32 ID:XUNevU9ma.net]
>>916
>Equalsが、別の目的用にオーバーライドされている
常識的にはそっちの方が解消すべき「問題」のように思うけど...

938 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 15:54:54.04 ID:XUNevU9ma.net]
まあ、Exists使うだけだよね

939 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 16:03:39.22 ID:nL4AUV2I0.net]
>>913
Webサービスか何かを想定してる?
だったらコーディングで対応するんでなく、ロードバランサで複数のアプリケーションサーバに振り分けて
サービスが止まらない様にしつつ、一部のサーバをオンメンテでリブートすべし

940 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 16:05:51.99 ID:wt7oIb0Vp.net]
C#スレでメモリーリークを心配するとか、どんだけ無能なんだよ。

941 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 16:12:14.89 ID:5ltA6BNw0.net]
普通はリークで死ぬ前にGen2GC連発して性能ガタ落ちになるんじゃ
どんだけ握ってんだよと

942 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 18:04:04.45 ID:QJbZaU5f0.net]
実際にメモリリークが起こらないように気をつける術は昔ながらの方法しかない?
プロジェクトでnewするときはインスタンスマネージャー的なのを通して
可能な限りインスタンスを監視するとかそんなの?

943 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 18:17:48.36 ID:msgJi+IZM.net]
マトモなコードを書くだけ

944 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 19:01:19.50 ID:pCnJrSzQd.net]
メモリリークさせようと思わないとなかなかできんよ



945 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 19:11:03.61 ID:1ZPJADB4M.net]
>>923
一時的なオブジェクトはもう必要ないなら握りっぱなしにしないで即座に使い捨てること
中途半端に握りっぱなしにしてるとGCの世代か昇格してメモリ使用量の増加やGCのパフォーマンス低下の原因になる
一方、単寿命オブジェクトのGCは爆速なので、newしたら積極的にすぐ放置すべき

946 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 19:16:06.36 ID:1ZPJADB4M.net]
>>916
Any

947 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 19:21:44.73 ID:I3vJQFJE0.net]
C#でメモリリークさせるコード書く奴がC/C++で無くせるとは到底思えないわ

948 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 19:25:12.19 ID:QJbZaU5f0.net]
>>926
うーん
爆速ではないなぁ
3分に1回動かしてる処理があるんだけど
強制GCせずにずっと動かしてるとき
メモリ使用量がかなりあがった状態でGCが動くと
3分に一度の処理のタイミングがズレちゃうんだよね
そこで強制GCも十分に一度ぐらいの頻度で動かしてる状態

949 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 19:29:07.89 ID:pCnJrSzQd.net]
だめだこいつ

950 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 19:31:42.56 ID:QJbZaU5f0.net]
>>930
なんかいい方法あるんですか?

951 名前:デフォルトの名無しさん [2018/06/02(土) 19:37:34.74 ID:KX6MAuAea.net]
ちゃんと設計してればC#でメモリーリークなんて気にすることなんてあるか?
そんなガバガバ設計してるやつがCだったら大丈夫なんだけど、って馬鹿な話誰が信じるよ

952 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 19:45:14.53 ID:msgJi+IZM.net]
>>931
簡単だよ
マトモなコードを書くだけ

953 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 20:14:13.22 ID:fh+k246w0.net]
以降放置でお願いいたします

954 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 20:28:22.93 ID:iRadbqpq0.net]
>メモリーリークなんて気にすること
ページフォルトを気にしないヴァカっていたな。
リークしていないが累積しすぎたページフォルトがOSを殺す



955 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 20:30:41.21 ID:+/nRHGaPa.net]
C#でリークやらかす奴がC/C++でやらかさない道理がない

956 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 20:31:22.14 ID:eSvYHUXNM.net]
こいつもトンチキなので放置でいいです

957 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 20:50:00.44 ID:wt7oIb0Vp.net]
まあ、でもC#はメモリー管理を隠蔽しちゃったから、実はCやC++よりメモリー管理

958 名前:オにくいんだよな。 []
[ここ壊れてます]

959 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 20:58:18.57 ID:msgJi+IZM.net]
C++出身のC#初心者にありがちだね

960 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 21:10:12.98 ID:u/NNd5OV0.net]
未確認飛行のSpan説明みてサンプルコード動かそうとしたんだけど
using System.Memory;すると
CS0305ジェネリック種類 'Memory<T>' を使用するには、1 型引数が必要です。
って叱られるのなんで?
VSもCoreも最新

961 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 21:20:59.23 ID:msgJi+IZM.net]
SpanはSystem.Spanだ

962 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 21:33:12.83 ID:u/NNd5OV0.net]
System.Spanにしてもでてきおる
using static System.Memory<string>;
ってするとエラーは消えた

963 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 17:57:54.97 ID:nwnHFAsS0.net]
フォームアプリでマウスクリックでイベントをはっせいさせているのですが、
ある処理ループの実行中はこのクリックイベントの割り込み発生を禁止させたいです。
マウスクリック割り込みイベントを無効化、有効化する方法ってないでしょうか?

964 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 18:03:05.41 ID:acSSis/XM.net]
>>942
そうじゃないusing System;ってこと



965 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 18:05:10.81 ID:5sPxkTAt0.net]
>>943
イベントの購読とその解除
ufcpp.net/study/csharp/MiscEventSubscribe.html

966 名前:デフォルトの名無しさん [2018/06/03(日) 18:07:49.08 ID:qpwWeWwga.net]
>>943
-=、+=
デザイナーみればわかると思うよ

967 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 18:08:39.42 ID:imVGa92Ya.net]
>>943
Control.Enabled
どうでもいいけど、「割り込みイベント」って表現は間違ってるから他所では使わない方がいいよw

968 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 18:26:12.78 ID:y7bK61pJa.net]
処理中フラグ持っておいて
クリックイベントの入り口で処理中ならreturnするのでよくない?

bool 処理中=false;

クリックイベントの頭
if(処理中)return;

969 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 18:33:27.61 ID:3EuqECGs0.net]
lockで囲めば

970 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 18:43:15.37 ID:acSSis/XM.net]
ボタンからしか起動しない処理だと保証されてるなら-=+=でもフラグでもいいが
そうでないなら真面目に並列処理管理しないとね

971 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 18:59:01.85 ID:4vwgZnFjp.net]
はあ?
クリックイベント自体を抑止したのか?
意味あるの?

972 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 19:18:23.10 ID:bhcyF/oUa.net]
処理ループの中でメッセージループを実装してGetMessage()でマウスイベントをフィルターかな?或いは読み捨てる

973 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 20:09:50.51 ID:pjD3SZS60.net]
え、連打対策してないの?

974 名前:デフォルトの名無しさん [2018/06/03(日) 20:15:38.36 ID:OWt1glR4a.net]
非同期で実行した場合とかの抑止とか?とエスパー



975 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 20:19:01.20 ID:S4J0YpoT0.net]
>>944
つまりSpanを使うのにusing System;さえすればいいってこと?
ごめんな、クソ素人過ぎて質問がまずいのか

ufcpp.net/study/csharp/resource/span/

var s = "abcあいう亜以宇";

var sub = s.Substring(3, 3);
var span = s.AsReadOnlySpan().Slice(3, 3);

for (int i = 0; i < 3; i++)
{
Console.WriteLine((sub[i], span[i])); // あ、い、う が2つずつ表示される
}

を試したいんだけど、できないって話なんだ

976 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 20:26:16.06 ID:klvCZP9p0.net]
>>938
やっぱりそうだよね
厳密にやろうと思ったら昔ながらの方法でやるしかないんだよね

977 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 20:50:59.76 ID:H2Gh+VvdM.net]
>>955
現時点ではAsReadOnlySpanが存在しないっぽいね
Stringはもともと読み取り専用だからAsSpanでReadOnlySpanになるってことだと思うけど
過渡期の記事はそのまま鵜呑みにしない方がいいぞ

978 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 21:25:48.86 ID: ]
[ここ壊れてます]

979 名前:nwnHFAsS0.net mailto: >>945
全く知らない概念でした。
勉強してみます。
[]
[ここ壊れてます]

980 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 21:26:28.88 ID:nwnHFAsS0.net]
>>948
これうまい手ですね。
使える場所ありそうですので試してみます。

981 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 21:27:58.09 ID:nwnHFAsS0.net]
>>953
おっしゃる通りで、連打対策必要だったんですね。
フォームアプリだと必須の対策なんですね。
他で少し変な挙動してたのは連打対策してなかったことが原因のようです。

連打対策してみます。
というか、どうやればいいんだろ。
また、お勉強しなければ。

982 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 21:42:26.87 ID:0r68Qt9D0.net]
>>960
いま質問した答えをイベントメソッドに組み込めば連打対策は終了
そっちを先に覚えるのが普通だと思ってた

983 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 21:51:01.95 ID:imVGa92Ya.net]
>>959
全然うまい手じゃないw
PC-98の時代じゃあるまいし、フラグって言葉を聞いたら眉に唾して聞かなきゃダメwww
それを好むのは可読性に感心がないダメグラマの可能性が高いw

984 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 21:56:36.02 ID:imVGa92Ya.net]
そもそもUIのデザイン論なんて大げさな話じゃなくても、
ユーザーの捜査に反応できない文脈では何らかの方法(通常はグレイアウト)でそれを
ユーザーに対して明示しないUIは問題あるでしょうww

そんなことにも思い至らない回答者は無視していいよw



985 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 22:53:07.14 ID:S4J0YpoT0.net]
>>957
ありがとう、そういうこともあるんだな
勉強になった

10Gくらいの固定長テキストファイルから一行ずつ読み取って
最初の1-10文字はUSER ID、11はSEX・・・って分けてdbに突っ込んでるんだけど
StringBuilderでLength=0しつつappendするくらいじゃ、stringでsubstringするのとあまり変わらなかったんで
Span使えばマシになるのかなと思ったんだ

986 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 23:00:15.10 ID:8gLBE5WNa.net]
そんなもん丸ごとDBにロードしたほうが速いだろ
固定長ファイルのロードはどのDBMSでもコマンド一発でできる

987 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 23:12:33.52 ID:S4J0YpoT0.net]
>>965
それなw
tempのカラムに一行まるごと突っ込んで、クエリでsubstrするやり方やってみる
https://stackoverflow.com/questions/12423991/import-fixed-width-text-file-into-sqlite

988 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 23:35:40.25 ID:iikfdxhC0.net]
10GBのデータだと読取よりDBMSへの書き込み方法がネックになりそう

989 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 06:33:56.69 ID:mxEQUVjg0.net]
>>967
細かくなるとdbスレ行きなんだろうけど
実際に書くところはC#なわけで、どこがボトルネックになってるのかザコ過ぎてわからんw
とりあえずsqliteつかってメモリ上dbにinsertでトランザクション管理しっかりやってってして30分くらいだったからまーいいかと
sql server expressだとbulk insertはわからんけどselectで並列処理されるみたいだから乗り換えてみる予定

990 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 11:04:17.43 ID:MivBMbBxa.net]
sql server expressはひっくるめたDBサイズが最大10 GBまでだったと思うが

991 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 11:06:49.27 ID:UeJV2JW90.net]
メモリしこたま積んでRedisかな

992 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 14:26:59.71 ID:pPavJvQvM.net]
Postgresでいいよ
ロード時に固定長レコードのフォーマットを指定できるから一時テーブルもC#もいらん

993 名前:デフォルトの名無しさん [2018/06/04(月) 16:33:35.32 ID:7NrmQXKK0.net]
MonoのLinux版のインストールの仕方、ご教示いただけますと有難いです。宜しくお願い致します。

994 名前:デフォルトの名無しさん [2018/06/04(月) 16: ]
[ここ壊れてます]



995 名前:48:48.54 ID:aK/XyO250.net mailto: 米Microsoftが米GitHubを買収することで合意
http://www.itmedia.co.jp/news/articles/1806/04/news058.html
[]
[ここ壊れてます]

996 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 20:38:58.19 ID:UeJV2JW90.net]
>>972
ちょまど神を信仰すると天啓が降るぞよ

997 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 20:43:37.91 ID:CVKZewtza.net]
>>972
Monoなんか今時もう誰も使ってないし誰もメンテしてないでしょ
今は.NET Coreの時代
GUIが目当てなら諦めなさい

998 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 20:52:46.96 ID:spHrXgPF0.net]
UbuntuでもCentOSでもコマンド一発で入るがな

999 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 21:35:01.82 ID:ztrCxIDM0.net]
>>975
何言ってんの?

1000 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 21:48:02.60 ID:9+XsYcyB0.net]
Windows.Forms で WndProc を override して自分のコードを加えているのですが
デバッガで進めていくと、その中に突入してしまいます。

InitializeComponent の中みたいに、デバッガが入らなくする宣言みたいなものなかったですか?

1001 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 21:49:06.62 ID:BHtXacEqa.net]
>>978
debuggerstepthrough

1002 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 21:56:07.60 ID:Uz3WpYRO0.net]
>>975
Mono Releases | Mono
www.mono-project.com/docs/about-mono/releases/

1003 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 23:32:00.59 ID:054Q3E4O0.net]
メインクラスとシリアル通信クラスの2つを使っています
シリアル通信の受信完了でイベントをメイン側に発生させることら可能でしょうか。受信完了したらメイン側から受信データを取りに行くようにしたいのですが。

1004 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 00:07:28.69 ID:jE9yEXCCa.net]
>>981
何でそうなるのw
発想が逆だってw

そのシリア通信を担当するクラスSがデータ受信を通知するイベントを発生させて
受信したデータを利用する側がSの参照を握ってイベンを受信すればいいでしょw

ついでに言えば受信データもEventArgs使って渡してしまえばいい



1005 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 00:33:25.52 ID:liKML/cX0.net]
しょうがねえだろ初心者なんだから

1006 名前:976 mailto:sage [2018/06/05(火) 07:18:51.35 ID:ByFVOB9IM.net]
>>982
やりたいのことはそれなんですよw
説明が下手ですいません
厳密にはデータを受けた事が分かったらメイン側は受信データの内容を解釈するクラスに送って処理分岐という形にしようかと思ってます。
用語や処理の知識がおいついてきてないので、あれを応用しようという感じにならず、調べるためのキーワードも出てこないです。

>>クラスSがデータ受信を通知するイベントを発生させて受信したデータを利用する側がSの参照を握ってイベンを受信すればいいでしょw

ここが具体的にどういう構文になるのでしょうか。

1007 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 08:07:17.14 ID:D4M8TybKa.net]
Signalを使っても作れるな。

1008 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 09:11:21.09 ID:GjVlFAo70.net]
>>963
PCをあまり使い慣れてない人とか、ボタンはシングルクリックでいいのをダブルクリックしちゃったりとかあるんだよなこれが・・・

1009 名前:デフォルトの名無しさん [2018/06/05(火) 09:29:57.56 ID:nr/+sOXHa.net]
非同期じゃないならボタンイネーブル切ればいいだけじゃね

1010 名前:デフォルトの名無しさん [2018/06/05(火) 09:32:16.99 ID:nr/+sOXHa.net]
すまん。忘れてくれ

1011 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 10:35:58.82 ID:l/0/VM/ma.net]
状態をGUIだけに持たせておくのはおかしいといつか思うはず

1012 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 12:11:20.04 ID:vCTdp4Eha.net]
>>984
class FrameReceivedEventArgs:EventArgs
{
  public byte[] Frame{get; private set;}
  ....
}

class CommunicationPort
{
  public even EventHandler<FrameReceivedEventArgs> FrameReceived;
  ....
}

class FrameDecoder
{
  public FrameDecoder(CommunicationPort c}
  {
    c.FrameReceived +

1013 名前:= CommunicationPort_FrameReceived;
  }

  private void CommunicationPort_FrameReceived((object sender, FrameReceivedEventArgs e)
  {
    ....
  }
  ....
}
[]
[ここ壊れてます]

1014 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 12:44:05.86 ID:eGZjT6RJM.net]
>>990
引数に渡されたものを弄るのは行儀の悪い設計
IReceiverインターフェイスみたいなのを用意してport.AddReceiver(decoder)とするか、
>>984の言葉通りにいったん双方のクラスの外でイベントハンドラで受けて仲介したほうがいい



1015 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 12:51:41.81 ID:eGZjT6RJM.net]
>>990がなぜ行儀が悪いか補足しておこうか
普通、オブジェクトを別のクラスのコンストラクタに渡すとき、プログラマは 受け取った側→引数側 の向きの参照ができることを期待する
ところが、>>990だとそれが逆なんだよ
new FrameDecoder(this.port) としただけで、portがGCされないかぎり作り捨てたはずのFrameDecoderがGCされないという、非直感的なコードになるわけ

1016 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 12:55:30.14 ID:vCTdp4Eha.net]
何言ってるのかさっぱりわからん
よくわからん思考回路だな...

1017 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 13:09:28.12 ID:GjVlFAo70.net]
言い回しがようわからんが
>>990みたいなのするのが解放されないオブジェクトを量産するっていうのはなんとなくわかる

1018 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 13:11:38.32 ID:vyKZFDS5a.net]
>>993
分からないならイベントというものを正しく理解してないんじゃないかな
ボタンのクリックイベントをフォームが受け取れるのは、ボタンがフォームへの参照を(実際には間にデリゲートが入るので間接的にだが)持ってるから
基本的に、引数に渡ってきたものに自分自身を登録するのは避けたほうがいい
オブジェクトのライフタイムが非常に分かりにくくなるから

1019 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 13:53:28.61 ID:UBCugO63M.net]
reactive extensionsって.NET発祥なのに使う人少ないよね

1020 名前:デフォルトの名無しさん [2018/06/05(火) 15:23:49.06 ID:n583dJR10.net]
>>974
ちょまど神って???状態でしたので調べてみました。
一つ知識が増えました。ありがとうございます。

1021 名前:デフォルトの名無しさん [2018/06/05(火) 15:24:19.24 ID:n583dJR10.net]
>>975
そうなんですか。。。
NET Coreっての調べてみます。どうも有難う御座います。

ちょど昨日 GUI って何だ??って検索したばかりでした。
3日前からプログラムの勉強をはじめたばかりで。。。

1022 名前:デフォルトの名無しさん [2018/06/05(火) 15:24:34.93 ID:n583dJR10.net]
>>980
ありがとうございます。TRYしてみます。

この掲示板すごーい!!皆様に感謝です。

1023 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 16:15:32.44 ID:vCTdp4Eha.net]
>>994
ないないw
イベントの購読解除はリークの原因になるのはその通りだけど、
それは>>991が主張するように、イベントを発生するオブジェクトを引数で受け取ったかどうかと無関係。

>>995
俺は理解してないのは君の方だと思うよw
その君のいう俺様ルール、何が悪いのかさっぱり分からない

そもそも今はそんな話をしてるんじゃないw
単に質問者の参考になるかもしれんコードの骨組みを示しただけw

1024 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 16:16:25.51 ID:vCTdp4Eha.net]
あ、

× イベントの購読解除
〇 イベントの購読解除忘れ



1025 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 19:31:17.11 ID:70UTtyrn0.net]
次スレたててみる

1026 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 19:33:22.39 ID:70UTtyrn0.net]
ふらっと C#,C♯,C#(初心者用) Part138
https://mevius.5ch.net/test/read.cgi/tech/1528194762/
たった
議論は他のところでよろしく

1027 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 00:18:56.95 ID:+J9HGVUKa.net]
>>1000
想像力のない人だなあ
>>990だと、イベントハンドラの登録を解除しない限り、FrameDecoderが不要になっても
登録先のCommunicationPortよりも先にGCされることは絶対にない。
じゃあ不要になったらイベントハンドラを登録解除できるようにしよう。いつ解除する?
それはFrameDecoder自身には分からない。知

1028 名前:っているとしたら、それは>>981のいうメインクラスだろう。
登録解除するにはFrameDecoderクラスのDisposeメソッドを呼べ、という仕様にするか?
結局、985のFrameDecoderを正しく扱うには、メインクラス側がそういうクラス外から見ただけでは想像できないFrameDecoderの気難しい仕様を理解した上で、
必要に応じて明示的な解放を行わなくてはならない。
そんなことをするくらいならメインクラス側で明示的に登録・登録解除をやったほうが遥かに素直で分かりやすい。
[]
[ここ壊れてます]

1029 名前:デフォルトの名無しさん [2018/06/06(水) 00:26:33.34 ID:D75pa1n0a.net]
質問いいですか?

1030 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 60日 6時間 46分 14秒

1031 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<310KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef