Определение неявных и явных приведений для интерфейсов C #

Есть ли способ написания кода на основе интерфейса (то есть использование интерфейсов, а не классов в качестве типов, принятых и передаваемых) в C #, не отказываясь от использования таких вещей, как неявное приведение? Вот пример кода - там было много удалено, но это соответствующие части.

 public class Game
 {
     public class VariantInfo
     {
         public string Language { get; set; }
         public string Variant { get; set; }
     }
 }

И в ScrDictionary.cs у нас есть ...

 public class ScrDictionary: IScrDictionary
 {
     public string Language { get; set; }
     public string Variant { get; set; }

     public static implicit operator Game.VariantInfo(ScrDictionary s)
     {
        return new Game.VariantInfo{Language=sd.Language, Variant=sd.Variant};
     }
 }

И интерфейс ...

 public interface IScrDictionary
 {
     string Language { get; set; }
     string Variant { get; set; }
 }

Я хочу быть в состоянии использоватьIScrDictionary вместоScrDictionary, но все же сможет неявно преобразовыватьScrDictionary кGame.VariantInfo, Кроме того, хотя может быть простой способ сделать эту работу, давIScrDictionary свойство типаGame.VariantInfo мой вопрос более общий:Есть ли способ определения приведений или перегрузки операторов на интерфейсах? (Если нет, как правильно C # поддерживать эту функциональность, не отказываясь от интерфейсно-ориентированного дизайна?)

Ответы на вопрос(2)

Ваш ответ на вопрос