C# 将库 Class 扩展到程序的其余部分
C# Extend a Library Class to Rest of Program
我有一个 public 库 class,其中包含我的程序运行所需的所有全局变量。它的结构如下:
public static class Library
{
public static string globalString = "";
}
在其他语言中,可以使用 extends
将 class 扩展为另一个 class,因此全局变量不需要 'Library' 前缀,但在C# 它的工作方式有点不同。我尝试在我想扩展到的 class 中的冒号后添加它(像这样:public partial class Login : Form, Library
),我被告知 "Classes cannot have multiple base classes"。显然,可以使用接口来扩展 classes,但我不完全理解它的工作原理或实现方式。
如果您使用的是较新版本的 C# 之一,则可以导入静态 class,这样您就可以在不完全限定其名称的情况下使用其成员。在 C# 中,语法为...
using static RootNamespace.Library;
// Provided the class Library is in a namespace called RootNamespace
以上行将放在代码文件的顶部,在这种情况下,我假设它在 Login.cs 中。这将是 using System;
等其他使用语句之一,您将能够在登录 class.
中使用 Library
的 public 静态成员
我建议使用全局变量以外的东西,例如属性,这样您就可以封装一些逻辑并通过 运行 在更改这些值之前进行一些验证来防止无效状态。
我有一个 public 库 class,其中包含我的程序运行所需的所有全局变量。它的结构如下:
public static class Library
{
public static string globalString = "";
}
在其他语言中,可以使用 extends
将 class 扩展为另一个 class,因此全局变量不需要 'Library' 前缀,但在C# 它的工作方式有点不同。我尝试在我想扩展到的 class 中的冒号后添加它(像这样:public partial class Login : Form, Library
),我被告知 "Classes cannot have multiple base classes"。显然,可以使用接口来扩展 classes,但我不完全理解它的工作原理或实现方式。
如果您使用的是较新版本的 C# 之一,则可以导入静态 class,这样您就可以在不完全限定其名称的情况下使用其成员。在 C# 中,语法为...
using static RootNamespace.Library;
// Provided the class Library is in a namespace called RootNamespace
以上行将放在代码文件的顶部,在这种情况下,我假设它在 Login.cs 中。这将是 using System;
等其他使用语句之一,您将能够在登录 class.
Library
的 public 静态成员
我建议使用全局变量以外的东西,例如属性,这样您就可以封装一些逻辑并通过 运行 在更改这些值之前进行一些验证来防止无效状态。