C#类和结构区别的总结(一)

简介:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = new int();
            string a = " ";
            Console.WriteLine("{0}{1}",a,i);
            int[] b = new int[10];
            Console.WriteLine(b[3]);
            structOne soInstanceOne = new structOne ();
            Console.WriteLine("soInstanceOne:{0}:{1}", soInstanceOne.filed1, soInstanceOne.filed2);
            structOne[] soArrayOne = new structOne[10];
            Console.WriteLine("soArrayOne[]:{0}:{1}",soArrayOne[2].filed1,soArrayOne[2].filed2 );
            soArrayOne[0].people = new string[4];
            soArrayOne[0].people[0] = "男";
            soArrayOne[0].people[1] = "18";
            soArrayOne[0].people[2] = "Jack";
            foreach (string peopleJack in soArrayOne[0].people)
            {
                Console.WriteLine(peopleJack);
            }
            soInstanceOne.people = new string[3];
            soInstanceOne.people[0] = "女";
            soInstanceOne.people[1] = "17";
            soInstanceOne.people[2] = "Alice";
            foreach (string peopleAlice in soInstanceOne.people)
            {
                Console.WriteLine(peopleAlice);
            }

            Console.WriteLine(structOne.filed4);
            soInstanceOne.StructOneMethodOne();

            classOne Test = new classOne();
            Console.WriteLine ("Test:");
            Console.WriteLine ("{0}:{1}:{2}",Test.cFiled1,Test.cFiled2 ,Test.cFiled3 ); //打印0::false

            Console .ReadLine ();
        }
        struct structOne
        {
            public int filed1; //执行这个语句structOne soInstanceOne = new structOne()之后, filed1的值初始化为0
            public string filed2; //执行这个语句structOne soInstanceOne = new structOne()之后, filed2的值初始化为null
            public string[] people;
            //public sting[] people = { "男", "17", "Jack" };//结构中不能有实例字段初始值设定项,意思就是不能为实例字段赋值
            //private int filed3 = 3;  //不能有实例字段初始值设定项,意思就是不能为实例字段赋值
            public  static int filed4 = 4; //结构中可以为静态字段赋值
            private const string conA = "conA"; //结构中可以为常数字段赋值,因为常数属于Static
            private static string strName = "John"; //结构中可以为静态字段赋值
            public static string[] anotherPeople = { "男", "17", "Tom" }; //结构中可以为静态数组赋值
            public bool bResult;
            public void StructOneMethodOne()
            {
                Console.WriteLine(conA);
                Console.WriteLine(strName);
                Console.WriteLine(bResult);
            }
        }
        class classOne
        {
            public int cFiled1;
            public string cFiled2;
            public bool cFiled3;
        }
    }
}

 













本文转自terryli51CTO博客,原文链接:http://blog.51cto.com/terryli/520606 ,如需转载请自行联系原作者



相关文章
|
6天前
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
|
1月前
|
存储 C# 索引
C# 一分钟浅谈:数组与集合类的基本操作
【9月更文挑战第1天】本文详细介绍了C#中数组和集合类的基本操作,包括创建、访问、遍历及常见问题的解决方法。数组适用于固定长度的数据存储,而集合类如`List<T>`则提供了动态扩展的能力。文章通过示例代码展示了如何处理索引越界、数组长度不可变及集合容量不足等问题,并提供了解决方案。掌握这些基础知识可使程序更加高效和清晰。
64 2
|
5天前
|
C# 开发者
【捞底干货】C#中equals和==运算符的区别
【捞底干货】C#中equals和==运算符的区别
10 1
|
3天前
|
Java 程序员 C#
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
8 0
|
1月前
|
C# 索引
C# 一分钟浅谈:接口与抽象类的区别及使用
【9月更文挑战第2天】本文详细对比了面向对象编程中接口与抽象类的概念及区别。接口定义了行为规范,强制实现类提供具体实现;抽象类则既能定义抽象方法也能提供具体实现。文章通过具体示例介绍了如何使用接口和抽象类,并探讨了其实现方式、继承限制及实例化差异。最后总结了选择接口或抽象类应基于具体设计需求。掌握这两者有助于编写高质量的面向对象程序。
76 5
|
1月前
|
C# 数据安全/隐私保护
C# 一分钟浅谈:类与对象的概念理解
【9月更文挑战第2天】本文从零开始详细介绍了C#中的类与对象概念。类作为一种自定义数据类型,定义了对象的属性和方法;对象则是类的实例,拥有独立的状态。通过具体代码示例,如定义 `Person` 类及其实例化过程,帮助读者更好地理解和应用这两个核心概念。此外,还总结了常见的问题及解决方法,为编写高质量的面向对象程序奠定基础。
18 2
|
2月前
|
Java C# 索引
C# 面向对象编程(一)——类
C# 面向对象编程(一)——类
30 0
|
2月前
|
开发框架 .NET 编译器
C# 中的记录(record)类型和类(class)类型对比总结
C# 中的记录(record)类型和类(class)类型对比总结
|
5月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
172 3
|
5月前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
185 3