1.类型
引用类型:
①:对象类型: object a; 这个类型可以被分配任何其他类型的值
②:动态类型:dynamic d = 20;这个可以被分配任何类型值,变量在运行的时候实时检查
(辨别:对象类型中这里a是算object类型,动态类型中d算int类型)
0x:十六进制
0:八进制
类型转换:用 Convert.To__等函数进行转换
例:string a = "2.23";
double i ;
i = Convert.ToDouble(a);
2.input,output
输入:Console.ReadLine()
输出:Console.WriteLine()
3.封装<access specifier>
public:整个解决方案都能访问
internal:仅能在一个文件内访问
private:仅自己的类中可以调用
protected:自己的类与子类可以调用
4.方法(别的语言里面的函数)
每个c#至少有一个main函数
<access specifier> <return type> <method name>(parameter list)
public,private等 int,void等 自己起名字 参数
{
method body;
}
5.参数
①:public void swap(int a, int b){...}(值调换函数)
int a =100,b =200;
n.swap(a,b);
使用之后不会改变变量的具体值。
②:public void swap(ref int a,ref int b){...}(值调换函数,这里ref类似于指针)
int a =100,b =200;
n.swap(a,b);
使用之后改变了变量的具体值。
6.数组
(double,int )[ ] name = new (double,int)[ ]{....};
string中有许多函数,可以用 String. 或 字符串名称. 调用
7.结构体:
using System;
using System.Text;
struct Books
{
private string title;
private string author;
private string subject;
private int book_id;
public void setValues(string t, string a, string s, int id)
{
title = t;
author = a;
subject = s;
book_id =id;
}
public void display()
{
Console.WriteLine("Title : {0}", title);
Console.WriteLine("Author : {0}", author);
Console.WriteLine("Subject : {0}", subject);
Console.WriteLine("Book_id :{0}", book_id);
}
};
8.枚举enum
using System;
namespace EnumApplication
{
class EnumProgram
{
enum Days {
Mon=71,
tue=61,
Wed=51,
thu=41,
Fri=51,
Sat=61,
Sun=71
};
static void Main(string[] args)
{
int WeekdayStart = (int)Days.Mon;
int WeekdayEnd = (int)Days.Fri;
Console.WriteLine("Monday: {0}", WeekdayStart);
Console.WriteLine("Friday: {0}", WeekdayEnd);
Console.ReadKey();
}
}
}
输出了71,51
9.类
一、类中的三种成员
①:成员函数和封装 :<access specifier> <data type> variable;
<access specifier> <return type> method1 (parameter)
②:构造函数:名称和类名相同,无返回类型,在创建新对象时执行
例: class Line{
public Line(){
}
}
③:析构函数:结束程序时运行
例: class Line{
~Line(){
}
}
二、static,静态变量
有点像你无论用这个类创建多少个实例,都公用一个变量,看下代码运行区别
using System; namespace StaticVarApplication { class StaticVar { public static int num; public int num1; public void count() { num++; num1++; } public int getNum() { return num; } public int getNum1() { return num1; } } class StaticTester { static void Main(string[] args) { StaticVar s1 = new StaticVar(); StaticVar s2 = new StaticVar(); s1.count(); s1.count(); s1.count(); s2.count(); s2.count(); s2.count(); Console.WriteLine("s1 的变量 num: {0}", s1.getNum()); Console.WriteLine("s2 的变量 num: {0}", s2.getNum()); Console.WriteLine("s2 的变量 num: {0}", s2.getNum1()); Console.ReadKey(); } } }
三、继承:C# 继承 | 菜鸟教程 (runoob.com)
四、多态性
①:静态多态性:同一个类中同一函数不同情况下的应用
using System; namespace PolymorphismApplication { class Printdata { void print(int i) { Console.WriteLine("输出整型: {0}", i ); } void print(double f) { Console.WriteLine("输出浮点型: {0}" , f); } void print(string s) { Console.WriteLine("输出字符串: {0}", s); } static void Main(string[] args) { Printdata p = new Printdata(); // 调用 print 来打印整数 p.print(1); // 调用 print 来打印浮点数 p.print(1.23); // 调用 print 来打印字符串 p.print("Hello Runoob"); Console.ReadKey(); } } }
②:动态多态性:C#基础之——动态多态性_qq_24693623的博客-CSDN博客