C#-读文件,结构和类区别,栈和堆区别

读文件File.ReadAllLines

//读取电脑中文本文档的内容,并将其中超过8个字的书名从第六个索引开始用省略号表示,+|作者
string path = @"G:\桌面\book.txt";
string[] text = File.ReadAllLines(path, Encoding.Default);//读取文件

for (int i = 0; i < text.Length ; i++)
{
    string[] str = text[i].Split(new char[] { ' ' },StringSplitOptions.RemoveEmptyEntries );//清除空格,放置在一个数组
    if (str[0].Length > 8)
    {
        Console.WriteLine(str[0].Substring(0, 6) + "……|" + str[1]);
    }
    else
    {
        Console.WriteLine(str[0] + @"|" + str[1]);
    }
}

结构和类代码举例

static void Main(string[] args)
{
    Person p1 = new Person();
    p1.Age = 20;
    p1.Gender = '男';

    Person p2 = new Person();
    p2 = p1;
    p2.Age = 100;
    p2.Gender = '女';

    Console.WriteLine("{0},{1}",p1.Age, p1.Gender);
    Console.WriteLine("{0},{1}",p2.Age,p2.Gender );
    Console.ReadKey();
}
public struct Person//为结构时,输出结果为20,男;为类时,输出结果为100,女;
{
    private string _name;
    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

    private char _gender;
    public char Gender
    {
        get { return _gender; }
        set { _gender = value; }
    }

    private int _age;
    public int Age
    {
        get { return _age; }
        set { _age = value; }
    }
}

结构体和类的区别

结构(struct)类(class)
栈、堆值类型的值在栈上引用类型栈上存地址,堆上存值
构造函数默认有一个无参的构造函数,在结构中在写一个有参数的构造函数,这时,结构上有两个构造函数,一个有参一个无参默认有一个无参的构造函数,这时,在类中写一个有参数的构造函数,默认的无参构造函数就没有了
构造函数中参数个数在结构中写构造函数所有字段都要写全在类中写构造函数参数列表中参数个数可以不确定
是否可为null值值类型不可为null值引用类型可为null值
举例分类int,long,float,char,bool,enum,structSystem.Object,string,class,interface,int[],string[]

栈和堆的区别

栈(stack)堆(heap)
分配内存空间栈是编译期间就分配好的内存空间,代码中必须对栈的大小有明确定义堆是程序运行期间动 态分配的内存空间,可以根据程序运行情况确定要分配的堆内存的大小
申请方式由系统自动分配。 例如,声明在函数中一个局部变量 int a; 系统自动在栈中为a开辟空间需要程序员自己申请,并指明大小
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值