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数组的方法,但这些方法工作正常,因为数组是引用类型.
我正在寻找一种方法来为单个整数保留这个方便的语法,如果有的话.
您不应将其视为参考类型.
使您的方法返回修改后的值并将其分配回您的变量.该方法将与不可变类型保持一致.考虑一下示例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)
| 归档时间: |
|
| 查看次数: |
423 次 |
| 最近记录: |