当作为参数传递时,防止混淆相同基类型的id

本文关键字:基类 类型 id 参数传递 | 更新日期: 2023-09-27 18:04:35

我有一个有很多业务逻辑的程序,我不断调用方法并传递ID (userID, projectID, fooID, barID等),这些都是整型。有时我粗心大意,交换了参数的顺序,userID变成了projectID,反之亦然。

有没有什么地方我可以改变一个整型,使它不能作为整型传递,但我可以很容易地从int转换为"intB"

我正在寻找一些类似于可空整型的东西:"int?",但我可以有"intA","intB","intC",并且只有当它被显式转换时才能作为另一个传递。

c#中存在这样的东西吗?

当作为参数传递时,防止混淆相同基类型的id

创建一个包含int类型的结构体。就这么简单。几乎是零开销,因为它会被优化出来。

如果问题是弄乱了参数,您是否尝试过在调用方法时使用参数的名称?

如果你有:

int Divide(int divisor, int dividend)
{
    //stuff
}

可以这样调用:

int result = Divide(divisor: 3, dividend:2)

顺序无所谓,你可以按

int result = Divide(dividend:2, divisor: 3) 

命名参数对于防止混淆参数很有用。例子:

CalculateBMI(123, 64);
//becomes...
CalculateBMI(weight: 123, height: 64);
//or...
CalculateBMI(height: 64, weight: 123); 

只需在调用方法时将参数名称放在参数前面即可。有关更多信息,请参见MSDN上的命名参数和可选参数。