1. 首页
  2. 课程学习
  3. .Net
  4. 机器人学导论第三版课后习题答案解析

机器人学导论第三版课后习题答案解析

上传者: 2024-07-27 10:33:58上传 PDF文件 14.06MB 热度 20次

在上一节中,读者可能想知道为什么需要利用函数交换数据。原因是C#中的变量仅能从代码的本地作用域访问。给定的变量有一个作用域,访问该变量要通过这个作用域来实现。变量的作用域是一个重要的主题,好用一个示例加以说明。

下面的示例将演示变量在一个作用域中定义,但试图在另一个作用域中使用的情形。试一试:变量的作用域

(1)对Ch06Ex01中的Program.cs进行如下修改:


class Program {

  static void Write() {

    Console.WriteLine("myString = {0}", myString);

  }

  static void Main(string[] args) {

    string myString = "String defined in Main()";

    Write();

    Console.ReadKey();

  }

}

(2)编译代码,注意显示在任务列表中的错误和警告:

当前上下文中不存在名称“myString”【The name 'myString' does not exist in the current context】

变量“myString”已赋值,但其值从未使用过【The variable 'myString' is assigned but its value is never used】

示例的说明什么地方出错了?不能在Write()函数中访问在应用程序主体(Main()函数)中定义的变量myString。原因是变量是有作用域的,在这个作用域中,变量才是有效的。这个作用域包括定义变量的代码块和直接嵌套在其中的代码块。函数中的代码块与调用它们的代码块是不同的。在Write()中,没有定义myString,在Main()中定义的myString则超出了作用域——它只能在Main()中使用。

实际上,在Write()中可以有一个完全独立的变量myString,修改代码如下所示:


class Program {

  static void Write() {

    string myString = "String defined in Write()";

    Console.WriteLine("myString = {0}", myString);

  }

  static void Main(string[] args) {

    string myString = "String defined in Main()";

    Write();

    Console.ReadKey();

  }

}

想了解更多关于C#编程的知识?看看C#源码大全,这里有丰富的示例和详细的解释,助你更快掌握这门语言。如果你对C++也感兴趣,可以参考非常强大c#绘图类库源码或者C++破解工具。这些资源不仅适用于新手,也能满足进阶程序员的需求!

如果你还在为找不到好的C和C++资料发愁,不妨试试这些链接:C语言讲义C和C指针,以及C和C++代码精粹。你会发现编程世界其实没有那么复杂!

现在,回到我们的示例,仔细观察变量的作用域在实际应用中的表现,是不是有种豁然开朗的感觉呢?理解了这些概念,你就能更好地控制代码的执行,编写出更高效、更可靠的程序。学编程的乐趣就在于此,每一次小小的突破,都能让你在技术的海洋中遨游得更远!

用户评论