面向零基础新手的 C# 基础知识 16

16

同样的,这节课仍然是理解方面的问题。

这里,我稍微把他浓缩为一句话:

大括号内即可用!

!记住这句话,本节课大部分内容就刻印掌握了。

16.1 变量范围

大家都知道,这样的代码:

 for (int i = 0; i < 10; i++)
{
Console.WriteLine("");
}

Console.WriteLine(i);

肯定是通不过的。为什么?因为i是作为变量被定义的,只在循环内部起作用,除了循环,就被垃圾回收了。也就是,在循环内部(大括号内),他是可用的。

同样的,这样的代码也是无法编译通过的:

static void Main(string[] args)
{
string j = "";
for (int i = 0; i < 10; i++)
{
j = i.ToString();
Console.WriteLine(i);
}
Console.WriteLine("J:{0}",j);
Console.ReadLine();
}

class Car

{

public static void error()

{

Console.WriteLine(j);

}

}

显然,这样也是通不过编译的,因为j只能在Main内范围(大括号内)访问。

我们定义一个私有字段:

private static string k = "12450"

那么,实验过后,k可以在类方法中被访问——因为他是在progam类中被定义的。

从这里,我们可以看到,只要变量位于他父级定义内,就是可用的。即:大括号内即可用。

16.2 辅助功能修饰符——private与pubilc

先看一下字面意思:private意思是“私有”,与之相对的public是“公有”。

“大括号内即可用”法则在这里仍然行得通。

public类是最高权限访问的,任何成员都能使用他,不在讨论范围内。

而private顾名思义,就是私有,只在定义的类、方法、函数、构造函数等等内起作用。比如:

{

Car myCar = new Car();
myCar.DoSomething();

……

}

class Car
{
public void DoSomething()
{
Console.WriteLine(helperMethod());
}

private string helperMethod()
{
return "Hello world!";
}

在输入过程中,helperMethod是不可见的(私有),因为他设置为只在Car内可用。

而为什么结果却能输出呢?因为在Car类中,Dosomething();是可以访问同级中的函数的。

这个又有什么用呢?当然是方便你自己了!你想啊,你下面写了一堆代码,全部是public,到时候一打.自己要干什么都不知道了。另外,这还能防止别人乱动你的private类。

好了。据说课程过半了。休息一下~

futa: