Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我通过I';我在传递论点?_C#_Oop - Fatal编程技术网

C# 当我通过I';我在传递论点?

C# 当我通过I';我在传递论点?,c#,oop,C#,Oop,你们能解释一下,当我有接口类型的参数时,我如何获得对象属性吗 public interface IObject {} public class Object : IObject {} 然后我有一些类似的方法: public void Add(IObject object) { object.someThing; // I want to get that property but I can't. } 我应该使用什么类型来获取这些属性

你们能解释一下,当我有接口类型的参数时,我如何获得对象属性吗

    public interface IObject {}

    public class Object : IObject {}
然后我有一些类似的方法:

    public void Add(IObject object)
    {
        object.someThing; // I want to get that property but I can't.
    }

我应该使用什么类型来获取这些属性?什么是最佳实践?

接口是由类实现的契约,这意味着

接口包含的任何规则(方法和属性) 将需要由实现 接口

因此,当您接受一个带有接口的方法作为参数中的类型时,您表示将传递给该方法的对象将包含接口所述的方法和属性


因此,您希望在对象上调用的方法应该在接口中定义。

将属性移动到接口中。最好将属性保留在接口中?@ext这几乎是接口的全部用途。如果您想访问具体类的成员,请将变量
object
键入
object
(使用混凝土类型)。