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


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

C#, C♯, C#相談室 Part95



1 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 04:02:10.51 ID:/jJUZ/t7.net]
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/

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

■前スレ
C#, C♯, C#相談室 Part94
mevius.2ch.net/test/read.cgi/tech/1492843013/

■次スレは>>970が建てる事
建てられない場合は他を指定する事。

89 名前:デフォルトの名無しさん [2017/11/08(水) 21:16:06.13 ID:vGP4g6Va.net]
ASPって出番ある?みんな仕事の案件でやってるの?

90 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 21:46:20.39 ID:Yt5neKtg.net]
WebFormsの案件はドカタだとWinFormsより多いだろ
うちはMVCでSaaSやってる

91 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 22:10:09.31 ID:rbcWTqbu.net]
(実はMS案件には全く縁がない)

92 名前:デフォルトの名無しさん [2017/11/10(金) 10:27:07.08 ID:EEZieTzn.net]
クラスのメンバのプロパティを小文字で始めると
メッセージ IDE1006 名前指定の規則違反: これらの単語は、大文字で始まらなければなりません:

と出るのだが、なんで小文字だとエラーなの?
世の中では、大文字で始める習慣があるの?

93 名前:デフォルトの名無しさん mailto:sage [2017/11/10(金) 10:39:35.19 ID:GXd92sM9.net]
だからそういうメッセージが出るんだろ

94 名前:デフォルトの名無しさん mailto:sage [2017/11/10(金) 13:41:07.91 ID:Hx4QOm/G.net]
VS2017ならデフォルトで提案事項になっているがエラーになるのは自分で設定したせいでは

95 名前:デフォルトの名無しさん mailto:sage [2017/11/10(金) 13:55:50.82 ID:DPfs8yVZ.net]
>>93
自分ではしてない

96 名前:デフォルトの名無しさん mailto:sage [2017/11/10(金) 14:22:22.24 ID:Hx4QOm/G.net]
ここに書かずに設定したやつに聞けばいいのに

97 名前:デフォルトの名無しさん mailto:sage [2017/11/10(金) 15:46:12.86 ID:dHTokmn8.net]
で、それはエラーなの?
メッセージが出たら警告だろうが何だろうが全部エラーって言う人も多いけど



98 名前:デフォルトの名無しさん mailto:sage [2017/11/10(金) 17:18:52.60 ID:EEZieTzn.net]
>>95
誰だよそれ?

99 名前:デフォルトの名無しさん mailto:sage [2017/11/10(金) 17:22:41.93 ID:VxFWEUmd.net]
>>97
自分でいじってないなら初期設定決めたMSの人では

100 名前:デフォルトの名無しさん mailto:sage [2017/11/10(金) 18:12:13.90 ID:MvAM88wE.net]
コンパイルエラーとは別にコード分析のエラー欄に出るんじゃないか?

>>91
命名ルールはこれ
https://msdn.microsoft.com/ja-jp/library/ms229002.aspx

101 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 00:13:18.80 ID:VQqkIwVV.net]
class A{
class B{
class C{
}
}
}
みたいに三重くらいになると、自分でもわけ分からなくなって来るんですが、
世間では三重くらいは普通ですか?

102 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 00:28:57.43 ID:FsCJcvbF.net]
>>100
内部クラスって表記しやすいだけでそれ以外のメリットあるのかね?

103 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 00:33:23.96 ID:BH43IN+9.net]
javaの人は良く使うけど
スコープの問題だけだから本来は使わないでもよさそう

104 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 00:59:17.39 ID:kkrHimLP.net]
内部クラスはたまーーーに使うけど3重なんて一度もしたことないな

105 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 01:19:20.69 ID:3ysLENMg.net]
何重までいけるん?

106 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 11:11:58.59 ID:f6zZSvYO.net]
>>104
プログラムやる人の発想じゃないな

107 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 08:56:15.86 ID:LXGneVsA.net]
>>100
static classだとよくやるけど
static class My{
static class Hoge{
static class Config{
}
}
}
My.Hoge.Configのように使える
でも3重は使わないな



108 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 10:27:34.46 ID:j0JK3XOe.net]
Javaだと1クラス1ファイル
客先の規約で配置できるファイルに制限があると内部クラスを使わざるをえない

109 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 10:36:20.99 ID:3BzbD7Br.net]
enum使いにくいから代わりにstatic class乱用してるわ

110 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 10:46:19.17 ID:kmdFzMTF.net]
>>108
enumのどのあたりがダメなん?

111 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 11:11:16.62 ID:3BzbD7Br.net]
>>109
後で要素増えたら参照先全部ビルドし直さなきゃならんあたり

112 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 11:19:21.94 ID:kmdFzMTF.net]
>>110
ビルドなんて一瞬じゃん?

