Tag:

为类实例提供变量的名称

如何为类实例提供现有变量的名称。 我想这个string hex = “BF43F”; Zeugh hex = new Zeugh(); string hex = “BF43F”; Zeugh hex = new Zeugh(); 但它错了。 我想创建一个具有Zeugh类属性的对象BF43F。

C#:所以如果静态类是存储全局状态信息的不良做法,那么提供相同方便性的好方法是什么?

我一直注意到静态类在用于存储全局信息方面在SO上获得了很多不好的代表。 (而且全局变量一般被嘲笑)我只想知道下面的例子有什么好的选择…… 我正在开发一个WPF应用程序,并且根据当前登录用户的ID过滤了从我的数据库中检索到的数据的许多视图。 同样,我的应用中的某些点应该只能被视为“管理员”的用户访问。 我目前正在静态类中存储loggedInUserId和isAdmin bool。 我的应用程序的各个部分需要这些信息,我想知道为什么它在这种情况下不理想,以及替代品是什么。 起床和跑步似乎非常方便。 我唯一可以想到的替代方法是使用IoC容器将Singleton实例注入需要此全局信息的类中,然后类可以通过其接口与之通信。 然而,这是否过度/导致我陷入分析瘫痪? 提前感谢您的任何见解。 更新 因此,我倾向于通过IoC进行dependency injection,因为它可以更好地提供可测试性,因为我可以交换一个服务,如果需要,可以使用模拟提供“全局”信息。 我想剩下的是注入的对象是单身还是静态。 🙂 如果等待查看是否还有其他讨论,请问问Mark的答案。 我不认为这是正确的方式。 我只是想看到一些可以启发我的讨论,因为似乎有很多“这是坏的”,“这是坏的”,在没有任何建设性替代方案的情况下对某些类似问题的陈述。 更新#2所以我选择了罗伯特的答案,因为它是一个很好的选择(我认为替代方案是一个奇怪的词,可能是One True Way,因为它是内置于框架中)。 它并没有强迫我创建一个静态类/单例(尽管它是线程静态的)。 唯一让我感到好奇的是,如果我必须存储的“全局”数据与用户身份validation无关,那将如何处理。

从另一个类/命名空间访问表单标签

我知道这已被问了数千次,但经过大量的研究后我找不到解决方案,我对这篇文章感到非常抱歉。 我想从另一个命名空间中的类访问我的Label。 这是一个代码示例,可以更好地理解我要做的事情: public partial class Main : Form { public Main() { InitializeComponent(); } } //class in another namespace class Servers { public void _SetlabelText() { Main.label1.Text = “New Text”; } } 我怎么能以正确的方式做到这一点?

从C#中的Entity Framework生成的类派生

我创建了一个实体数据模型并从中生成了一个数据库。 其中一个实体称为Template 。 创建部分类以扩展Template的function可以正常工作。 如果我创建一个新类并尝试从Template派生,我会在实例化时遇到运行时exception: Mapping and metadata information could not be found for EntityType ‘Template001’ 。 我该如何解决这个问题? 我肯定需要inheritanceEF类。 编辑 似乎不可能。 如果是这种情况,那么实现以下要求的最佳方法是:模板实体存储有关每个都有自己的代码要执行的模板的信息。 这就是为什么我试图从实体派生出来的原因。

从另一个类调用变量

如何从C#中的另一个公共类访问一个公共类中的变量? 我有: public class Variables { static string name = “”; } 我需要从以下地方调用它: public class Main { } 在此先感谢您的帮助。 我正在使用控制台应用程序。

如何在C#中按字符串访问类成员?

有没有办法通过字符串(名称)访问成员? 例如,如果静态代码是: classA.x = someFunction(classB.y); 但我只有两个字符串: string x = “x”; string y = “y”; 我知道在JavaScript中你可以做到: classA[x] = someFunction(classB[y]); 但是如何在C#中做到这一点? 另外,是否可以按字符串定义名称? 例如: string x = “xxx”; class{ bool x {get;set} => means bool xxx {get;set}, since x is a string } 更新 ,对于tvanfosson,我无法让它工作,它是: public class classA { public string A { get; set; } } public […]

DataAccess项目中类的命名约定是什么?

我通常将Business项目中的类命名为Manager.cs,如BaseManager.cs,CommentsManager.cs,ProfileManager.cs等… 如何在DataAccess项目中命名您的类? 你称之为CommentsDA,CommentsDB还是什么? 好奇…… BTW,我正在使用.NET C#。

XML到C#类问题

有人可以帮助我,我有这个xml片段 123 email@whereEver.com 我想从中创建一个corressponding c#类。 在您说“只使用xsd.exe”之前,Xsd的输出无法序列化和反序列化正确,因为它使用部分类生成类。 请问你能告诉我如何创建这个类….这是我采取的方法,但它不起作用。 public class EmailConfiguration { private string dataBoxID; public string DataBoxID { get { return dataBoxID; } set { dataBoxID = value; } } private DefaultSendToAddressCollectionClass defaultSendToAddressCollection; public DefaultSendToAddressCollectionClass DefaultSendToAddressCollection { get { return defaultSendToAddressCollection; } set { defaultSendToAddressCollection = value; } } } 这是子类的类声明 public class DefaultSendToAddressCollectionClass { […]

在c#中使用这两种方式初始化对象之间的区别

通常我用这种方式将object添加到list时即时initialize object —> list.add( new foo() { // <— foo() field1 = value1, field2 = value2 } ); 但是一旦我尝试了—> list.add( new foo { // <— foo field1 = value1, field2 = value2 } ); & 有效 !!! 在第二种方式我只是creating一个object而不使用它的尾部。 那么有没有人知道这些初始化对象的各种方法之间的区别?

如何从其父接口获取派生类的实际类型

假设我们有一个像这样的代码部分: IProduct product = ProductCreator.CreateProduct(); //Factory method we have here SellThisProduct(product); //… private void SellThisProduct(IProduct product) { //.. Do something here } //… internal class Soda : IProduct {} internal class Book : IProduct {} 如何推断哪个产品实际传入方法中的SellThisProduct()方法? 我想如果我说GetType()或其他东西它可能会返回IProduct类型。