C# 按位运算符 构造方法与结构体的区别

一.按位异或和逻辑异或

1.按位运算符  与或非 & | ^

 ^ 相同则为1 不同则为0

 2.逻辑运算符  与或非 && || !

&&  同真则为真 一假则为假

||   一真则为真 同假则为假

!  取反

二.函数

1.普通方法(函数)

2.构造方法(函数)

 class Book
    {
        public  string bookName;
        public int bookPage;
        public float bookPrice;
        public DateTime bookTime;
        public string bookAuthor;


        //构造函数
        // 1.方法名和类名相同
        // 2.构造函数没有任何返回值,及时是void也不行
        // 3.构造函数 可以是无参构造函数 也可以是有参构造函数
        // 4.构造函数 当出现有参构造函数时,需要手动添加无参构造函数 
        //   当没有出现有参构造函数时,则默认为系统自动添加了无参构造函数




        //有参数的构造方法   
        public Book(string name)
        {
            bookName = name;
        }

        public Book(string name ,int page)
        {
            bookName = name;
            bookPage = page;
        }

        //无参数的构造方法
        public Book()
        {

        }
    }
——————————————————————————————————————————————————————————————————————————
 class Program
    {
        static void Main(string[] args)
        {
            Book book1 = new Book();
            Book book2 = new Book("十万个为什么?");
            Book book3 = new Book("钢铁是怎么炼成的?", 19);

            Console.WriteLine(book1.bookName);
            Console.WriteLine(book1.bookPage);
            Console.WriteLine(book2.bookName);
            Console.WriteLine(book2.bookPage);
            Console.WriteLine(book3.bookName);
            Console.WriteLine(book3.bookPage);

            Console.ReadKey();
        }
    }

C#构造函数(超详解,建议收藏!!!)_liu991029的博客-优快云博客_c#构造函数什么是构造函数?构造函数的作用?构造函数的应用?构造函数时应注意事项?实例构造函数?静态构造函数?私有构造函数?https://blog.youkuaiyun.com/liu991029/article/details/106550226?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163402314916780271518466%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163402314916780271518466&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-106550226.pc_search_ecpm_flag&utm_term=C%23%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0&spm=1018.2226.3001.4187

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Day02_构造函数
{
    class Program
    {
        static void Main(string[] args)
        {
            Hero h = new Hero();
            Console.WriteLine(Convert.ToString(h.Hp));
            Console.WriteLine(Convert.ToString(h.Mp));
            Console.WriteLine(Convert.ToString(h.AttckValue));
        }
    }


    class Hero
    {
        private int hp;  //字段
        int mp;
        int attckValue;

        public int Hp  // 属性
        {
            get { return hp; }
            set { hp = value; }
        }

        public int Mp
        {
            get { return mp; }
            set { mp = value; }
        }

        public int AttckValue
        {
            get { return attckValue; }
            set { attckValue = value; }
        }

        /// <summary>
        /// 构造方法
        /// </summary>
        public Hero()
        {
            Hp = 1000;
            Mp = 200;
            AttckValue = 500;
        }
    }
    
}

 3.析构函数

析构函数是用来执行清除操作的特殊方法,如同构造函数可以自动进行对象属性的初始化一样,C#也会自动调用一 个函数注销该对象并进行资源的释放与清理工作。

语法:~<类名>()

{
//析构函数主体

}

特性:

   (1)与类名相同,前加一个“~”

   (2)它是无类型,无参数的。因为它只需释放资源,不用返回任何调用结果。

   (3)一个类只能有一个析构函数,不能重载【构造函数可以重载,也可以有多个,两者功能截然不同,一个赋予初值,一个资源释放】
————————————————
版权声明:本文为优快云博主「TaoiR」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_40245756/article/details/84800243

4.结构体和构造函数的区别

①struct 结构函数

 是值类型 不需要初始化即可赋值 

结构体内的属性或者字段不能进行赋值

②public 构造函数 

是引用类型 需要对其初始化 才能对其中的成员变量进行赋值

【c#】结构体和类的比较、构造函数和析构函数的使用区别_TaoiR的浅水坑-优快云博客目录 结构体:c#的结构体特点:引入:c#的构造函数和析构函数:析构函数:类 vs 结构类与结构体的选择:结构和类的适用场合分析:结构体:在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。例://声明一个 Book 结构:struct Books{ public s...https://blog.youkuaiyun.com/qq_40245756/article/details/84800243?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163402833316780357265566%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163402833316780357265566&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-1-84800243.pc_search_ecpm_flag&utm_term=C%23%E7%BB%93%E6%9E%84%E4%BD%93%E5%92%8C%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0%E7%9A%84%E5%8C%BA%E5%88%AB&spm=1018.2226.3001.4187类的对象存储在堆中,而结构存储在栈中

三.lambda表达式

(参数列表)=>{表达式}

C#中的Lambda表达式_不积跬步无以至千里-优快云博客_拉姆达表达式c#Lambda表达式其实质上是用来代替匿名方法的。 因此一个Lambda表达式也是定义了一个方法,只是形式上比匿名方法简单。 只要有委托类型的地方就可以使用Lambda表达式。 Lambda运算符:=&gt; 匿名方法:Func&lt;int, int, int&gt; plus = delegate(int arg1, int arg2){ return arg1 + a...https://blog.youkuaiyun.com/lym940928/article/details/80236053?ops_request_misc=&request_id=&biz_id=102&utm_term=C?ops_request_misc=&request_id=&biz_id=102&utm_term=C&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-80236053.pc_search_ecpm_flag&spm=1018.2226.3001.4187#lambda%E8%A1%A8%E8%BE%BE%E5%BC%8F&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-80236053.pc_search_ecpm_flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值