【发布时间】:2021-05-09 17:33:20
【问题描述】:
是否有可能在 c# 中传递对象,就像我在 Javascript 中以通用方式传递对象一样?如何在 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)
我想将 showName 设为一个函数,但 c# 需要声明类名,例如:
public void ShowName(Human human) {}
public void ShowName(Cat cat) {}
我可以像在 JS 中一样在 c# 中实现这一点的示例代码看起来如何?
【问题讨论】:
-
我不这么认为。 C# 是高度类型提示的,您总是必须知道变量的类型。最通用的是var
-
好吧,既然 Javascript 不以作为一种类型化语言而闻名,我认为这是不可能的。对于类型安全相关的东西,你应该检查 TypeScript。
-
如果
human和cat都是creature的子类,您可以构建您的函数来期待creature,尽管我在C# 方面的经验不足,无法将其作为例子。 -
@Combinu:C# 中的关键字
var没有声明泛型类型或开放类型。它只是告诉编译器他应该从表达式的右侧派生类型。结果与使用具体类型完全相同。 (有dynamic可以真正得到一个开放的类型,但出于不同的原因,这不是初学者使用的东西)
标签: javascript c# object parameters