C# 教程 在线

2381C# 封装

C# 中 public 和 internal 修饰符的区别

一个是国际妓女,谁用都可以,就是 public,一个是不懂外语的,只能在国内做生意,就是 internal,只能在当前所在的工程里面引用。你建两个工程,建立一个引用关系,被引用的里面建两个类,就能区别了。用 VS 的话,你根本点不出来那个不懂外语的

2380C# 封装

  • (1) Pubilc :任何公有成员可以被外部的类访问。
  • (2) Private :只有同一个类中的函数可以访问它的私有成员。
  • (3) Protected :该类内部和继承类中可以访问。
  • (4) internal : 同一个程序集的对象可以访问。
  • (5) Protected internal :3 和 4 的并集,符合任意一条都可以访问。

范围比较:

private < internal/protected < protected internal < public

2379C# 封装

比如说:一个人A为父类,他的儿子B,妻子C,私生子D(注:D不在他家里)

如果我们给A的事情增加修饰符:

  • public事件,地球人都知道,全公开
  • protected事件,A,B,D知道(A和他的所有儿子知道,妻子C不知道)
  • private事件,只有A知道(隐私?心事?)
  • internal事件,A,B,C知道(A家里人都知道,私生子D不知道)
  • protected internal事件,A,B,C,D都知道,其它人不知道

2378C# 循环

同上,斐波那契数列的计算。

using System;
namespace HelloWorldApplication
{
    class HelloWorld
    {
        static int k = 140;// 输出斐波那契数列数量(测试上限为:140)  可更改
        
        decimal[] si = new decimal[k];    //存储计算值以节省时间
        decimal fib(int a){                //方法
            if(a <= 1) return a;
            if(si[a] != 0) return si[a]; 
            return si[a] = fib(a-1)+fib(a-2);
        }
        
        static void Main(string[] args)
        {
        HelloWorld c = new HelloWorld();
        for(int n = k-1;n >= 0;n--){        //倒序输出
            Console.WriteLine(c.fib(n));//调用方法fib
        }
            Console.ReadKey();
        }
    }
}

2377C# 循环

using System;

namespace ConsoleApplication
{
    class Fibonacci
    {
        static void Main(string[] args)
        {
            //打印出斐波那契数列的前50项
            double[] feiBos = new double[50];
            feiBos[0] = 1;
            feiBos[1] = 1;
            for (int i = 2; i < 50; i++)
            {
                feiBos[i] = feiBos[i - 1] + feiBos[i - 2];
            }
            // String.Join(分隔符, 需要打印的数组)
            Console.WriteLine("feiBo = [" + String.Join(",", feiBos) + "]");
            Console.WriteLine("feiBo数组的长度是{0}", feiBos.Length);
        }
    }
}