저는 C#과 프로그래밍의 새로운 영역입니다. 나는이 개념들 중 많은 것들에 대해 저의 머리를 감싸기 위해 책과 YouTube 비디오에서 몇 가지 연습을 해왔습니다.객체 클래스의 속성 인 생성자에 매개 변수 전달
현재이 문제에 봉착했습니다. 나는 위탁 상점을위한 작은 응용 프로그램을 가지고 있으며 하드 코딩 된 샘플 데이터를 제거하고 프로그램이 텍스트 파일에서 데이터를 읽도록 노력하고있었습니다. 다음에 항목을 추가,
public class Vendor
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Vendor(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
}
이 본질적으로 납품업자의 내 .csv 파일을 받아 문자열 배열로 밀어 개체를 생성하고 배열 값으로 속성을의 채운다 : 여기
내 공급 업체 클래스입니다 Vendor 형의리스트 이 메서드는 오류를 throw하지 않습니다.private void ReadFromFile()
{
string line = "";
while ((line = myReader1.ReadLine()) != null)
{
string[] data = line.Split(',');
Vendor v = new Vendor(data[0], data[1]);
store.Vendors.Add(v);
}
}
나는 목록에 항목을 추가하기위한이 같은 솔루션을하려고 할 때, 내 항목 클래스에있는 유형 공급 업체의 한 속성입니다 항목의 "소유자"를 전달하고 싶습니다. 생성자에서 객체를 매개 변수로 전달할 때 작동하는 솔루션을 얻을 수 없기 때문에 공식 데이터 유형을 전달하는 방법을 고수하기로 결정했습니다. 기본적으로 이름이 & 성인 공급 업체의 속성을 사용하고 항목 소유자의 이름과 성으로 설정하려고합니다.
public class Item
{
public string Title { get; set; }
public decimal Price { get; set; }
public Vendor Owner { get; set; }
public Item(string title, decimal price, string fName, string lName)
{
Title = title;
Price = price;
Item.Owner.FirstName = fName; // this is what I want to do
Item.Owner.LastName = lName; // throws objref error
}
}
//Input file format: title,price,fname,lname
while ((line = myReader2.ReadLine()) != null)
{
string[] data2 = line.Split(',');
decimal price = decimal.Parse(data2[1]);
Item i = new Item(data2[0],price,data2[2],data2[3]);
store.Items.Add(i);
}
문자열은 배열에 그것을 만들,하지만 난 디버거를 실행하고 내 store.Items 목록을 확인할 때, 모든 속성 값은 null의 소유자를 제외한 설정됩니다. 어떻게 든 하나의 솔루션은 fName + lName을 하나의 문자열로 결합 할 수 있다는 것을 알고 있지만, 필자는 Item 생성자가 어떤 매개 변수를 받아들이는지 설정하는 방법을 이해하는 데 어려움을 겪고 있습니다. 내가 시도한 것에 상관없이 Oner 속성은 절대로 값을받지 못하기 때문에 나머지 응용 프로그램이 중단됩니다.
저는 몇 시간 동안이 작업을 해왔습니다. 그러나이 시나리오에서 해결 방법이나 해결 방법을 찾지 못했습니다.
도움을 주시면 대단히 감사하겠습니다.
감사합니다.
이것은 마치 마법처럼 일, 빠른 응답 해 주셔서 감사합니다! 그리고 네, 코드를 컴파일하지 않았을 게시, 나는 단지 내가 뭘하려고했는지에 대한 아이디어를 보여주고 싶었어요. 다시 한 번 감사드립니다! –