Код: Выделить всё
public interface IIdentity
{
int Id { get; set; }
}
public class Identity : IIdentity
{
public int Id { get; set; }
}
Код: Выделить всё
var identities = new List();
identities.Add( new Identity { Id = 1 } );
identities.Add( new Identity { Id = 2 } );
identities.Add( new Identity { Id = 3 } );
Код: Выделить всё
foreach ( IIdentity identity in identities )
{
Console.WriteLine( "Plug-in: {0}", identity.Id.ToString() );
}
Код: Выделить всё
public class Wrapper where T : class
{
public T WrappedObject { get; set; }
public string Name { get; set; }
public int Order { get; set; }
}
Код: Выделить всё
var identities = new List();
identities.Add( new Wrapper { WrappedObject = new Identity { Id = 1 }, Name = "John", Order = 1 } );
identities.Add( new Wrapper { WrappedObject = new Identity { Id = 2 }, Name = "Jane", Order = 2 } );
identities.Add( new Wrapper { WrappedObject = new Identity { Id = 3 }, Name = "Joe", Order = 3 } );
Как видно из предоставленного кода, Wrapper не реализует IIidentity интерфейс.
Однако компилятор жаловался, если была сделана одна из двух модификаций:
- запечатан.
Код: Выделить всё
WrapperКласс - Строка 1 заменяется строкой 2.
Код: Выделить всё
foreach ( IIdentity identity in identities )
Код: Выделить всё
foreach ( var identity in identities )
Подробнее здесь: https://stackoverflow.com/questions/107 ... iler-issue
Мобильная версия