このIHideObjectMembersトリック(別名IFluentInterface)は、たとえば流暢なインターフェイス実装で、System.ObjectメンバーをIntelliSenseから隠すために使用できます。(このトリックがわからない場合は、上記のリンクから確認できます。ここでは、インターフェイスの通常の宣言を繰り返しています:)
using System;
using System.ComponentModel;
[EditorBrowsable(EditorBrowsableState.Never)]
public interface IHideObjectMembers
{
[EditorBrowsable(EditorBrowsableState.Never)] bool Equals(object obj);
[EditorBrowsable(EditorBrowsableState.Never)] int GetHashCode();
[EditorBrowsable(EditorBrowsableState.Never)] Type GetType();
[EditorBrowsable(EditorBrowsableState.Never)] string ToString();
}
System.Objectこれで、次のように別のタイプのメンバーを非表示にできるはずです。
public class SomeClass : IHideObjectMembers { ... }
また:
public interface ISomeInterface : IHideObjectMembers { ... }
VS2008ExpressとVS2008Standardの両方でこれを試しました。ただし、IntelliSenseから隠されているメンバーはありません。私はEditorBrowsableAttributeさまざまなプロジェクトでを使用しましたが、常にうまく機能しました。ただし、この特定のシナリオでは機能しません。
物事が期待通りに機能していたら、私はそのSomeMethodTwo方法を見ただけだったでしょう。
私は何かが足りないのですか?
PS:宣言とスクリーンショットから私のサンプルコードを推測できます。SomeClassと呼ばれる単一のダミーメソッドを持つクラスがありSomeMethodTwoます。とてもシンプルです。このクラスの4つのメソッドは必要ないはずなので、再実装していません。System.Object
