学习路上遇到的坑记录一下,俗话说在哪里跌倒就在哪里躺下,所以还是有必要记录下我躺下的坐标.
数据结构中增加了
Bool类型,decimal类型,sbyte类型,
@逐字字符串 类似于/转义字符 @转义字符的范围是一排;
85 /* 十进制 */
0213 /* 八进制 */
0x4b /* 十六进制 */
30 /* int */
30u /* 无符号 int */
30l /* long */
30ul /* 无符号 long */
Console.writeline(“ssadawd{0}”,变量);
Writeline函数里面占位符的使用.
private double length;私有成员变量,只有同一个类的函数才能访问,类的实例不能访问
Internal 访问说明符允许一个类将其成员变量和成员函数暴露给当前程序中的其他函数和对象。
C# 提供了一个特殊的数据类型,nullable 类型(可空类型)
单问号(?)用于对 int,double,bool 等无法直接赋值为 null 的数据类型进行 null 的赋值
num3 = num1 ?? 5.34;
双问号(??):如果第一个操作数的值为 null,则运算符返回第二个操作数的值,否则返回第一个操作数的值。
数组
double[] balance = new double[10];
申明数组,用到new关键字
double[] balance = { 2340.0, 4523.69, 3421.0};
int [] marks = new int[5] { 99, 98, 92, 97, 95};
int [] marks = new int[] { 99, 98, 92, 97, 95};
初始化数组.
int[] fibarray = new int[] { 0, 1, 1, 2, 3, 5, 8, 13 };
foreach (int element in fibarray)
{
System.Console.WriteLine(element);
}
element 变量只可在循环内使用,遍历fibarray数组中所有的值并在每次循环中赋值给element .
C# 支持多维数组。多维数组最简单的形式是二维数组。 | |
C# 支持交错数组,即数组的数组。 | |
您可以通过指定不带索引的数组名称来给函数传递一个指向数组的指针。 | |
这通常用于传递未知数量的参数给函数。 | |
在 System 命名空间中定义,是所有数组的基类,并提供了各种用于数组的属性和方法。 |
封装
- public:所有对象都可以访问;
- private:对象本身在对象内部可以访问;
- protected:只有该类对象及其子类对象可以访问
- internal:同一个程序集的对象可以访问;
- protected internal:访问限于当前程序集或派生自包含类的类型。
Convert.ToDouble()函数 //将字符类型的数字转换成双精度数字类型
采用数字输入可以用 Convert.ToDouble(Console.ReadLine())这样的形式
number = Convert.ToInt32(Console.ReadLine());//与下面的效果一样
number = System.Int32.Parse(Console.ReadLine());
在 C# 中,使用 ref 关键字声明引用参数
Int function(ref int x,ref int y); 这样子去传递参数类似于c里面的传递指针或者地址,在调用函数里面可以更改上层函数内部变量的值.
而普通的按值传递参数 则会在栈上新建一片内存用于存储调用函数内部的变量,在调用函数内部操作的数值不影响上层函数内部的变量值.
C#中的输出函数.
Int function(int x,int y,out num);
Out关键字,外部调用时,丢num变量进去,函数里面对num进行赋值,也能更改num变量的值,函数参数中可以多个out关键词修饰的参数;
堆:内存中的动态空间
栈:内存中的固定空间.实例化对象时存放
值类型和引用类型的区别:
新建一个对象 并用另一个对象初始化时,两个对象指向的是同一内存区域,我们称为引用类型(修改其中一个对象,令一个对象也会变化)
字符串
Static关键字 修饰的对象存在于静态变量存储区,在对象实例化之前已经存在.
Csharp不能多重继承? 意思是C#中所有的类都是八代单传咯~
后来看了下可以用接口类来实现多重继承,例子给出的是继承一个普通类and一个interface类,疑问在这里,可以继承多个interface类么?