文字列のように動作するが、追加のプロパティを持つことができるクラスを持つことは可能ですか?
具体的には、次のようなことができるようになりたいです
Dim A As MyClass ''Or New MyClass("InitialValue")
A = "Something"
If A = "SomethingElse" Then
End If
私が見ることができることから、コンストラクターで文字列を渡すような方法で割り当てることができる型を実装する必要があります。
たとえばA = Something
、 として解釈する必要がありますA = New MyClass("Something")
。さらにIf A = "SomethingElse" Then
、基になる文字列値をチェックするコードで処理できるように、比較演算子をオーバーライドする必要があります。
封印されている/継承不可能であり、Stringには.Netで特別な処理があるように見えるためString
、これにアプローチする方法について少し困惑しています。
必要な理由を説明するために、検索インデックスに対するクエリを生成するためにシリアル化されたエンティティ クラス (EF ではない) を用意しました。クエリは、エンティティに対してラムダを指定することによって作成されます。
エンティティの特定のプロパティを変更して、(検索インデックスに渡すための) 単純な文字列にシリアル化するのではなく、複雑なオブジェクトにする必要があります。シリアライゼーション自体を制御することはできません (現在は Newtonsoft Json.Net 内で処理されています) ので、既存のラムダなどを使用できる (より迅速な) 代替手段になることを望んでいました...