标签: constructor

对象初始值设定项和构造函数之间有什么区别?

两者之间有什么区别?何时使用"对象初始值设定项"而不是"构造函数",反之亦然?我正在使用C#,如果这很重要的话.另外,对象初始化方法是否特定于C#或.NET?

.net c# constructor object-initializer

163
推荐指数
4
解决办法
8万
查看次数

为什么C#构造函数不能推断类型?

为什么构造函数不支持类型推断,就像通用方法一样?

public class MyType<T>
{
   private readonly T field;
   public MyType(T value) { field = value; }
}

var obj = new MyType(42); // why can't type inference work out that I want a MyType<int>?
Run Code Online (Sandbox Code Playgroud)

虽然你可以用工厂类解决这个问题,

public class MyTypeFactory
{
   public static MyType<T> Create<T>(T value)
   {
      return new MyType<T>(value);
   }
}
var myObj = MyTypeFactory.Create(42);
Run Code Online (Sandbox Code Playgroud)

构造函数不支持类型推断是否存在实际或哲学原因?

c# generics constructor type-inference

160
推荐指数
3
解决办法
2万
查看次数

在构造函数中调用异步方法?

简介:我想在构造函数中调用异步方法.这可能吗?

详细信息:我有一个调用getwritings()JSON数据的方法.如果我只是调用getwritings()一个async方法并将其放在await左侧,那么一切正常.但是,当我LongListView在我的页面中创建一个并尝试填充它时,我发现这getWritings()是令人惊讶的返回null而且LongListView是空的.

为了解决这个问题,我尝试更改getWritings()to 的返回类型,Task<List<Writing>>然后在构造函数中检索结果getWritings().Result.但是,这样做最终会阻止UI线程.

public partial class Page2 : PhoneApplicationPage
{
    List<Writing> writings;

    public Page2()
    {
        InitializeComponent();
        getWritings();
    }

    private async void getWritings()
    {
        string jsonData = await JsonDataManager.GetJsonAsync("1");
        JObject obj = JObject.Parse(jsonData);
        JArray array = (JArray)obj["posts"];

        for (int i = 0; i < array.Count; i++)
        {
            Writing writing = new Writing();
            writing.content = JsonDataManager.JsonParse(array, …
Run Code Online (Sandbox Code Playgroud)

c# constructor async-await windows-phone-8 visual-studio-2013

158
推荐指数
6
解决办法
11万
查看次数

在C#中是否存在具有参数约束的通用构造函数?

在C#中,您可以对通用方法设置约束,例如:

public class A {

    public static void Method<T> (T a) where T : new() {
        //...do something...
    }

}
Run Code Online (Sandbox Code Playgroud)

您指定的T应该具有不需要参数的构造函数.我想知道是否有办法添加一个约束,如" 存在一个带float[,]参数的构造函数? "

以下代码无法编译:

public class A {

    public static void Method<T> (T a) where T : new(float[,] u) {
        //...do something...
    }

}
Run Code Online (Sandbox Code Playgroud)

解决方法也有用吗?

c# generics parameters constructor generic-constraints

156
推荐指数
6
解决办法
7万
查看次数

Go中的构造函数

我有一个结构,我希望它用一些合理的默认值初始化.

通常,这里要做的是使用构造函数,但由于go不是传统意义上的OOP,因此它们不是真正的对象,也没有构造函数.

我注意到了init方法,但是在包级别.是否有类似的东西可以在结构级别使用?

如果不是在Go中这种类型的东西被接受的最佳实践是什么?

oop constructor go

156
推荐指数
8
解决办法
8万
查看次数

使构造函数抛出异常是一种好习惯吗?

使构造函数抛出异常是一个好习惯吗?例如,我有一个类Person,我有age它的唯一属性.现在我提供课程为

class Person{
  int age;
  Person(int age) throws Exception{
   if (age<0)
       throw new Exception("invalid age");
   this.age = age;
  }

  public void setAge(int age) throws Exception{
  if (age<0)
       throw new Exception("invalid age");
   this.age = age;
  }
}
Run Code Online (Sandbox Code Playgroud)

java constructor exception

155
推荐指数
8
解决办法
13万
查看次数

是不必将super()放在构造函数中?

如果不将它放在子类的构造函数中,编译器是否会自动放置这个?

那意味着我甚至不需要关心它?在一些文章中,他们把它说出来.

如果我有一个带参数的构造函数,这将是构造函数,还是它需要一个没有参数列表的构造函数?

java constructor super

154
推荐指数
4
解决办法
8万
查看次数

用于在Visual Studio中创建构造函数的代码段或快捷方式

在Visual Studio中创建构造函数的代码段或快捷方式是什么?

Visual Studio 2010和C#.

我以前用过它,但我记不起来了.

c# constructor shortcut visual-studio code-snippets

151
推荐指数
7
解决办法
10万
查看次数

让构造函数返回Promise是不好的做法吗?

我正在尝试为博客平台创建一个构造函数,它内部有许多异步操作.这些包括从目录中获取帖子,解析它们,通过模板引擎发送它们等等.

所以我的问题是,让我的构造函数返回一个promise而不是它们调用的函数的对象是不明智的new.

例如:

var engine = new Engine({path: '/path/to/posts'}).then(function (eng) {
   // allow user to interact with the newly created engine object inside 'then'
   engine.showPostsOnOnePage();
});
Run Code Online (Sandbox Code Playgroud)

现在,用户可能还没有提供补充Promise链链接:

var engine = new Engine({path: '/path/to/posts'});

// ERROR
// engine will not be available as an Engine object here
Run Code Online (Sandbox Code Playgroud)

这可能会造成问题,因为用户可能会感到困惑,为什么 engine 在施工后无法使用.

在构造函数中使用Promise的原因是有道理的.我希望整个博客在构建阶段后正常运行.然而,在呼叫之后,它似乎几乎无法立即访问该对象new.

我一直在争论使用的东西,engine.start().then()或者engine.init()会返回Promise.但那些看起来也很臭.

编辑:这是在Node.js项目中.

javascript architecture constructor node.js promise

150
推荐指数
3
解决办法
4万
查看次数

Java默认构造函数

究竟什么是默认构造函数 - 你能告诉我以下哪一个是默认构造函数,以及它与其他构造函数的区别是什么?

public Module() {
   this.name = "";
   this.credits = 0;
   this.hours = 0;
}

public Module(String name, int credits, int hours) {
   this.name = name;
   this.credits = credits;
   this.hours = hours;
}
Run Code Online (Sandbox Code Playgroud)

java constructor default-constructor

147
推荐指数
7
解决办法
37万
查看次数