按照以下代码的精神,对象初始值设定项是否可以在类似java或c#的颤振(dart)中使用?

按照以下代码的精神,对象初始值设定项是否可以在类似java或c#的颤振(dart)中使用?,java,c#,flutter,dart,Java,C#,Flutter,Dart,按照以下代码的精神,对象初始值设定项是否可以在类似java或c#的颤振(dart)中使用 Person p = new Person() { FirstName = "John", LastName = "Doe", Address = new Address() { Street = "1234 St.", City = "Phoenix" }

按照以下代码的精神,对象初始值设定项是否可以在类似java或c#的颤振(dart)中使用

Person p = new Person()
{
    FirstName = "John",
    LastName = "Doe",
    Address = new Address()
    {
        Street = "1234 St.",
        City = "Phoenix"
    }
};

要在Dart中获得相同的效果,请在构造函数中使用命名参数。例如:

class Person {
  Person({ this.firstName, this.lastName, this.address, this.tn });

  String firstName;
  String lastName;
  String tn;
  Address address;
}

class Address {
  Address({ this.street, this.city, this.zip });
 
  String street;
  String city;
  String zip;
}
// create a person with no fields initialized
var person = Person(); 

// only init first and last
var person1 = Person(firstName: 'John', lastName: 'Doe'); 

// this is equivalent to the OPs question
var person2 = Person(address: Address(street: '1234 St.', city: 'Phoenix'), 
  lastName: 'Doe', firstName: 'John');
现在,您可以使用命名参数初始化这些类中的部分或所有字段,只需提供所需的参数和值,并且可以按任意顺序进行初始化。例如:

class Person {
  Person({ this.firstName, this.lastName, this.address, this.tn });

  String firstName;
  String lastName;
  String tn;
  Address address;
}

class Address {
  Address({ this.street, this.city, this.zip });
 
  String street;
  String city;
  String zip;
}
// create a person with no fields initialized
var person = Person(); 

// only init first and last
var person1 = Person(firstName: 'John', lastName: 'Doe'); 

// this is equivalent to the OPs question
var person2 = Person(address: Address(street: '1234 St.', city: 'Phoenix'), 
  lastName: 'Doe', firstName: 'John');

不。这是dart的错误语法。dart中没有匿名类