113 名前:デフォルトの名無しさん [2017/11/12(日) 11:28:22.38 ID:PNAmYcb6.net]
.Net Core 2.0では、だいぶん.NetFrameworkの実装がカバーされたと聞きました。
https://raw.githubusercontent.com/dotnet/standard/master/docs/versions/netstandard2.0_ref.md
これを見る限りでは、System.IO.StreamやSystem.IO.FileInfo、ISerializableなど
もあります。これらをUWPやASP.NET Coreでも使えるようになるという理解でいいでしょうか。

114 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 11:44:42.71 ID:j0JK3XOe.net]
C#のenumはメソッド定義できないから役立たず

115 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 12:19:41.85 ID:pNqEHb8d.net]
>>113
javaとは思想が違うからな
どうしてもメソッド使いたけりゃ拡張メソッド書けばいいだけのこと

116 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 12:24:54.60 ID:zaPGzGOT.net]
enumは型安全性をぶち壊すから…

117 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 12:39:52.61 ID:j0JK3XOe.net]
enumにメソッドを定義できないとenumスイッチがあちこちに書かれてシステムが汚染される
そんなことになるぐらいならenumは言語機能から追放したほうがいい



118 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 12:51:07.42 ID:kmdFzMTF.net]
>>116
メソッドが使えるとスッキリ書けるの?
例を教えて

119 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 13:21:53.63 ID:WcVSvCUs.net]
読み方はエナメラブルでいいのかね

120 名前:デフォルトの名無しさん [2017/11/12(日) 13:26:58.08 ID:hG4wTZ8S.net]
>>112
逆に聞きたいんだけど、どういう理解があると思ったの?

121 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 13:29:17.49 ID:j0JK3XOe.net]
>>117
Javaのenumのメソッドはポリモーフィック
なのでステートやストラテジーなど様々な応用が利く

122 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 14:44:05.96 ID:IOmcFQTN.net]
enumはどうせ定数に置き換えられるんだから、最初から定数で書いとけばいいな

123 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 15:30:46.03 ID:Lnuis1wP.net]
>>107
javaって、内部クラスも1ファイルとして出力されるんじゃなかったっけ?

124 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 16:08:56.10 ID:kmdFzMTF.net]
class A,B,C,...が有って
void func<T>(...){...}
みたいな関数を
func<A>(...);
func<B>(...);
func<C>(...);
みたいに順番に実行したい場合、
forループ使って書ける?

125 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 16:11:43.25 ID:MOg5phwx.net]
>>122
>>107はソースの話やで?
オブジェクトはまとめたらいいだけだし

126 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 16:17:52.85 ID:j0JK3XOe.net]
>>123
var list = new dynamic[] { a, b, c };
foreach (var x in list)
func(x);

引数もインスタンスも無いならreflection

127 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 16:33:07.06 ID:kmdFzMTF.net]
>>125
なるほど。
dnamic使うしか無いんですね?



128 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 16:58:32.42 ID:RZNIwvSq.net]
reflectionが目に入らぬか

129 名前:デフォルトの名無しさん [2017/11/12(日) 17:39:19.11 ID:UFCv5vw0.net]
>>127
reflectionと言うのでやる方法を教えて下さい

130 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 17:39:26.99 ID:5vVJXllV.net]
partical いいよなぁ

131 名前:デフォルトの名無しさん [2017/11/12(日) 18:01:29.09 ID:PNAmYcb6.net]
>>119
APIはあっても、実際は例外投げるんじゃないかとか。
StreamやISerializableなど今まで散々レガシー扱いされてたのに、
すんなり実装されたのだったら、今までは何だったのかと思ってしまって。

132 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 18:02:25.44 ID:Lnuis1wP.net]
>>124
「配置できるファイルに〜」のところもソースファイルの話だったか、失礼した

133 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 18:42:10.04 ID:WcVSvCUs.net]
>>118
読み方はあっているのかい?

134 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 18:55:18.48 ID:52C+Ep3W.net]
>>132
えにゅめらぶる

135 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:11:35.21 ID:Ti9eVPN+.net]
>>133
いい難いなw

136 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:31:01.04 ID:WbI57bEd.net]
あいえにゅめらぼー

137 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:38:58.15 ID:RZNIwvSq.net]
れっきょ



138 名前:デフォルトの名無しさん [2017/11/13(月) 01:47:33.98 ID:v8HXsfBj.net]
>>126
リフレクション
そもそも用途がわからんけど

139 名前:デフォルトの名無しさん [2017/11/13(月) 01:55:32.64 ID:v8HXsfBj.net]
>>130
最初のリンクがそもそも.NETStandardの話なんだけど、.NETStandardとは何か知ってれば(最低限ググれば)前者は迷う余地がない
後者は経緯知らないけどレガシーが実装されたらだめという理由がない

…と考える人が大多数だと思う

