goo blog サービス終了のお知らせ 

日々のDraft

回答原案集

愚痴

2012-02-20 15:16:49 | その他

昨日だかに書いたとおり、つまみ食いで無駄に迷走したが、vbncの動作原理自体はある程度把握したつもり。

一息入れるつもりで、MonoDevelop 2.8.6.4からMonoDevelop 2.8.6.5に入れ替え。まぁ、XCodeへの対応みたいだから、別にやってもいいことないような気もするけど。

俺はディレクトリにバージョン番号を含めているので、自動アップデートとかは使わず、古いアプリをアンインストール→新しいアプリをインストールと手順を踏む。その際、古い方のフォルダに入れたMonoDevelop.VBNetBindingをごと削除しちまった。

フォルダ構成がごちゃごちゃすることを嫌ってバックアップ自体を削除しちゃったからビルドし直し。Mono.Addinsとかその周辺の参照が切れているのを一々指定し直すと時間がかかるんだよなあ

ビルド完了。間違って消さないようにGmailに下書きを保存

GmailからダウンロードしたDllで、元のMonoDevelopのDllを上書き。MonoDevelopを起動したらエラー。ええとナニナニ?「ネットワーク上の場所からアセンブリを読み込もうとしました。これにより、以前のバージョンの .NET Framework で、アセンブリがサンドボックス化された可能性があります。このリリースの .NET Framework では、CAS ポリシーが既定で有効になっていないため、この読み込みは危険な場合があります。この読み込みがアセンブリのサンドボックス化を目的としない場合は、loadFromRemoteSources スイッチを有効にしてください。」だって?初めて見るなあ

以前Alternate Data Streamを知って、AlternateDataStreamViewを使って覗いてみたら、ZoneIdentifierが書かれていたな…もしかして削除すれば治る?→成功。やっと本題を再開できる


愚痴(VB.NETとPartialキーワード)

2012-02-19 05:22:20 | その他

気になったコード

If partialType IsNot Nothing Then 'There is already a type with the same name result = partialClassOrStruct result.IsPartial = True result.Modifiers = result.Modifiers.AddModifiers(m_Modifiers.Mask) result.PartialModifierFound = result.Modifiers.Is(ModifierMasks.Partial) OrElse m_Modifiers.Is(ModifierMasks.Partial) ElseIf partialType IsNot Nothing Then 'There is another type with the same name Helper.AddError(tm.Compiler, tm.CurrentLocation, "Two types with the same name: " & m_Identifier.Name) Return Nothing Else 'No type with the same name. If IsClass Then result = New ClassDeclaration(Parent, [Namespace], GenericName, m_TypeParameters) Else result = New StructureDeclaration(Parent, [Namespace], GenericName, m_TypeParameters) End If result.Modifiers = m_Modifiers End If

で。このコードから、vbcとvbncで挙動が異なるコードを考えようとしたんだけど…宣言されている全ての同名クラスにpartial修飾子がついている必要があるC#と違ってVB.NETは必要無いようだ。vbncだけかと思ったらMS謹製コンパイラvbcでも通っちゃってるよ…バグじゃないよね?