AkasicRecord Document Control System
http://w.atwiki.jp/akasicrecord/
AkasicRecord Document Control System
ja
2006-06-19T23:25:02+09:00
1150727102
-
ROとBOTと陰謀と。
https://w.atwiki.jp/akasicrecord/pages/5.html
<p><a href=
"http://blog.livedoor.jp/botbokumetu/archives/50518431.html">http://blog.livedoor.jp/botbokumetu/archives/50518431.html</a></p>
<p>うーんどうなんだろう?</p>
<p>
これが本当なら我々は確実にM.F.を完成させなければ・・・。。</p>
2006-06-19T23:25:02+09:00
1150727102
-
内部クラスのprotected透過性と継承の関係に関する実験の結果報告
https://w.atwiki.jp/akasicrecord/pages/4.html
結果からいえば、継承後、継承元に触ることは不可能である。<br>
つまり次のコードは動かない。<br>
<br>
code[C#]:<br>
<br>
class EntryPoint<br>
{<br>
public static void Main(string[] args)<br>
{<br>
SubOuter outer = new SubOuter();<br>
SubOuter.SubInner inner = new SubOuter.SubInner();<br>
inner.SuperInnerMethodCaller(outer);<br>
}<br>
}<br>
<br>
class SuperOuter<br>
{<br>
protected void SuperOuterMethod()<br>
{<br>
System.Console.WriteLine("SuperOuter method Called");<br>
}<br>
<br>
public class SuperInner<br>
{<br>
<br>
}<br>
}<br>
<br>
class SubOuter : SuperOuter<br>
{<br>
public class SubInner : SuperInner<br>
{<br>
public void SuperInnerMethodCaller(SuperOuter outer)<br>
{<br>
outer.SuperOuterMethod();<br>
}<br>
}<br>
}<br>
<br>
EndCode<br>
<br>
<br>
それどころか次のコードも動かない。<br>
<br>
<br>
Code[C#]:<br>
<br>
class EntryPoint<br>
{<br>
public static void Main(string[] args)<br>
{<br>
SubOuter outer = new SubOuter();<br>
SubOuter.SubInner inner = new SubOuter.SubInner();<br>
inner.SuperInnerMethodCaller(outer);<br>
}<br>
}<br>
<br>
abstract class SuperOuter<br>
{<br>
protected abstract void SuperOuterMethod();<br>
<br>
public class SuperInner<br>
{<br>
<br>
}<br>
}<br>
<br>
class SubOuter : SuperOuter<br>
{<br>
protected override void SuperOuterMethod()<br>
{<br>
System.Console.WriteLine("SubOuter Overrided method Called");<br>
}<br>
<br>
public class SubInner : SuperInner<br>
{<br>
public void SuperInnerMethodCaller(SuperOuter outer)<br>
{<br>
outer.SuperOuterMethod();<br>
}<br>
}<br>
}<br>
<br>
EndCode<br>
<br>
後者は僕的には動いてもいいのに、と思ったが危険な局面もあるのだろう。<br>
つまりこういうときは継承前にメソッドデリゲートの取得パスを入手しておくべきなのだ。<br>
継承元でかなり、みっちり設計する必要があるが。。<br>
次のコードが動作するので、こういう場合そうするべきだってことだ。<br>
<br>
<br>
class EntryPoint<br>
{<br>
public static void Main(string[] args)<br>
{<br>
SubOuter outer = new SubOuter();<br>
SubOuter.SubInner inner = new SubOuter.SubInner();<br>
inner.SuperInnerMethodCaller(outer);<br>
}<br>
}<br>
<br>
abstract class SuperOuter<br>
{<br>
protected abstract void SuperOuterMethod();<br>
<br>
public class SuperInner<br>
{<br>
protected void OuterMethodCaller(SuperOuter outer)<br>
{<br>
outer.SuperOuterMethod();<br>
}<br>
}<br>
}<br>
<br>
class SubOuter : SuperOuter<br>
{<br>
protected override void SuperOuterMethod()<br>
{<br>
System.Console.WriteLine("SubOuter Overrided method Called");<br>
}<br>
<br>
public class SubInner : SuperInner<br>
{<br>
public void SuperInnerMethodCaller(SuperOuter outer)<br>
{<br>
this.OuterMethodCaller(outer);<br>
}<br>
}<br>
}<br>
<br>
EndCode<br>
<br>
これは動く。<br>
つまり、継承しなければいいのだ。<br>
<br>
<br>
以上。<br>
<br>
PS:<br>
コーディングは適当にやったんで、かなりコンパイル時エラーがあると思う。<br>
ニュアンスが伝わればいいと思っているが、もしそういうものを見つけたら<br>
直しておいてくれるとうれしい。
2006-06-19T22:31:43+09:00
1150723903
-
トップページ
https://w.atwiki.jp/akasicrecord/pages/1.html
-ウィキはみんなで気軽にホームページ編集できるツールです。
-このページは自由に編集することができます。
-メールで送られてきたパスワードを用いてログインすることで、各種変更(サイト名、トップページ、メンバー管理、サイドページ、デザイン、ページ管理、等)することができます
■ 新しいページを作りたい!!
-ページの下や上に「新規作成」というリンクがあるので、それをクリックしてください。
■ 表示しているページを編集したい!
-ページ上の「このページを編集」というリンクや、ページ下の「編集」というリンクを押してください。
■ ブログサイトの更新情報を自動的に載せたい!!
-[[お気に入りのブログのRSSを使っていつでも新しい情報を表示できます。詳しくはこちらをどうぞ。>http://atwiki.jp/tools/blogrssmaker.html]]
■ ニュースサイトの更新情報を自動的に載せたい!!
-[[RSSを使うと簡単に情報通になれます、詳しくはこちらをどうぞ。>http://atwiki.jp/tools/rssmaker.html]]
■ その他にもいろいろな機能満載!!
-[[詳しくは、FAQ・初心者講座@wikiをみてね☆>http://www1.atwiki.jp/faq/]]
**分からないことは?
-[[@wikiの詳しい使い方はヘルプ・FAQ・初心者講座@wikiをごらんください。メールでのお問い合わせも受け付けております。>http://www1.atwiki.jp/faq/]]
-[[ユーザ同士のコミュニケーションにはたすけあい掲示板をご利用ください>http://bbs.atwiki.jp/]]
2006-06-19T22:19:44+09:00
1150723184
-
メニュー
https://w.atwiki.jp/akasicrecord/pages/2.html
メニュー
-[[トップページ]]
-[[メニュー]]
-[[メニュー2]]
2006-06-19T22:19:44+09:00
1150723184
-
メニュー2
https://w.atwiki.jp/akasicrecord/pages/3.html
**更新履歴
#recent(20)
2006-06-19T22:19:44+09:00
1150723184