小编Rob*_*ber的帖子

拳击值类型将其发送到方法并获得结果

我很好奇在将值/引用类型传递给方法时C#的行为方式.我想将盒装值类型传递给方法" AddThree ".我们的想法是在调用函数(Main)中输入" AddThree "中执行的操作的结果.

static void Main(string[] args)
{
    int age = 3;
    object myBox = age;
    AddThree(myBox);
    // here myBox = 3 but I was expecting to be  = 6
}

private static void AddThree(object age2)
{
    age2 = (int)age2 + 3;
}
Run Code Online (Sandbox Code Playgroud)

我已尝试使用像字符串这样的纯引用类型,我得到了相同的结果.如果我在一个类中"包装"我的int并且我在这个例子中使用"wrap"类它就像我期望的那样工作,即我得到myBox = 6.如果我修改"AddThree"方法签名来传递参数ref,这也返回6.但是,我不想修改签名或创建一个包装类,我只想将值包装起来.

c# boxing value-type reference-type pass-by-reference

8
推荐指数
2
解决办法
598
查看次数

Git流 - 摆脱一个特定的功能

我目前正在尝试在我的团队中设置开发过程并阅读有关GitFlow的内容.它看起来很有趣,但我可以发现一些问题.

我们假设以下场景:

我们完成的功能F1,F2以及F3和这些合并到develop分支.基于此,我们创建了一个release分支.

如果我们想要摆脱功能,我们该怎么办F3

看看这张图片,以获得更好的主意.

在此输入图像描述

git branch release git-flow

5
推荐指数
1
解决办法
1576
查看次数

整数溢出异常

为什么我在这里得到编译器错误:

int a = 2147483647 + 10;
Run Code Online (Sandbox Code Playgroud)

而不是在这里,如果我正在执行相同的操作:

int ten = 10;
int b = 2147483647 + ten;
Run Code Online (Sandbox Code Playgroud)

我正在学习使用checked和MSDN网站不清楚为什么在第一个代码片段中引发了OverflowException:

默认情况下,如果表达式生成的值超出目标类型的范围,则仅包含常量值的表达式会导致编译器错误.如果表达式包含一个或多个非常量值,则编译器不会检测溢出.

它只解释了行为,但没有解释这种行为的原因.我想知道引擎盖下发生了什么.

.net c# integer-overflow

5
推荐指数
1
解决办法
715
查看次数