[英]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.