X++ 静态类成员

注释

社区兴趣团体现已从 Yammer 迁移到Microsoft Viva Engage。 若要加入 Viva Engage 社区并参与最新讨论,请填写 “请求访问财务和运营 Viva Engage 社区 ”表单,然后选择要加入的社区。

本文介绍 X++ 中的静态类成员。 一般情况下,静态方法适用于以下情况:

  • 该方法没有理由访问类中声明的成员变量。
  • 该方法没有理由调用类的任何实例(非静态)方法。

使用静态关键字声明 静态 类成员。 静态关键字指示系统仅创建方法的一个实例,而不考虑类的实例数。 此实例在整个会话中使用。

静态方法

本部分介绍一种方案,其中使用软件密钥类型来帮助防止盗版。 软件密钥的每个实例都可以有自己的唯一值。 由于所有软件密钥必须符合软件密钥设计规则,因此测试软件密钥符合性的所有软件密钥的逻辑是相同的。 因此,包含符合性验证逻辑的方法应该是静态的。

下面是使用 静态 关键字声明的方法的示例。

public class SoftwareKey
{
    static public boolean validateSoftwareKey(str _softwareKeyString)
    {
        // Your code here.
        return false;
    }
}

在以下示例中,在对类调用静态方法之前,无需构造 SoftwareKey 类的实例。 如果要调用静态 validateSoftwareKey 方法,语法以包含该方法的类的名称开头。 一对冒号(::)用于将类名连接到静态方法名称。

boolean yourBool = SoftwareKey::validateSoftwareKey(yourSoftwareKeyString);

静态字段

静态字段是使用 静态 关键字声明的变量。 从概念上讲,它们适用于类,不适用于类的实例。

静态构造函数

在对类进行任何静态或实例调用之前,可以保证静态构造函数运行。 静态构造函数的执行相对于用户的会话。 静态构造函数具有以下语法。

static void TypeNew()

你从不显式调用静态构造函数。 编译器将生成代码,以确保在类上的任何其他方法之前只调用构造函数一次。 静态构造函数用于初始化任何静态数据或执行必须只执行一次的特定作。 无法为静态构造函数提供任何参数,并且必须将其标记为 静态

下面的代码示例演示如何使用静态构造函数创建单一实例。

public class Singleton
{
    private static Singleton instance;

    private void new()
    {
    }

    static void TypeNew()
    {
        instance = new Singleton();
    }

    public static Singleton Instance()
    {
        return Singleton::instance;
    }
}

单一实例保证只调用类的一个实例。 以下示例演示如何实例化单一实例。

Singleton i = Singleton::Instance();

静态方法

静态方法(也称为 类方法)属于类,并使用关键字 静态创建。 在使用静态方法之前,无需实例化对象。 静态方法通常用于处理存储在表中的数据。 成员变量不能用于静态方法。 使用以下语法调用静态方法。

ClassName::methodName();

静态和实例方法

方法上的访问器关键字永远不会限制同一类中的两个方法之间的调用,无论哪种方法是静态的还是非静态的。 在静态方法中,即使使用专用修饰符修饰了新的构造函数方法,对构造函数方法的调用也是有效的。 这些调用的语法要求使用 关键字。 静态方法中的代码必须构造其自己的类的实例对象,然后才能对类调用任何实例方法。