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 ,如需转载请自行联系原作者



相关文章
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
464 8
|
存储 C# 索引
C# 一分钟浅谈:数组与集合类的基本操作
【9月更文挑战第1天】本文详细介绍了C#中数组和集合类的基本操作,包括创建、访问、遍历及常见问题的解决方法。数组适用于固定长度的数据存储,而集合类如`List<T>`则提供了动态扩展的能力。文章通过示例代码展示了如何处理索引越界、数组长度不可变及集合容量不足等问题,并提供了解决方案。掌握这些基础知识可使程序更加高效和清晰。
306 6
|
Java 物联网 编译器
C#一分钟浅谈:.NET Core 与 .NET 5 区别
本文对比了 .NET Core 和 .NET 5,从历史背景、主要区别、常见问题及易错点等方面进行了详细分析。.NET Core 侧重跨平台支持和高性能,而 .NET 5 在此基础上统一了 .NET 生态系统,增加了更多新特性和优化。开发者可根据具体需求选择合适的版本。
612 7
|
网络协议 网络性能优化 C#
C# 一分钟浅谈:UDP 与 TCP 协议区别
【10月更文挑战第8天】在网络编程中,传输层协议的选择对应用程序的性能和可靠性至关重要。本文介绍了 TCP 和 UDP 两种常用协议的基础概念、区别及应用场景,并通过 C# 代码示例详细说明了如何处理常见的问题和易错点。TCP 适用于需要可靠传输和顺序保证的场景,而 UDP 适用于对延迟敏感且可以容忍一定数据丢失的实时应用。
420 1
|
C# 开发者
【捞底干货】C#中equals和==运算符的区别
【捞底干货】C#中equals和==运算符的区别
609 1
|
开发框架 安全 .NET
C#面:Server.UrlEncode、HttpUtility.UrlDecode的区别
通过上述详细的解释和实例分析,相信大家对 `Server.UrlEncode` 和 `HttpUtility.UrlDecode` 的区别有了更深刻的理解,并能在实际开发中灵活运用。
404 0
|
C# 索引
C# 一分钟浅谈:接口与抽象类的区别及使用
【9月更文挑战第2天】本文详细对比了面向对象编程中接口与抽象类的概念及区别。接口定义了行为规范,强制实现类提供具体实现;抽象类则既能定义抽象方法也能提供具体实现。文章通过具体示例介绍了如何使用接口和抽象类,并探讨了其实现方式、继承限制及实例化差异。最后总结了选择接口或抽象类应基于具体设计需求。掌握这两者有助于编写高质量的面向对象程序。
901 5
|
C# 数据安全/隐私保护
C# 一分钟浅谈:类与对象的概念理解
【9月更文挑战第2天】本文从零开始详细介绍了C#中的类与对象概念。类作为一种自定义数据类型,定义了对象的属性和方法;对象则是类的实例,拥有独立的状态。通过具体代码示例,如定义 `Person` 类及其实例化过程,帮助读者更好地理解和应用这两个核心概念。此外,还总结了常见的问题及解决方法,为编写高质量的面向对象程序奠定基础。
334 2
|
Java 程序员 C#
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
177 0
|
6月前
|
XML 前端开发 C#
C#编程实践:解析HTML文档并执行元素匹配
通过上述步骤,可以在C#中有效地解析HTML文档并执行元素匹配。HtmlAgilityPack提供了一个强大而灵活的工具集,可以处理各种HTML解析任务。
320 19