迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

C# 中的字段与属性

作者:迹忆客 最近更新:2024/02/01 浏览次数:

本教程将解释 C# 类中字段和属性之间的区别。为了更好地说明这一点,你必须首先了解以下概念。


什么是类

类是数据成员的集合,使你能够通过充当对象的蓝图或模板来创建自定义类型。在一个类中,字段和属性的相似之处在于它们可以存储数据,但不同之处在于它们的使用方式。


什么是字段

field 将数据保存为变量。它可以公开,然后通过类访问,但最好的做法是限制和隐藏尽可能多的数据。通过确保人们可以访问数据的唯一方法是利用类的公共方法之一,这为你提供了更多控制并避免了意外错误。


什么是属性

属性公开字段。使用属性而不是字段直接提供了一个抽象级别,你可以在其中更改字段,同时不影响使用你的类的对象访问它们的外部方式。属性还允许你在设置字段值或确保数据有效之前进行计算。

例子:

using System;

namespace FieldProperty_Sample {
  class Program {
    static void Main(string[] args) {
      // Initialize a new Tutorial_Class
      Tutorial_Class tutorial = new Tutorial_Class();

      // Set the field values through its public property
      tutorial.Name = "Sample Tutorial";
      tutorial.Created_Date = new DateTime(2021, 12, 31);
      tutorial.Description = "Sample Description";

      // Print the class values to the console
      Console.WriteLine("Tutorial Name: " + tutorial.Name);
      Console.WriteLine("Created Date: " + tutorial.Created_Date.ToShortDateString());
      Console.WriteLine("Sample Description: " + tutorial.Description);

      Console.ReadLine();
    }

    public class Tutorial_Class {
      // These are the private fields that are only accessible by the class
      // The actual data is stored here and can be retrieved/set by the properties
      private string name;
      private DateTime created_date;

      // All of the items below are properties that have the power to get and set the field values
      public string Name {
        get { return name; }
        set { name = value; }
      }
      public DateTime Created_Date {
        get { return created_date; }
        set { created_date = value; }
      }

      // This is another kind of property, an AutoProperty
      // It acts the same as the original property but does not require you to declare the private
      // field The private field is automatically generated for you
      public string Description { get; set; }
    }
  }
}

在上面的示例中,我们有一个使用字段、属性和 AutoProperties 的示例类。初始化 Tutorial_Class 的实例后,我们使用类的公共属性设置值。你可以注意到,如果你尝试直接访问这些字段,你将收到错误 Program.Tutorial_Class.x is inaccessible due to its protection level。最后,我们将值打印到控制台以显示已进行更改。

输出:

Tutorial Name: Sample Tutorial
Created Date: 31/12/2021
Sample Description: Sample Description

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C# 中复制一个对象

发布时间:2024/02/01 浏览次数:120 分类:编程语言

有两种主要方法可用于在 C# 中创建对象的单独副本,MemberWiseClone()函数和参数化构造函数方法。在 C# 中使用 MemberWiseClone() 方法复制对象

在 C# 中获取组合框的选定值

发布时间:2024/01/20 浏览次数:156 分类:编程语言

本教程展示了如何在 C# 中获取 ComboBox 的选定值。在本教程中,你将学习在 C# 中获取 ComboBox 的选定文本和值的不同方法。获取 ComboBox 控件的选定值的最常用方法是使用 C# 在按钮单击事件中获取

在 C# 中创建一个 UDP 服务器

发布时间:2024/01/20 浏览次数:161 分类:编程语言

在本文中,我们将学习如何在 C# 中创建 UDP 服务器。本文将展示如何在 C# 中创建一个简单的 UDP 服务器。在 C# 中创建一个 UDP 服务器

C# 中的 LINQ 分组

发布时间:2024/01/20 浏览次数:55 分类:编程语言

LINQ 中的 group by 用于按 C# 中的某个公共值对对象序列进行分组 C# 中的 LINQ 分组 LINQ 将类似 SQL 的查询功能与 C# 中的数据结构集成在一起。

使用 C# 在 LINQ 查询中按多列分组

发布时间:2024/01/20 浏览次数:169 分类:编程语言

这是一篇关于 LINQ 查询的使用以及我们如何使用 LINQ 查询按列分组的文章。本文简要介绍了使用 C# 进行的 LINQ 查询。此外,它还讨论了如何使用 LINQ 查询按多列对结果进行分组。

在 C# 中捕获多个异常

发布时间:2024/01/20 浏览次数:137 分类:编程语言

有两种主要方法可用于捕获 C# 中的多个异常,即 Exception 类和 catch 子句中的 if 语句。使用 C# 中的 Exception 类捕获多个异常 Exception 类用于表示 C# 中的一般异常。

C# 中为无效参数或参数引发的异常类型

发布时间:2024/01/20 浏览次数:78 分类:编程语言

本教程将教你如何在 C# 中为无效参数或参数抛出不同类型的异常。异常提供有关 C# 程序中的运行时错误或预期不会发生或违反系统/应用程序约束的条件的信息。在本教程中,你将学习与无效参

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便