How to implement a property in an interface

后端 未结 6 1027
醉话见心
醉话见心 2020-12-04 11:43

I have interface IResourcePolicy containing the property Version. I have to implement this property which contain value, the code written in other

相关标签:
6条回答
  • 2020-12-04 12:21

    Interfaces can not contain any implementation (including default values). You need to switch to abstract class.

    0 讨论(0)
  • 2020-12-04 12:21

    The simple example of using a property in an interface:

    using System;
    interface IName
    {
        string Name { get; set; }
    }
    
    class Employee : IName
    {
        public string Name { get; set; }
    }
    
    class Company : IName
    {
        private string _company { get; set; }
        public string Name
        {
            get
            {
                return _company;
            }
            set
            {
                _company = value;
            }   
        }
    }
    
    class Client
    {
        static void Main(string[] args)
        {
            IName e = new Employee();
            e.Name = "Tim Bridges";
    
            IName c = new Company();
            c.Name = "Inforsoft";
    
            Console.WriteLine("{0} from {1}.", e.Name, c.Name);
            Console.ReadKey();
        }
    }
    /*output:
     Tim Bridges from Inforsoft.
     */
    
    0 讨论(0)
  • 2020-12-04 12:28

    In the interface, you specify the property:

    public interface IResourcePolicy
    {
       string Version { get; set; }
    }
    

    In the implementing class, you need to implement it:

    public class ResourcePolicy : IResourcePolicy
    {
       public string Version { get; set; }
    }
    

    This looks similar, but it is something completely different. In the interface, there is no code. You just specify that there is a property with a getter and a setter, whatever they will do.

    In the class, you actually implement them. The shortest way to do this is using this { get; set; } syntax. The compiler will create a field and generate the getter and setter implementation for it.

    0 讨论(0)
  • 2020-12-04 12:28

    You mean like this?

    class MyResourcePolicy : IResourcePolicy {
        private string version;
    
        public string Version {
            get {
                return this.version;
            }
            set {
                this.version = value;
            }
        }
    }
    
    0 讨论(0)
  • 2020-12-04 12:39

    You should use abstract class to initialize a property. You can't inititalize in Inteface .

    0 讨论(0)
  • 2020-12-04 12:48
    • but i already assigned values such that irp.WrmVersion = "10.4";

    J.Random Coder's answer and initialize version field.

    
    private string version = "10.4';
    
    0 讨论(0)
提交回复
热议问题