140 名前:デフォルトの名無しさん [2017/11/23(木) 11:44:32.89 ID:3aIXz7vh.net]
C#でちょっとした文字列の連結を行う場合、+がいいのかFormatがいいのかReplaceがいいのかStringBuilderを使うのがいいのか悩んでます
どれが一番いいのでしょうか?

1. string value = A + "-" + B;
2. string value = string.Format({0}-{1}, A, B);
3. string value = "{A}-{B}".Replace("{A}", A).Replace("{B}, B);
4. StringBuilder sb = new StringBuilder();
  sb.Append(A);
  sb.Append("-");
  sb.Append(B);

141 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 11:50:10.15 ID:nWWLjgB9.net]
こんな細かいことで悩んでいたら禿げるわ
それぞれにどれだけの差が出てくるか考えろよ

142 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 12:00:55.88 ID:+AsqqoLD.net]
$"{A}-{B}" でしょ

143 名前:デフォルトの名無しさん [2017/11/23(木) 12:03:56.69 ID:3aIXz7vh.net]
>>141
なるほど

144 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 12:04:14.40 ID:11MjDn+U.net]
とりあえず、環境が許すなら141、駄目なら139の1

145 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 12:13:05.14 ID:1XchAmld.net]
連結ならいつもは分かりやすさ優先で+
実際に扱うデータで使ってみて遅いと感じたらStringBuilderに変えてるわ
置き換えは置き換えの時だし、フォーマット形式が必要と感じたらそれ使うし
悩むのかこれ…コーディング終わらんやろ…

146 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 12:20:49.75 ID:Go3NcBxu.net]
最初はくだらない事に悩むからしょうがない。直に、開き直るからそれまでとことん悩め。

147 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 12:24:20.12 ID:nWWLjgB9.net]
>>145
こういうので悩みだすのはスキルが伸びず閉塞感に陥って逃げ道探しているときだw



148 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 12:28:18.93 ID:kBi82nCb.net]
4とか使うのは連結回数がクソ多いぐらいだな

149 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 14:17:08.77 ID:U/QtJVxM.net]
StringBuilder必要なのはループで回す時くらいやろ
固定回数なら最適化されるんちゃうか
しらんけど

150 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 15:17:10.10 ID:JqKYKF6h.net]
改行したい時はsb.AppendLine使う
var s = $@"hello
{A}
world";
別にこれでもいいけど、インデントが気持ち悪い

151 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:08:06.61 ID:w+OP7Z8m.net]
数個程度の定数個の結合にStringBuilderは無いね
@""で改行入れたときの改行コードってソースコードの改行コードに依存するんかな

152 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:25:49.20 ID:Go3NcBxu.net]
StringBuilder使うのは基本、ループ内で文字列結合するときだけだな

153 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:28:19.08 ID:zj6W6oGG.net]
スレがボケジジイの繰り言みたいになってる

154 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:29:25.95 ID:Go3NcBxu.net]
と書くと、問題あるな。あるメソッド内でループしてないから普通に文字列結合してても、
そのメソッドを使う方でループしてメソッド呼び出されたら・・
ということでなんでもない。

155 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 19:44:15.73 ID:NThPFj2G.net]
パフォーマンスは大差ないので可読性で選ぶ
となると

定数個なら+
動的ならlinqとJoin

156 名前:デフォルトの名無しさん [2017/11/24(金) 08:32:28.20 ID:LQb8e4yU.net]
public override と
override public とでは、どっちが普通ですか?

157 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 08:40:21.61 ID:GsVE4oKd.net]
アクセス修飾子が先



158 名前:デフォルトの名無しさん [2017/11/24(金) 09:49:06.09 ID:LQb8e4yU.net]
>>156
じゃあstatic使う場合は
どこに入れるべきですか?

159 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 11:32:34.25 ID:GsVE4oKd.net]
アクセス修飾子が先

160 名前:デフォルトの名無しさん [2017/11/28(火) 20:01:33.21 ID:uo9ygS2y.net]
EF Core + MariaDBで行ロックをするにはどうしたらいいですか?

161 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 11:56:45.71 ID:/OzCwr8n.net]
>>159
行ロックって何よ?

162 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 12:25:04.50 ID:rN1pofYI.net]
>>159
EFに明示的なロックは要らん
保存するときに他の変更があれば保存は失敗する

163 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 15:02:54.88 ID:LyP2QHxX.net]
EFは基本、楽観ロックだからね。
自分が更新するデータは誰も変更しないだろうということで楽観的に考えて行ロックを取得しない。
で、実際の更新時に、保存しておいたタイムスタンプ列や全列を比較して更新するUpdate文を
発行して誰も変更してなきゃ成功する。

