Tag:

从类属性获取绑定值,DefaultBindingProperty对我不起作用!

我正在为我的项目创建一些实体(类),我想为它设置一个默认的binging属性,这是一个例子 namespace MyNamespace { [System.ComponentModel.DefaultBindingProperty(“Name”)] public class Person { public int ID { get; set; } public string Name { get; set; } public int Gender { get; set; } } public class Family { public int ID { get; set; } public Person Father { get; set; } } } 如果我有List并希望将它绑定到GridView并添加此字段结果将是MyNamespace.Person但是我需要它来填充属性Name的值而不用使用TemplateField所以我错过了什么? 或DefaultBindingProperty不是正确的属性?

Activator.CreateInstance()麻烦

我有一个工厂应该创建在运行时从类Fooinheritance的对象。 我认为System.Activator.CreateInstance的返回类型与它创建的对象的类型相同,但从以下错误消息判断,其返回类型是Object。 错误1无法将类型’object’隐式转换为’cs_sandbox.Foo’。 存在显式转换(您是否缺少演员?)F:\ projects \ cs_sandbox \ Form1.cs 46 24 cs_sandbox 好吧,也许我错过了一个演员,但是 return (t)System.Activator.CreateInstance(t); 导致另一条错误消息 – 我必须承认 – 这对我没有意义: 错误1找不到类型或命名空间名称’t’(您是否缺少using指令或程序集引用?)F:\ projects \ cs_sandbox \ Form1.cs 45 25 cs_sandbox 这是我的代码: class Foo { } class FooChild1 : Foo { } class FooChild2 : Foo { } class MyFactory { public static Foo CreateInstance(string s) { […]

圆括号与否? 有什么不同?

我最近看到过这两件事,我有点困惑。 var blah = new MyClass() { Name = “hello” } 和 var blah = new MyClass { Name = “hello” } 有什么不同? 为什么他们都工作? 更新:这是否意味着,如果我在构造函数中有一些东西做了一些计算,我将不得不调用第一个?

c#类引用而不是实例引用

我可以在本地引用C#中的类,而不是类的实例吗? 以下代码不会编译,但作为示例,例如: void someFunc() { var a = System.Math; var b = a.Abs(4); } 编辑:在真正的程序中,它不是System.Math类,我想构造类并返回构造的值。 我最初并不认为我想要使用该类的上下文是相关的,而且可能不应该。 Anastasiosyal有一个有趣的想法,使用当地的代表来做。

将布尔方法添加到现有类C#的最佳方法

我确信这是一个非常简单的任务,但我不完全确定如何将其写入搜索查询。 我得到的最好的是扩展方法,我无法理解它们或得到正确的语法。 我目前正在使用一个简化为GTA V制作mod的程序集。这些程序集包含一个Ped“类型”,其中包含一系列附加到它的方法。 我正在寻找的是能够添加我自己的方法,可以存储bool值作为Ped类的扩展。 非常感谢任何帮助,谢谢。

如何检查对象是否等于同一类的新对象?

如果我有一个像这样的对象: public class Person { public int id {get;set;} public string name {get;set;} } 我想要的行为: Person a = new Person(); Person b = new Person(); a == b; 并且a == b返回true,我是否必须覆盖Object.Equals()方法? 或者是否有其他方法可以不覆盖Equals方法? 编辑 我想比较数据,因为我想知道我调用的外部方法是否返回一个新对象或一个具有不同于新对象的数据的对象

为什么System.Int32是struct而System.String是类

从我开始进行c#编程的角度来看,这在我脑海中确实是一个问题。 为什么int是struct类型 而string是class类型

类inheritance,强制新类实现某些function

好吧,我正在搞乱一些事情,特别是接口。 假设我有一个“猫”类,其基础为“动物”动物有一个方法就像这样 public virtual void Walk() { // Do walking stuff } 因此Cat会用以下方式覆盖它: public override void Walk() { // Do cat specific walking stuff } 简单吧? 这是我的问题,有没有办法强制cat覆盖基本的Walk()方法? 因此,如果另一个开发人员添加了Dog类,他们将被迫实现自己的Walk方法(即使它只是base.Walk())? 所以接口就解决了这个问题,这就是我所尝试过的 Cat:Animal:Interface Animal必须实现Walk方法,但Cat不支持 Cat:Animal,Interface Cat必须实现Walk方法,但如果开发人员没有添加或忘记’,Interface’那么它将“打破”它。 有人可以给我一些指针来解决这个问题吗? 谢谢。 编辑1 这就是我的目标,我希望它能让它更清晰。 public class Animal { public Animal() { Console.WriteLine(“Animal”); } public virtual void Walk() { } } public class […]

如何在.NET中检测运行时类的存在?

是否有可能在.NET应用程序(C#)中有条件地检测是否在运行时定义了类? 示例实现 – 假设您要基于配置选项创建类对象?

尝试让main / form1以外的类互相交互是不好的forms?

我正在尝试学习在我的代码中使用类的正确方法,当它不像一组客户,从动物inheritance的狗等明显的东西时。 我已将大部分代码分解为“function”,例如Installer.cs , Downloader.cs , UiManager.cs 。 我能找到让这些类与彼此的属性和方法相互作用的唯一方法就是使它们都是静态的,我在另一个问题中被告知是错误的方法。 所以我的问题是三件事之一: 有一种方法可以让课程互相交流,我还不明白。 类不应该尝试相互通信,而是执行一次性操作,然后将某些内容返回给main/form1 ,然后主类可以使用它来传递到另一个类中进行一次性操作。 类实际上只对大量实例有用,而且我需要了解一些其他结构,以便从主类中抽象出大块的function。 我能找到的所有教程和我观看的讲座似乎只告诉你课程是如何工作的 ,而不是告诉你何时以及如何在真实产品中使用它们。 编辑 – 一个更具体的例子: 假设我有一个对整个应用程序至关重要的字符串,并且需要每个类都可能看到和/或修改。 如何在代码中移动该信息,而无需将所有内容都放在一个类中或使其静态化? 我没有办法让这个字符串在Form1生存而不使其成为静态(因为所有表单事件和函数都需要能够看到它以将其传递给类)。 我无法看到一种方法将字符串放入另一个类而不必使字符串和整个类静态,所以其他类可以看到它。 也许我实际上没有关于实例化类,并使对象相互交互的东西。