C# - 引用"this int"参数

grr*_*grr 4 c# int bit-manipulation this ref



我有非常简单的Bitwise运算符方法,我想这样使用:

myInt.SetBit(int k, bool set)
Run Code Online (Sandbox Code Playgroud)

所以它将索引'k'的位改为值'set​​'(0或1)我首先想到这样做:

public static void SetBit(this int A, int k, bool set) { 
    if (set) A |= 1 << k; 
    else A &= ~(1 << k); 
}
Run Code Online (Sandbox Code Playgroud)

但当然这只会改变变量'A'的内部值,而不是原始变量,因为整数不是引用类型.
我不能将'ref'和'this'一起使用,所以我不知道如何把它变成参考参数.
我已经有类似Int数组的方法,但这些方法工作正常,因为数组是引用类型.

我正在寻找一种方法来为单个整数保留这个方便的语法,如果有的话.

Hab*_*bib 5

您不应将其视为参考类型.

使您的方法返回修改后的值并将其分配回您的变量.该方法将与不可变类型保持一致.考虑一下示例String.Replace,它不会修改字符串,而是返回修改后的副本.

public static int SetBit(this int A, int k, bool set)
{
    if (set) A |= 1 << k;
    else A &= ~(1 << k);

    return A;
}
Run Code Online (Sandbox Code Playgroud)