![](/img/trans.png)
[英]How do I pass a C# object as the parameter to a Javascript function
[英]Pass object as function parameter in c# like in javascript
是否有可能在 c# 中通过 object,就像我在 Javascript 中以通用方式一样? 如何在 c# 中实现这一点? 由于所有变量都需要声明,但它们具有不同的 class 名称。
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)
我想制作与一个 function 相同的 showName 但 c# 需要声明 class 名称,如:
public void ShowName(Human human) {}
public void ShowName(Cat cat) {}
我可以像在 JS 中一样在 c# 中实现这一点的示例代码如何?
要在 C# 中执行此操作,您要么需要使用公共基类或接口(也许IHasName
带有string Name {get;}
属性,并将参数声明为IHasName
,并声明Human
和Cat
都实现IHasName
),或者您可以抛开所有理由并将参数声明为dynamic
,因为 JavaScript 感觉。 请做第一个,而不是第二个!
您可以使用接口来实现它。 接口为基于它实现的class 提供抽象,您可以在方法的arguments 中使用接口。 看这个例子:
public interface IBeings
{
public string Name { get; set; }
}
public class Human : IBeings
{
public string Name { get; set; }
}
public class Cat : IBeings
{
public string Name { get; set; }
}
class Program
{
static void ShowName(IBeings being)
{
Console.WriteLine($"My name is: {being.Name}");
}
static void Main(string[] args)
{
Human human1 = new Human() { Name = "John" };
Cat cat1 = new Cat() { Name = "Kitty" };
ShowName(human1);
ShowName(cat1);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.