WPF의 DependencyProperty 및 DependencyObject 시스템과 비슷한 설정이 있습니다. 그러나 내 속성은 일반적입니다. BucketProperty에는 모든 BucketProperties를 추적하는 정적 GlobalIndex (BucketPropertyBase에서 정의 됨)가 있습니다. Bucket은 모든 BucketProperties를 가질 수 있습니다. Bucket은 이러한 BucketProperties의 실제 값을 저장하고 가져옵니다. 이제 내 질문은 이러한 값의 저장을 처리하는 방법과이를 검색 할 때 typecasting을 사용하는 페널티는 무엇입니까? 현재 BucketEntries 배열을 사용하여 속성 값을 간단한 개체로 저장합니다. 이 값을 저장하고 반환하는 더 좋은 방법이 있습니까?일반 값을 저장할 때 C#의 typecasting 및 boxing/unboxing 유형의 성능 저하가
은 아래에 simpliefied 버전 :
public class BucketProperty<T> : BucketPropertyBase
{
}
public class Bucket
{
private BucketEntry[] _bucketEntries;
public void SaveValue<T>(BucketProperty<T> property, T value)
{
SaveBucketEntry(property.GlobalIndex, value)
}
public T GetValue<T>(BucketProperty<T> property)
{
return (T)FindBucketEntry(property.GlobalIndex).Value;
}
}
public class BucketEntry
{
private object _value;
private uint _index;
public BucketEntry(uint globalIndex, object value)
{
...
}
}