下面通过一段代码给大家解析C#语句的顺序不同所执行的结果不一样。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { /// <summary> /// 自定义类,封装加数和被加数属性 /// </summary> class MyClass { private int x = ; //定义int型变量,作为加数 private int y = ; //定义int型变量,作为被加数 /// <summary> /// 加数 /// </summary> public int X { get { return x; } set { x = value; } } /// <summary> /// 被加数 /// </summary> public int Y { get { return y; } set { y = value; } } /// <summary> /// 求和 /// </summary> /// <returns>加法运算和</returns> public int Add() { return X + Y; } } class Program { static void Main(string[] args) { MyClass myclass = new MyClass(); //实例化MyClass的对象 myclass.X = ; //为MyClass类中的属性赋值 myclass.Y = ; //为MyClass类中的属性赋值 int kg = myclass.Add(); Console.WriteLine(kg); //调用MyClass类中的Add方法求和 Console.ReadLine(); } } }
第60行的语句若是被放到第56行,则结果输出是0不是8,所以,在设计程序时,要注意语句次序,有着清晰的思维逻辑 。
下面还有点时间,接着给大家介绍C#中循环语句总结
通过使用循环语句可以创建循环。 循环语句导致嵌入语句根据循环终止条件多次执行。 除非遇到跳转语句,否则这些语句将按顺序执行。
C#循环语句中使用下列关键字:
· do...while
· for
· foreach...in
· while
do...while
do...while语句执行一个语句或语句重复,直到指定的表达式的计算结果为false, 循环的身体必须括在大括号内{},while条件后面使用分号结尾
示例
下面的示例 实现do-while循环语句的执行
public class TestDoWhile { static void Main () { int x = 0; do { Console.WriteLine(x); x++; } while (x < 10); } } /*
Output:
0
1
2
3
4
5
6
7
8
9
*/
do-while循环在计算条件表达式之前将执行一次,如果 while表达式计算结果为 true,则,执行将继续在第一个语句中循环。 如果表达式计算结果为 false,则会继续从 do-while 循环后的第一个语句执行。
do-while 循环还可以通过break、goto、return 或 throw 语句退出。
for
for 循环重复执行一个语句或语句块,直到指定的表达式计算为 false 值。 for 循环对于循环数组和顺序处理很有用。
示例
在下面的示例中,int i 的值将写入控制台,并且 i 在每次通过循环时都加 1。
class ForTest { static void Main() { for (int i = 1; i <= 10; i++) { Console.WriteLine(i); } } } /*
Output:
1
2
3
4
5
6
7
8
9
10
*/
for 语句重复执行括起来的语句,如下所述:
· 首先,计算变量 i 的初始值。
· 然后,只要 i 的值小于或等于 10,条件计算结果就为 true。此时,将执行 Console.WriteLine 语句并重新计算 i。
· 当 i 大于10 时,条件变成 false 并且控制传递到循环外部。
由于条件表达式的测试发生在循环执行之前,因此 for 语句可能执行零次或多次。可以通过使用break、goto 、 throw或return语句退出该循环。
所有表达式的 for语句是可选的例如对于下面的语句用于写一个无限循环。
for (; ; ) { // ... }
foreach...in
foreach 语句对实现 System.Collections.IEnumerable 或 System.Collections.Generic.IEnumerable<T>接口的数组或对象集合中的每个元素重复一组嵌入式语句。 foreach 语句用于循环访问集合,以获取您需要的信息,但不能用于在源集合中添加或移除项,否则可能产生不可预知的副作用。 如果需要在源集合中添加或移除项,请使用 for循环。
嵌入语句为数组或集合中的每个元素继续执行。 当为集合中的所有元素完成循环后,控制传递给 foreach 块之后的下一个语句。
可以在 foreach 块的任何点使用 break 关键字跳出循环,或使用 continue 关键字进入循环的下一轮循环。
foreach 循环还可以通过 break、goto、return 或 throw 语句退出。
示例
class ForEachTest { static void Main(string[] args) { int[] barray = new int[] { 0, 1, 2, 3, 4, 5}; foreach (int i in barray) { System.Console.WriteLine(i); } } } /*
Output:
0
1
2
3
4
5
*/
while
while 语句执行一个语句或语句块,直到指定的表达式计算为 false。
class WhileTest { static void Main() { int n = 1; while (n < 5) { Console.WriteLine(n); n++; } } } /*
Output:
1
2
3
4
*/
我对一个< code>select有一些奇怪的问题。< code>WHERE子句中的顺序可能会影响结果吗? 这是我的选择: 这将重现这个结果:http://dl.dropbox.com/u/4892450/sqlSelectProblem/select1.PNG 当我使用这个条件时: (不同的顺序) 我得到一个不同的结果(参见 列): http://dl.dropbox.com/u/4892450
本文向大家介绍C#中Try-Catch语句真的影响程序性能吗?,包括了C#中Try-Catch语句真的影响程序性能吗?的使用技巧和注意事项,需要的朋友参考一下 很多帖子都分析过Try-Catch的机制,以及其对性能的影响。 但是并没有证据证明,Try-Catch过于损耗了系统的性能,尤其是在托管环境下。记得园子里有位网友使用StopWatch分析过Try-Catch在不同情况下,与无Try-Cat
我试图限制用户使用我的桶策略访问我的桶。我有一组用户,他们都有一个S3FullAccess策略。我不能改变IAM中的任何东西。我只能使用我的遗愿保单。所以我想使用桶策略控制用户的访问。我把用户分成3类。 管理员访问我的桶(所有访问我的桶) 访问我的桶的权限有限的用户(如get-buk-策略,get-buk-位置) 无法访问我的桶。(无法访问我的桶) 下面的策略是我尝试过的,但不起作用。 我尝试了上
本文向大家介绍C#程序中类数量对程序启动的影响详解,包括了C#程序中类数量对程序启动的影响详解的使用技巧和注意事项,需要的朋友参考一下 前言 最近我在项目写了几万行代码,小伙伴担心会让程序启动速度变慢,所以本渣就来做测试。 本渣使用了代码创建器,创建了 1000 个垃圾文件,这些文件都很简单。我将这些文件放在一个控制台项目里,没有做任何的引用,然后使用 dotTrace 测试控制台启动的时间。 我
我正在为学院实现DFS和边缘分类(基于本文提供的代码:https://courses.csail.mit.edu/6.006/fall11/rec/rec14.pdf)。 斜体字母只是顶点的名称,而顶点内部的数字分别是发现时间和完成时间。边缘分为后、前或交叉;其他都是树边。 正如您所看到的,该图是按照以下顺序访问的:首先是,然后是它的邻居(在DFS之后);当没有更多可访问的邻居时,访问开始于。 为
备选方案2
这段代码给出的答案不是很直观: 0 1 我明白为什么会发生这种情况-赋值的左侧返回对底层值的引用,同时创建上述值,然后才使用新计算的对右侧进行评估映射。 这种行为在C标准中是否有表述?还是求值顺序没有定义? 使用g 5.2.1获得结果。
我目前在Java的编程课上学习多线程。根据我的理解,不同线程的执行顺序是无法预测的,因此确保我们实现机制以确保所有东西都按所需的顺序执行是很重要的。 我学到的机制之一是使用,它强制一个线程等待,直到其他线程完成执行。然而,下面的示例代码实际上让我更加困惑: 这段代码应该演示是如何工作的,它将执行,然后得到一个正确打印的。 然而,当我实际运行代码时,执行的顺序似乎仍然是随机的。我得到的结果是 那么,