Tag: int

为什么Int32.MaxValue * Int32.MaxValue == 1?

我知道, Int32.MaxValue * Int32.MaxValue将产生一个大于Int32的数字; 但是,这句话不应该提出某种例外吗? 当我做一些像IF (X * Y > Z)这样的东西都是Int32时候,我碰到了这个。 X和Y足够大,你从X * Y得到一个虚假的值。 为什么会如此以及如何解决这个问题? 除了将所有内容都输入Int64之外

为什么我必须在C#中将枚举转换为int?

这是我的代码: internal enum WindowsMessagesFlags { WM_EXITSIZEMOVE = 0x00000232, WM_DISPLAYCHANGE = 0x0000007e, WM_MOVING = 0x00000216, } protected override void WndProc(ref Message m) { switch(m.Msg) { case (int)WindowsMessagesFlags.WM_DISPLAYCHANGE: FixWindowSnapping(); break; case (int)WindowsMessagesFlags.WM_EXITSIZEMOVE: SaveWindowProperties(); break; case (int)WindowsMessagesFlags.WM_MOVING: KeepProperLocation(ref m); break; } } 反正有没有阻止铸造?

从整数列表中获取随机数

如果我有一个整数列表: List myValues = new List(new int[] { 1, 2, 3, 4, 5, 6 } ); 如何从该列表中获得3个随机整数?

是int吗? 值类型或引用类型?

这个问题更多的是关于添加? 一个值类型比关于int? 在C#中, int是值类型。 是int? 值类型或引用类型? 在我看来,它应该是一个引用类型,因为它可以为null 。

C#将IntPtr转换为int

我正在动态调用Windows API。 我在网上发现了一些可以做到这一点的代码,我对此非常感兴趣。 至少可以说,这个想法本身就很棒。 但是,我似乎无法使其适用于我的代码。 动态调用的参数类型为string , string int[] ,我想使用API GetThreadContext ,其参数为pInfo.hThred和ref ctx (如下所示)。 API调用 GetThreadContext(pInfo.hThread, ref ctx); 上面的代码将调用GetThreadContext API(假设它在我的项目中声明) – 并且工作得很好。 然而,动态调用的美妙之处在于不需要声明。 所以,我尝试动态调用: ctx = new CONTEXT {ContextFlags = 0x10007}; PROCESS_INFORMATION pInfo; CInvokeAPI.Invoke(“kernel32″,”GetThreadContext”,pInfo.hThread, ctx); 这里的问题是我不知道如何将参数ctx作为类型int传递,因为它是一个结构。 请参阅下面的其他代码 [StructLayout(LayoutKind.Sequential)] struct CONTEXT { public uint ContextFlags; unsafe fixed byte unused[160]; public uint Ebx; public uint Edx; public […]

将char数组转换为int数组c#

我有这个arrays char[] A = [‘1’, ‘2’, ‘3’, ‘4’] 我想将其转换为int [] int[] Aint=[1, 2, 3, 4] 有任何想法吗? 我刚刚开始编程 谢谢

整数溢出 – 将C#转换为VB.Net代码

从C#到VB.Net的代码转换出了问题。 var x = 5783615; var y = 56811584; var t = x * y; x,y和t是整数。 在c#’t’将是-15536​​49728。 在VB.Net中,我将得到一个整数溢出exception。 知道怎么解决吗?

将字符串转换为int而不会在开头丢失零

我尝试了int.parse,并转换类将字符串转换为int。 我正在转换。 我在开始时输掉了0,我不想要。 例:09999变为9999 – 我不想要这个。 我想保持原样。 我怎样才能做到这一点?

Int to string:无法从’method group’转换为’string’

我的表单上有一个listView。 我希望在程序运行时添加内容。 这是我使用的代码 public void FillList(string[] Name,int[] empty,int[] Population,int[] Max,int[] Check,int size) { if (this.InvokeRequired) { this.Invoke((MethodInvoker)delegate { for (int i = 0; i < size; i++) { ListViewItem item = new ListViewItem(Name[i]); item.SubItems.Add(empty[i].ToString); //error item.SubItems.Add(Population[i].ToString); //error item.SubItems.Add(Max[i].ToString); //error if (Check != 1) item.SubItems.Add("No"); else item.SubItems.Add("Yes"); listView1.Items.Add(item); } }); } } 参数必须是字符串,我试过.ToString ,但我明白了: 参数’1’:无法从’方法组’转换为’字符串’

C#immutable int

在Java中,字符串是不可变的。 如果我们有一个字符串并对其进行更改,我们将获得由同一个变量引用的新字符串: String str = “abc”; str += “def”; // now str refers to another piece in the heap containing “abcdef” // while “abc” is still somewhere in the heap until taken by GC 据说 int和double在C#中是不可变的。 这是否意味着当我们有int并且稍后更改它时,我们会得到同一个变量“指向”的新int? 同样的事情,但堆栈。 int i = 1; i += 1; // same thing: in the stack there is value 2 […]