创建一个处理具有公共属性的对象的函数

Aiv*_*ler 0 .net c# casting properties function

以此为例

为了便于阅读,我修剪了这个例子,你可能在这里找不到这个概念的用法.

class Teacher()
{
 public Name {get; set;}
 public Salt {get; set;}
 public Department{get; set;}
}

class Student()
{
 public Name {get; set;}
        public Salt {get; set;}
 public Section{get; set;}
}

public string GetEncryptedName(object Person)
{
 //return encrypted name based on Name and Salt property
 return encrypt(object.Salt,object.Name)
}
Run Code Online (Sandbox Code Playgroud)

callig函数

GetEncryptedName(Teacher)
GetEncryptedName(Student)
Run Code Online (Sandbox Code Playgroud)

你是如何实现这种东西的?

Jai*_*ime 6

您需要在Teacher和Student中实现通用接口/基类:

interface IPerson {
    string Name {get;set;}
    string Salt {get;set;}
}

class Teacher : IPerson...

class Student : IPerson...

public string GetEncryptedName(IPerson person)
{
 //return encrypted name based on Name and Salt property
 return encrypt(person.Salt,person.Name)
}
Run Code Online (Sandbox Code Playgroud)

这样,当任何实现IPerson接口并确保实现Name和Salt属性的对象时,您可以调用GetEncryptedName