我有两个功能,一个可以编译,另一个不能.有什么不同?
函数1是否假设案例1总是被命中,或者只是编译器问题?
public void Test(int x)
{
switch (x)
{
case 1:
uint cId = (uint)3;
break;
case 2:
cId = (uint)5; //NO ERROR HERE. WHY?
break;
}
}
public void DeclaringInsideSwitch(int x)
{
uint tst = 0;
switch (x)
{
case 1:
int y = 3;
uint variable = tst;
break;
case 2:
variable++; //ERROR HERE. WHY?
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我当然尝试搜索"在C#中声明切换案例中的变量",但对我来说,它似乎只是C#中的某种错误,为了向后兼容而保留.
//在得到已经回答的警告之后,我的问题现在可以减少到它的真正含义.
为什么:
int x;
x++;
Run Code Online (Sandbox Code Playgroud)
这不行吗?
我在WinDbg命令中运行转储文件
地址-摘要
我的结果是这样的
Usage Summary RgnCount Total Size %ofBusy %ofTota
Free 3739 7ff5`dbbae000 ( 127.960 Tb) 99.97%
<unknown> 1677 5`680a1000 ( 21.626 Gb) 53.31% 0.02%
Heap 20349 4`0049f000 ( 16.005 Gb) 39.45% 0.01%
Stack 230 0`a3e90000 ( 2.561 Gb) 6.31% 0.00%
Run Code Online (Sandbox Code Playgroud)
如何在堆中找到内容?什么是对象或什么是类型?
是托管堆,而堆是托管堆?
很难问这样的问题,所以我添加了更多信息
这是我的C#示例代码
class Program
{
public static int[] arr;
public static AllocateUnmanagedMemory cls;
static void Main(string[] args)
{
const int GBSize = 1 * 1024 * 1024 * 1024/ sizeof(int);
Console.WriteLine("Allocating");
arr = new int[GBSize];
cls = …
Run Code Online (Sandbox Code Playgroud) 当B大于a时,为什么C不大于b?
Visual C++ 2017 STL中的代码:
void main ()
{
cout << ("A" > "A") << endl;
cout << ("a" > "A")<< endl;
cout << ("B" > "a")<< endl;
cout << ("b" > "B")<< endl;
cout << ("C" > "b")<< endl;
cout << ("c" > "C")<< endl;
cout << ("AA" > "c")<< endl;
cout << ("Aa" > "AA")<< endl;
cout << ("aA" > "AA")<< endl;
cout << ("aa" > "aA")<< endl;
cout << ("BA" > "aa")<< endl;
cout << ("Ba" > …
Run Code Online (Sandbox Code Playgroud)