Анонимный тип заданного интерфейса - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. Возможно ли создать анонимный тип, который бы реализовывал некий интерфейс? Например:
using System;
 
public interface IFace
{
    int f { get; }
}
 
public class Test
{
    public static void FaceArgument( IFace o )
    {
        Console.WriteLine( o.f );
    }
    
    public static void Main()
    {
        var v = new // Создаем анонимный тип
        { 
            f = 42 // Попытка реализовать интерфейс... неудачная.
        };
        
        FaceArgument( v ); // Вызов 
    }
}

Решение задачи: «Анонимный тип заданного интерфейса»

textual
Листинг программы
using System;
 
public interface IFace
{
    int f { get; }
}
 
public class Class
{
    private class FaceClass : IFace
    {
        public int f { get {return 42;} }
    }
    
    public IFace GetSome()
    {
        return new FaceClass();
    }
}
 
public class Test
{
    public static void FaceArgument( IFace iface )
    {
        Console.WriteLine( iface.f );
    }
    
    public static void Main()
    {
        Class c = new Class();
        
        FaceArgument( c.GetSome() );
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы