命名空间和结构体

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using x类和方法_19_4_9;

namespace 命名空间
{
    class Program
    {
        static void Main(string[] args)
        {
            //namespace开头的是命名空间,是组织类的,逻辑分组,有条理的结构
            //在不同的命名空间中互相引用
            //步骤:1.在现有的命名空间上添加引用(解决方案资源管理器右键命名空间)
            //2.用using命名打开所引用的命名空间
            //3.引用的格式:命名空间.类----使得不同的命名空间里,有相同名字的类
            x类和方法_19_4_9.stu a = new x类和方法_19_4_9.stu();
            a.print();


            //停止看结果
            Console.ReadLine();
        }
    }
}
复制代码

 结构体

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 结构体
{
    class Program
    {
        

            //结构体与类一样,是独立的模块,放在主方法的外部--上面
        //(1)结构体的关键字是struct
        struct  stu
        {
            //(2)由于结构体没有封装性,字段一般为公有的
            //学号
            public  string num;

            //快捷键:prop+tab两次:快捷键生成属性
            public string Num //公共的属性
            {
                get//读取
            {
                return num;//读取,利用return语句返回该字段的值
            }
                set //写入
                {
                    num = value;//写入,value是一个关键字,表示一个值
                }
            }
            
            //姓名
            private string name;
            public string Name
            {
                get
                {
                    return this.name;//读取,利用return语句返回该字段的值
                }
                set
                {
                    this.name = value;//写入,value是一个关键字,表示一个值
                }
            }
            //属性的第一好处就是封装之后在外面能够对单个字段进行读写,第二个好处就是可以加约束
            //两门课
            private double sql;
            public double Sql
            {
                get
                {
                    return sql;//读取,利用return语句返回该字段的值
                }
                set
                {
                    //约束一般是对set部分写入
                    if (value >= 0 && value <= 100)
                    {
                        sql = value;
                    }
                    else 
                    {
                        sql = 0;//非法成绩-------不在范围内的成绩,给0
                    }
                   
                }
            }
            private double oracle;
            public double Oracle
            {
                get
                {
                    return oracle;//读取,利用return语句返回该字段的值
                }
                set
                {
                    //约束一般是对set部分写入
                    if (value >= 0 && value <= 100)
                    {
                        oracle = value;
                    }
                    else
                    {
                        oracle = 0;//非法成绩-------不在范围内的成绩,给0
                    }

                }
            }
            //总分
            private double sum;
            //平均分
            private double ave;

            //特定功能--方法
            //输出
            public void print()
            {
                Console.WriteLine("\n学号:{0}", num);
                Console.WriteLine("姓名:{0}", name);
                Console.WriteLine("SQL:{0}", sql);
                Console.WriteLine("ORACLE:{0}", oracle);
                Console.WriteLine("总分:{0}", sum);
                Console.WriteLine("平均分:{0}", ave);
            }

            //(3)结构体没有无参数构造方法
            //(4)如写有参数构造方法,则需完全赋值
            public stu(string num, string name, double sql, double oracle)
            {
                //num = num;系统认为是:形参num赋值给了形参num
                //希望形参和属性同名--this指针--指向类本身的
                num = num;
                name = name;
                sql = sql;
                this.oracle = oracle;
                sum = sql + oracle;
                ave = sum / 2;
            }

        }


        static void Main(string[] args)
        {
            //定义结构体变量并操作
            stu a = new stu("X170401", "Rose", 87, 85);
            a.print();      

            //程序等待
            Console.ReadLine();
        }

        
    }
}
复制代码

 

posted @   困到很想醒  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示