【发布时间】:2016-08-16 12:31:39
【问题描述】:
我有非常简单的按位运算符方法,我想像这样使用:
myInt.SetBit(int k, bool set)
所以它将索引“k”处的位更改为值“set”(0 或 1)我首先想到的是这样做:
public static void SetBit(this int A, int k, bool set) {
if (set) A |= 1 << k;
else A &= ~(1 << k);
}
但这当然只会改变变量“A”的内部值,而不是原始变量,因为整数不是引用类型。
我不能将 'ref' 与 'this' 一起使用,所以我不知道如何将其转换为参考参数。
我已经为 Int 数组提供了类似的方法,但是由于数组是引用类型,所以这些方法可以正常工作。
我正在寻找一种方法来为单个整数保留这种方便的语法,如果有的话。
【问题讨论】:
-
将您的签名从
void更改为int并返回新值。
标签: c# int bit-manipulation this ref