既然true不是字符串类型,字符串怎么样null + true?
string s = true; //Cannot implicitly convert type 'bool' to 'string'
bool b = null + true; //Cannot implicitly convert type 'string' to 'bool'
Run Code Online (Sandbox Code Playgroud)
这背后的原因是什么?
void main() {
if("a" == "a")
printf("Yes, equal");
else
printf("No, not equal");
}
Run Code Online (Sandbox Code Playgroud)
为什么输出No, not equal?
我发现这个代码使用XOR ^运算符交换两个数字而不使用第三个变量.
码:
int i = 25;
int j = 36;
j ^= i;
i ^= j;
j ^= i;
Console.WriteLine("i:" + i + " j:" + j);
//numbers Swapped correctly
//Output: i:36 j:25
Run Code Online (Sandbox Code Playgroud)
现在我将上面的代码更改为此等效代码.
我的代码:
int i = 25;
int j = 36;
j ^= i ^= j ^= i; // I have changed to this equivalent (???).
Console.WriteLine("i:" + i + " j:" + j);
//Not Swapped correctly
//Output: i:36 j:0
Run Code Online (Sandbox Code Playgroud)
现在,我想知道,为什么我的代码输出不正确?
在C语言中,可以通过00在数字之前放置来编写八进制数
编者注:它是一个单一的前导0,它将数字文字标识为C中的八进制值; 其他0实例无效.
int i=0012; //equals 10 in decimal
Run Code Online (Sandbox Code Playgroud)
我在C#中找到了相当于Hexadecimal的0x数字,例如放在数字之前
int i=0xA; //equals 10 in decimal
Run Code Online (Sandbox Code Playgroud)
现在我的问题是: C中的八进制数是否与C中的相同,以表示任何数字为八进制数?
foreach的工作: 据我所知,
foreach是一个循环,它逐个遍历集合或数组,从0索引开始直到集合的最后一项.
所以,如果我在数组中有n个项目.
foreach (var item in arr)
{
}
Run Code Online (Sandbox Code Playgroud)
然后,在第一次迭代中,item = arr [0];
然后,在第2, item = arr [1];
.
.
.
在last(nth), item = arr [n-1];
结论:从工作开始,它似乎在每次迭代时都知道从数组中取出哪个值,或者它知道要从数组中获取的项的索引.
现在我的问题是:如何在不使用新变量的情况下获取项目的索引?
foreach (string item in mylist)
{
if (item == "myitem")
{
// get index of item
break;
}
}
Run Code Online (Sandbox Code Playgroud) 无法理解.为什么输出"平等"
码:
if (-3 == ~2)
Console.WriteLine("equal");
else
Console.WriteLine("not equal");
Run Code Online (Sandbox Code Playgroud)
输出:
equal
Run Code Online (Sandbox Code Playgroud) .net c# bitwise-operators twos-complement conditional-statements
为什么float.NaN != double.NaN?
而float.PositiveInfinity == double.PositiveInfinity和float.NegativeInfinity == double.NegativeInfinity是相等的.
例:
bool PosInfinity = (float.PositiveInfinity == double.PositiveInfinity); //true
bool NegInfinity = (float.NegativeInfinity == double.NegativeInfinity); //true
bool isNanEqual = (float.NaN == double.NaN); //false, WHY?
Run Code Online (Sandbox Code Playgroud) 可能重复:
确定输入是否是完美正方形的好算法是什么?
我希望用最短最简单的方法来检查数字是否是C#中的完美平方
一些完美的正方形:
1, 4, 9, 16, 25, 36, 49, 64, 81, 100, ......
Run Code Online (Sandbox Code Playgroud) 在连接字符串时,&和+运算符之间是否有任何区别?如果有,那么有什么区别?如果否,那么为什么下面的代码生成异常?
例:
Dim s, s1, t As String
Dim i As Integer
s1 = "Hello"
i = 1
s = s1 & i
t = s1 + i //Exception here
If s = t Then
MessageBox.Show("Equal...")
End If
Run Code Online (Sandbox Code Playgroud) 当我在单元格内编辑文本时,DataGridView keydown事件不起作用.
我正在分配快捷键Alt + S来保存数据,它在单元格不处于编辑模式时有效,但如果它处于编辑模式,则代码不能正常工作
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == (Keys.Alt | Keys.S))
{
//save data
}
}
Run Code Online (Sandbox Code Playgroud)