gpt4 book ai didi

c# - 是否可以创建具有未定义类型的方法?

转载 作者:搜寻专家 更新时间:2023-10-30 22:09:00 25 4
gpt4 key购买 nike

我正在尝试为连接到外部数据库的 WebService 创建一个“插入”方法,但我没有创建 InsertPerson、InsertAge、Insert 任何东西,而是尝试执行一个唯一的 Insert,参数类型是根据请求自动定义的,例如:如果我想在数据库中插入一个人,我调用 Insert("mytype"name),如果在我想插入年龄之后调用 Insert("mytype"age) 并且当您单击特定按钮时包含此类型。

如果它令人困惑,我会尝试用另一个例子来解释:我点击“插入年龄”按钮,它将发送到“mytype”,这是一个整数和文本框的参数值,代码将连接到数据库并插入那。像这样:

点击事件 -> mytype = int
Insert(int age) -> "INSERT INTO db VALUE age"

那么,在这一切之后,是否有可能创建这样的东西?还是存在其他更好的选择?

最佳答案

不是在 object 中装箱,您可以通用地这样做:

public void Insert<T>(T input)
{
// DB setup code goes here
var parameter = new SqlParameter("@input", input);

// Finish DB code here
}

// Call it like this
myClass.Insert<int>(integerInputData);
myClass.Insert<string>(stringInputData);

它比对象中的装箱和拆箱更干净。

https://msdn.microsoft.com/en-us/library/twcad0zb.aspx

但是,如果您只是将它传递给需要object 的东西(例如SqlParameter),那么您可以将它装在object 中.

public void Insert(object input)
{
// DB setup code goes here
var parameter = new SqlParameter("@input", input);

// Finish DB code here
}

// Call it like this
myClass.Insert(integerInputData);
myClass.Insert(stringInputData);

关于c# - 是否可以创建具有未定义类型的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38288482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com