메서드에 여러 매개 변수 보내기?C#의 메서드에 여러 매개 변수 보내기?
저는 C#과 Visual Studio에 대해 매우 익숙합니다. 저는 "배우면서"학습하고 질문합니다. 작은 Windows Form 응용 프로그램을 작성하고 있습니다.
다른 양식 값을 보내려고합니다. 사용하여 내를 Form1에 따라서
class Cars
{
public string Name { get; private set; }
public string Color { get; private set; }
public Cars(string name, string color)
{
this.Name = name;
this.Color = color;
}
}
내가 이러한 개체에 액세스 할 수 있습니다 :
나는이 클래스에서 개체의 목록을
List<Cars> cars = new List<Cars>();
자동차의이 목록은 다른 방법에로드 .
이제는 다른 양식 (양식 편집)을 차로 보내려고합니다. 나는이 일을하고 싶습니다 :
이var form2 = new frmEdit(cars[0]);
하지만 컴파일러는 내가 공개 ... 나쁜 OOP에 내 수업을 설정할 필요가에 대한 불평. 그러면 다음과 같이 할 수 있습니다.
var form2 = new frmEdit(cars[0].Name,cars[0].Color);
Fine! 하지만 이것이 Javascript 나 PHP와 같은 다른 언어라면 객체를 보냈을 것입니다. 그래서 C#에서 "Anonymus Types"에 대해 읽었습니다. 그래서 좋은 해결책이 될 수 있다고 생각했습니다.
하지만 receiveing 양식 나던 ... 그것에 대해 알고 그래서 난 이런 식으로 사용하는 경우는 불평 :car.Name;
그래서 내가 여기서 무엇을해야합니까? 나는 적어도 "좋은"OOP를 사용하려고 노력하고 있으므로 Cars 클래스를 공개하는 나쁜 해결책이라고 생각한다. 편집 양식은 Cars 클래스에 대해 알 필요가 없습니다.
조언 해 주셔서 감사합니다.
[편집] 편집 양식 생성자 : 다음
private Cars myCar; // add this var.
public frmEdit(Cars car)
{
this.myCar = car; // now you have your car stored if you need
textName.Text = car.Name;
textColor.Text = car.Color;
}
그리고 :
public frmEdit(string name, string color)
{
textName.Text = name;
textColor.Text = color;
}
당신은 당신의 frmEdit 생성자를 추가 할 수 있습니까? –
'동적'을 보낼 수 있습니다. 하지만 정적 유형 검사를 거부하는 이유는 무엇입니까? 그 좋은 OOP에 대해 어디서 읽었습니까? –
왜 자동차를 내부에 넣지 않습니까? – Stuart