具有内部 Clear() 方法的 C# 结构

标签 c# methods structure internals

我想有一个简单的结构来存储信息。我的问题是创建清除存储值的内部方法。

   public struct GraphValues
   {
        public int min, max, ...;

        public GraphValues(int min, int max, ...)
        {
            this.min = min;
            this.max = max;
            ...
        }

        public static void Clear(this GraphValues values)
        {
            values.min.Equals(null);
            values.max.Equals(null);
            ...
        }
    }

所以在这个结构中写入新值就可以了,
GraphValues val = new GraphValues()
val.max = 12;
val.min = 1;

但我想将所有结构值设置为空。调用类似的东西
val.Clear();

任何的想法?
纳克斯

最佳答案

  • 结构不应该是可变的。将您的类型改为类。
  • 要允许空值,请使用可为空的类型。
  • 使用属性而不是公共(public)字段。

  • 固定代码:
    public class GraphValues
    {
         public int? Min { get; set; } 
         public int? Max { get; set; }
         // etc...
    
         public void Clear()
         {
             Min = null;
             Max = null;
             // etc...
         }
    }
    

    我还建议您考虑是否最好创建一个新对象而不是将现有对象上的字段设置为 null:
    //val.Clear();           // Don't do this.
    val = new GraphValues(); // Just create a new object.
    

    关于具有内部 Clear() 方法的 C# 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7485257/

    相关文章:

    c# - DbCommand 和参数化 SQL,ORACLE 与 SQL Server

    c# - 为什么要在方法足够的地方使用事件?

    c - 我需要帮助来理解这段关于结构和指针的代码

    c++ - vector 结构

    C#,WinForms 中的双缓冲区?

    c# - DropDownListFor 默认从模型中选择的项目

    c# - Entity Framework 文件未嵌套在 EDMX 文件下

    java - 我可以在每个对象上使用 contains 方法吗?

    python - Bottle 框架和 OOP,使用方法而不是函数

    android - 在 android studio 中安排项目的正确方法是什么?