<div dir="ltr">jfluteさん<div><br></div><div>小谷です。</div><div><br></div><div>大分間が空いてしまってごめんなさい。</div><div>再度、コンパイルエラーつぶしを行いました。</div><div><br></div><div>フィルターに可能なら追加したいものリストをまた挙げてみます。</div><div><div>Class<?> -> Type</div><div>List<?> -> List<object></div><div>Map<?, ?> -> Map<object, object></div><div>Set<?> -> Set<object></div><div>Object object -> Object obj</div><div>Collection<?> -> Collection<object></div><div>(private|protected|public) (.*)(<.+>) (.+) (.+)\((.*)\) { -> $1 $2$4 $5$3($6) { ※Genericsの定義順の違いを変換する正規表現</div><div>(\(|, )(.+)\.\.\. -> $1params $2[] ※可変長パラメータの定義順の違いを変換する正規表現</div><div>static interface -> interface ※C#ではinterfaceにstatic修飾子は使うことができない</div><div>static class -> class ※JavaとC#のstatic classは意味が異なる</div><div>@SuppressWarnings("unchecked") -> (削除) ※C#にはない属性</div><div>@SafeVarargs -> (削除) ※C#にはない属性</div></div><div><br></div><div>この他に匿名クラスを利用している箇所が悩ましいです。</div><div>C#にも匿名クラスはありますが、プロパティしか定義できないという。。。</div><div>デリゲートを使えば代用できそうですが、機械的な変換は難しい。</div><div>こちらは様子見とさせてください。</div><div><br></div><div>ぼちぼち次のパッケージ・・・でしょうか。</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015年1月26日 5:35 kotani.k <span dir="ltr"><<a href="mailto:keikotani926@gmail.com" target="_blank">keikotani926@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">jfluteさん<div><br></div><div>小谷です。</div><div>ありがとうございます。</div><div><br></div><div>取り込んで試してみますね。</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015年1月25日 16:56 kubo <span dir="ltr"><<a href="mailto:dbflute@gmail.com" target="_blank">dbflute@gmail.com</a>></span>:<div><div class="h5"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">久保(jflute)です<br>
<br>
小谷くん、ありがとう。<br>
C#にはない他の依存ライブラリを使わない分、<br>
Srlを移植したらかなりこの後の移植が楽になるかと思います。<br>
<span><br>
> String. => StringExtension.<br>
> boolean. => BooleanExtension.<br>
> .length => .length()<br>
<br>
</span>入れてみたー。<br>
.length()に関しては、java.lang.String に length() があって、<br>
そのままやっちゃうと length()() となるので、<br>
".length(空白一つ)"に対して置換をかけてみました。<br>
<br>
あと、final の除去も入れました。<br>
(入れてたつもりがまだ入ってなかった)<br>
<br>
修正版で DfAssertUtil, DfCollectionUtil を出力しました。<br>
で、SrlクラスでDfCollectionUtilのnewHashSet()を使っていたのは間違いでした。<br>
Srlはあまり他に依存しない形にしたいので、普通にnewする感じでお願い...。<br>
(Java側はいま直しました)<br>
<br>
<br>
<br>
<br>
> 1.C#では静的コンストラクタは一つしかもてないため以下のようにする必要がある<br>
> 元クラスの各静的コンストラクタは静的メソッド化⇒静的コンストラクタ内で呼び出す<br>
なるほど、ありがとう。<br>
まあ、Srlはたまたま多かったけど他ではかなりレアなケースではあるはずです。<br>
util系はちょっとこういうのが多いかもだけど。<br>
<br>
> 2.C#では繰り返し変数にたいして"="で割り当てを行うことができない<br>
昔のコードで「おおぅ入っちゃってる」って感じなので、他ではほとんどないはず。<br>
(なんか、コメント入れるためだけにそうしてるって感じになっちゃってるのかもね)<br>
Java側も直しちゃいました。ありがとう。<br>
<span><br>
> 3.引数に対して"="で割り当てを行うことはできる(javaと同じ動作をするかは不明)<br>
</span>これは、フィルターするときに時々あるかも。<br>
へたに変数を新しく定義してフィルターしたあげく結局元の変数を戻しちゃった、<br>
とかを防ぐために。とはいえ、そもそもフィルターするロジックもたくさんはないかなと。<br>
(それ以外の目的ではまず使ってない)<br>
Srlがあることでだいぶ減っていると思うので、後で修正もしやすいだろうから、<br>
いちどそのまま移植で試してみましょう。<br>
<span><br>
> 4.C#では、あるスコープ内である変数を宣言している場合、同じ変数名をそのスコープの<br>
> 外で使うことはできない(変数名を別にするか、どちらもスコープで区切るかする必要がある)<br>
> ⇒doSplitListの変数"element"など<br>
</span>これがもしかしたら一番きついかもね。わりとある気がする。<br>
とはいえSrlみたいなクラスでなければそういう場面の方が少ないなので、<br>
ちょっと移植しながらあまりに多かったら考えるという形で。<br>
<br>
> 5.C#ではメソッド名と同じ名前の変数名は使えないので別にする必要がある<br>
> (関数を変数のように使える都合上そのような仕様になっていると思われます)<br>
> ⇒removeEmptyLineのsplitListなど<br>
これもちょっとありそうな気がするけど、<br>
検索で特定しやすいので splitList() に関しては直しました。<br>
<br>
<br>
壁になるとしたら4かなぁ。。。<br>
<div><div>_______________________________________________<br>
seasar-dotnet mailing list<br>
<a href="mailto:seasar-dotnet@ml.seasar.org" target="_blank">seasar-dotnet@ml.seasar.org</a><br>
<a href="https://ml.seasar.org/mailman/listinfo/seasar-dotnet" target="_blank">https://ml.seasar.org/mailman/listinfo/seasar-dotnet</a><br>
</div></div></blockquote></div></div></div><br></div>
</blockquote></div><br></div>