Я в настоящее время преобразовываю и отливу из класса в Class2
с использованием неявного оператора.Как вернуть свойство класса вместо самого класса?
Но то, что я хочу сделать, это, что всякий раз, когда я имею в виду foo (Class<Class2>)
, я хотел бы, чтобы Goo(Class)
быть возвращены, так что я могу получить доступ к общественности Свойства него непосредственно, без того, чтобы бросить его сначала в новую переменную.
Другими словами, я хочу, чтобы при доступе к Class<Class>
я бы хотел, чтобы Goo был возвращен.
Я знаю, что я, возможно, не смог объяснить должным образом, поэтому не стесняйтесь спрашивать в разделе комментариев, чтобы я мог попытаться еще лучше понять, что я имею в виду. Заранее спасибо!
class Class<T> where T : new()
{
public T Goo;
public Class() { Goo = new T(); }
public static implicit operator T(Class<T> Loo)
{
return Loo.Goo;
}
}
class ClassX
{
public byte[] SharedData;
public ClassX() { }
}
class Class2 : ClassX
{
public byte Data;
public Class2() { }
}
class Class3 : ClassX
{
public string Data;
public Class3() { }
}
class Program
{
static void Main(string[] args)
{
Class<Class2> foo = new Class<Class2>();
Class2 poo = foo;
foo.Data = 0xFF; // Error - I want this to work, tho.
poo.Data = 0xFF; // Works - Not what I want to use.
System.Console.ReadLine();
}
}
EDIT # 1: Обновлен код.
Что-то вроде прокси-класса? – Diryboy
Если я получу вас правильно, вы захотите сделать 'new Class() .Data = 0xFF' где' .Data' обращается к 'Goo'? –
Bauss
Я обновил код. Интерфейс @Diryboy не подходит мне, как я хочу это делать. Итак, я предполагаю, что это не прокси-класс. –