とプロパティを実装たぶん私は、カスタムの考え方が間違っ属性が、私はこれが可能になり、何かする必要がありますと思ったそうです。私は基本的に彼らはまた、セッターを持っては、カスタム属性
class BaseClass {
public string MyString { get; set;}
}
class FooClass : BaseClass {
public string Part1 { get { return MyString.SubString(0,3); }}
public string Part2 { get { return MyString.SubString(3,5); }}
}
class BarClass : BaseClass {
public string PartA { get { return MyString.SubString(0,4); }}
public string PartB { get { return MyString.SubString(4,1); }}
}
基本クラスのプロパティの部分文字列を取得するプロパティを持つ複数の派生クラスを持っており、実際のコードはもう少し複雑です...しかし、あなたは絵を得ました。
私はこれを何千回も実装する必要はないので、私はカスタム属性を使用することを考えていました。だから私は何ができる:
class FooClass : BaseClass {
[DataPart(0, Length = 3)]
public string Part1 { get; set; }
[DataPart(3, Length = 5)]
public string Part2 { get; set; }
}
class BarClass : BaseClass {
[DataPart(4, Length = 4)]
public string PartA { get; set; }
[DataPart(4)]
public string PartB { get; set; }
}
を私はすでに、カスタム、それのために属性を持つ:
[global::System.AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
sealed class DataPartAttribute : Attribute
{
public ushort Position { get; private set; }
public ushort Length { get; set; }
public DataByteAttribute(ushort position)
{
Position = position;
}
}
今何?