164 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 15:08:27.80 ID:LyP2QHxX.net]
対して、悲観的ロックは誰か変更するんじゃないかと悲観的に考え前もって行ロックする。
行ロック取得したければ、トランザクションの分離レベル変更して、間接的に取得すればいいんじゃねぇかな。
例えば、トランザクションをロックを使って実装してるデータベース使ってるなら、
トランザクションの分離レベルをREPEATABLE READにして読めば、読み込んレコードには
行ロックがかかる。

165 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 15:52:26.83 ID:x/indGo0.net]
>>161
楽観的排他制御ってやつか!?

166 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 21:11:58.94 ID:fgyKG67K.net]
リトライだらけになる

167 名前:デフォルトの名無しさん [2017/12/02(土) 10:37:02.24 ID:OECpFj6Y.net]
Consoleアプリの関数Aから別のスレッドで関数Bをを実行。
Bが終わるまで数分かかるので、その間はAの処理を引き続きやる。
Bが終わったら何らかの通知をA(あるいはアプリ)で受けとる。
そんな処理をしたいのですが、どんな手法がお勧めですか?



168 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 11:20:32.34 ID:qE46CGT4.net]
>>166
Hangfire

169 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 12:07:47.28 ID:pzCW2tCE.net]
書き捨てならポーリング

170 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 12:18:43.47 ID:dIIqSudI.net]
>>166
普通にTaskとasync-await

171 名前:デフォルトの名無しさん [2017/12/02(土) 13:31:40.26 ID:OECpFj6Y.net]
>>167
情報ありがとうございました。調べてみます。
>>168
それは何ですか?
>>169
関数Aの中で関数Bの終了をawaitするとそこでAの処理が停止しますよね?
それでは困るんです。

172 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 13:38:50.65 ID:/lrBlva0.net]
通知を受け取って何をするの?
Aが実行中に通知を受け取った場合は?
Aが終わったあとに通知を受け取った場合は?

173 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 13:44:11.82 ID:M5ek0NUJ.net]
>>171
終わったってフラグでも作っておけばいい
何のためにそんなこと聞くの?

174 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 14:11:31.35 ID:kxO6m70V.net]
>>172
実際にコードに起こすこと考えたら>>171の疑問出てこない?
ポーリングの有無とかB終了の通知はA以外で受けたほうがいいのかみたいな

175 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 14:21:45.96 ID:/lrBlva0.net]
void A() {
...
Task.Run(() => B());
...
...
}

void B() {
...
...
SetSomeFlag();
}

こういうこと?
何をしたいのかハッキリしないな

176 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 14:22:18.75 ID:T9uGCJHM.net]
>>170
関数BをTaskで実行しておいて、たまにTask.Wait(0)がtrueを返すか確認する

177 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 14:22:55.12 ID:M5ek0NUJ.net]
>>173
何で目の前の問題置いて次の実装考えるの
やり方が一つ決まったらそれでやり通す必要もないし
質問者の要件わからないのにそんなこと聞きだす必要はない



178 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 15:15:48.94 ID:XMkOweAB.net]
多分処理AはUIスレッドなんだろ
処理B実行中にUIは止めたくない
そして処理B完了でUIを更新したい

そんな要件だと想像した

179 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 15:34:29.65 ID:kxO6m70V.net]
>>177
それだとInvokeやDispatcherの話にも広がりそうだね

180 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 16:57:04.20 ID:ax4ftaEq.net]
>>177
consoleアプリって書いてあるやん

181 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 17:27:35.43 ID:2zJJAtZS.net]
10レスそこらも遡れないとかヤバすぎて草

182 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 18:20:58.48 ID:M5ek0NUJ.net]
元の話が設計で根本的におかしいか思い付きで質問しているかどっちか
後半に100ペリカ

183 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 20:31:53.15 ID:XMkOweAB.net]
コンソールアプリなら
EventWaitHandle使うのが楽そう

184 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 21:02:27.32 ID:8UWC/wK0.net]
WaitHandleは完了を待つ側のスレッドをブロックするから、
それでいいんだったら普通にasync-awaitでいい

185 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 21:06:19.33 ID:pzCW2tCE.net]
せやね

186 名前:デフォルトの名無しさん [2017/12/02(土) 22:01:19.49 ID:hEzEqaaq.net]
Aで何したいかだけどコールバックでいいんじゃないの

187 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 22:11:03.11 ID:8UWC/wK0.net]
だったらTask.ContinueWithでいいだろ



188 名前:デフォルトの名無しさん mailto:sage [2017/12/03(日) 01:24:35.88 ID:R5bnWQiD.net]
つかそもそも別スレッドで実行する必要があるのか
別プロセスで良いんじゃねえのか

189 名前:デフォルトの名無しさん mailto:sage [2017/12/03(日) 10:20:17.77 ID:8EUneh2f.net]
>>187
プロセス間のデータ受渡はsoket通信する感じ?






[ 続きを読む ] / [ 携帯版 ]

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

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