像在javascript中一样在c#中将对象作为函数参数传递

Sco*_*pex 1 javascript c# parameters object

是否有可能像在 Javascript 中以通用方式传递对象一样在 c# 中传递对象?我怎样才能在 C# 中实现这一点?由于所有变量都需要声明,但它们具有不同的类名。

class human {
  constructor() {
    this.name = "John";
  }
}

class cat {
  constructor() {
    this.name = "Garfield";
  }
}


 function showName(character) {
    console.log("My name is: " + character.name)
  };

var character1 = new cat();
var character2 = new human();

showName(character1)
showName(character2)
Run Code Online (Sandbox Code Playgroud)

我想将 showName 设为一个函数,但 c# 需要声明类名,例如:

public void ShowName(Human human) {}
public void ShowName(Cat cat) {}
Run Code Online (Sandbox Code Playgroud)

我可以像在 JS 中一样在 c# 中实现此示例代码的外观如何?

Mar*_*ell 5

在C#中做到这一点你最好要么需要使用一个共同的基类或接口(也许IHasNamestring Name {get;}属性,声明参数为IHasName,并宣布,双方HumanCat执行IHasName),或者你可以扔掉所有的理由来风,并宣布参数 as dynamic,对于 JavaScript 的感觉。请做第一个,而不是第二个!