Tag: instantiation

值类型与参考类型的实例化和初始化

int number = new int(); 问题: 对于引用类型, new运算符通过在堆上分配内存来创建该类型的实例,然后通过调用类型的构造函数对其进行初始化。 如上所示,您可以对值类型执行相同操作。 对我来说,上面的行意味着调用构造函数int()以使用值初始化数字 。 我已经读过int是一个指向struct System.Int32的关键字。 因此,在Visual Studio中,我导航到结构Int32。 瞧,没有构造函数存在。 如果没有构造函数,这个预定义类型究竟是如何初始化为0的? 与上面相关,Int32结构中是否有一个存储值的字段? 对于自定义结构和类,我都可以使用new关键字创建新实例,而实际上不包含构造函数的结构或类。 在这种情况下,是否在struct / class包含的所有字段中都没有进行初始化? 唯一的事情就是在堆/堆上为值/引用类型分配内存? 最后,对于值类型,实例化和初始化不需要新的关键字。 这究竟是如何在较低级别上工作的? 假设我们做int number = 5; 。 它以某种方式转换为int a = new int(); a = 5; ? 如果是这样,怎么样? 太感谢了!

不了解C#中的对象实例化

这篇文章对我对C#类的理解以及为什么它们比静态函数更有优势。 我想获得一个对象列表。 列表中的每个对象代表表中的记录。 这在静态函数中很容易做到。 使用课程,我能够按如下方式进行: 调用例程: ListOfBusinesses l = new ListOfBusinesses (); List b = l.listBusinesses(); 课程: public class Business { public string Bupk { get; set; } public string Bu_name { get; set; } } public class ListOfBusinesses { public List listBusinesses() { List businesses = new List(); businesses.Add(new Business(“1”, “Business Name 1”)); businesses.Add(new […]

有没有办法动态创建和处理Webbrowser控件?

我有这个使用Webbrowser控件进行自动浏览的应用程序。 我需要想出一种方法来自动关闭浏览器(dispose),然后创建另一个实际工作的实例。 这是我到目前为止的一些代码。 this.webBrowser2 = new System.Windows.Forms.WebBrowser(); this.webBrowser2.Dock = System.Windows.Forms.DockStyle.Bottom; this.webBrowser2.Location = new System.Drawing.Point(0, 34); this.webBrowser2.MinimumSize = new System.Drawing.Size(20, 20); this.webBrowser2.Name = “webBrowser2”; this.webBrowser2.ScriptErrorsSuppressed = true; this.webBrowser2.Size = new System.Drawing.Size(616, 447); this.webBrowser2.TabIndex = 1; 所以我在考虑是否处理了webbrower实例。 webBrowser2.dispose(); 然后创建webbrowser对象的新实例。 WebBrowser w = new WebBroswer(); w.Navigate(url); 不幸的是,这不起作用。 浏览器的新实例未显示,并且已处置的浏览器对象在Windows窗体中保持冻结状态。 有什么我做错了吗? 谢谢

从基类创建派生类的实例

我有我的抽象基类A : public abstract class A : ICloneable { public int Min { get; protected set; } public int Max { get; protected set; } public A(int low, int high) { this.Min = low; this.Max = high; } //… public object Clone() { return new this(this.Min, this.Max); //<– ?? } } 我的B级扩展了哪个: public class B […]

如何在C#中使用私有构造函数实例化对象?

我当然记得在某个地方看到一个使用reflection或其他东西这样做的例子。 这与SqlParameterCollection有关,不能由用户创建(如果我没记错的话)。 不幸的是再也找不到了。 有人可以在这里分享这个技巧吗? 并不是说我认为它是一种有效的开发方法,我只是对这样做的可能性非常感兴趣。

为什么没有new关键字可以实例化一个struct?

为什么我们没有被强制实例化一个结构,比如在使用类时?