2013-09-21 2 views
1

저는 C#을 처음 접했고 그걸 가지고 놀았고 메소드에서 유용한 것을 반환하는 데 막혔습니다. 어떤 도움이 될 것입니다.클래스에서 문자열을 반환하는 방법은 무엇입니까?

Form1.cs에서 :

Animal NewAnimal = new Animal("Jack", "Ramp"); 

Animal.cs에서 : 내가 뭔가 잘못하고 있어요 시도하는 사람에서 아마

public Animal(string Fname, string Lname) 
     { 
      if (Fname == "Jack" | Lname == "Ramp") 
      { 
       string FullName; 
       FullName = Fname + " " + Lname; 
       //return FullName; <--- This is what i tried but didn't work---> 
      } 
     } 
     //return FullName; <--- And Also tried this it didn't work ---> 

는 지금이 바로이 있나요? FullName을 Form1.cs로 반환하고 레이블에 표시하는 방법은 무엇입니까?

+5

건설자. fullname에 대한 속성을 만들고 클래스에서 가져옵니다. – Harrison

+0

그래서 If 문에 '단일 모음'을 사용하고 있습니까? '조건부'와'비트 단위'또는'비트 단위'의 차이점을 알고 있습니까? – gunr2171

+0

@ gunr2171 나는 믿는다 | 연산자는 단락 회로 대신에 계산서의 양쪽을 평가한다. 운영자. 이것은 효과가있다. – Harrison

답변

2

을, 나는 C#에서 유형을 지정의 기본 사항을 검토 할 것입니다.

유형은 필드, 속성, 메소드 및 데이터와 동작을 정의하는 몇 가지 다른 구조의 사용자 정의 (사용자는 사용자) 모음입니다.

특별한 경우에는 구현중인 동작을 고려해야합니다.

  • 다음 코드를 고려 Animal

에서 해당 문자열을 얻기 새로운 Animal

  • 에 문자열을 먹이 :

    public class Animal { 
        public string FullName { get; } 
    
        public Animal(string firstName, string lastName) { 
        this.FullName = firstName + " " + lastName; 
        } 
    } 
    

    당신은 다음 Animal의 이름을 검색 할 수 있습니다 당신 인스턴스화.이 당신에게 약간의 손실을 얻는 경우

    var animal = new Animal("Bob", "Smith"); 
    // ... later 
    if (animal.FullName.Equals("Jack Ramp", StringComparison.CurrentCulture)); 
    textBox.Text = animal.FullName; 
    

    , 나는 검토 (실제로 포함 된 예제를 통해 작업)을 Microsoft Types Overview에 권하고 싶습니다. 이 기사에는 많은 정보가 있지만 C#의 유형 시스템에 관한 중요한 정보입니다.

  • +0

    링크를 보내 주셔서 감사합니다. –

    0

    생성자에서 어떤 것을 반환 할 수 없습니다. 당신은 당신이 NewAnimal.FullName에 의해 FullName에 액세스 할 수 있습니다이

    class Animal { 
    
    public: 
        string FullName; 
        ..... 
    } 
    

    같은 속성이나 공공 필드를 선언 할 수 있습니다.

    2

    생성자에서 값을 반환하려고합니다 ...

    대신 방법을 정의하십시오.

    public string FullName(string Fname, string Lname) 
    { 
    if (Fname == "Jack" || Lname == "Ramp") 
        { 
    
           return Fname + " " + Lname; 
    
        } 
    
    return ""; 
    
    } 
    
    2

    가지고있는 방법은 Constructor입니다. 객체의 새 인스턴스를 만들 때 호출됩니다. 정의에 반환 유형이 없더라도 객체의 새 인스턴스를 반환합니다 (실제로는 제어 할 수는 없지만).

    기대하고있는 것은 값을 반환하는 다른 공개 메서드 또는 속성을 가지는 것입니다.

    public class Animal 
    { 
        public string Fullname {get; set;} 
    
        public Animal(string Fname, string Lname) 
        { 
         if (Fname == "Jack" || Lname == "Ramp") 
         { 
          FullName = Fname + " " + Lname; 
         } 
    } 
    

    그런 다음 다음을 사용 :

    Animal NewAnimal = new Animal("Jack", "Ramp"); 
    var firstName = NewAnimal.FullName; 
    
    5

    당신은 이런 걸 원하는 : 신발에

    public class Animal 
    { 
        public Animal(string fName, string lName) 
        { 
         this.FName = fName; 
         this.LName = lName; 
        } 
        public string FName {get;set;} 
        public string LName {get;set;} 
        public string FullName 
        { 
         get 
         { 
          return String.Format("{0} {1}", FName,LName); 
         } 
        } 
    } 
    
    1

    당신은 내가 그것을 할 것이 요구 될 것으로 보인다 무엇 Yaur의 대답에 가까이가 있지만 작동합니다 (참고 :이 Yaur의 코드의 수정입니다) 당신은에 값을 반환 할 수

    public class Animal 
    { 
        public Animal(string fName, string lName) 
        { 
         this.FName = fName; 
         this.LName = lName; 
        } 
        public string FName {get;set;} 
        public string LName {get;set;} 
        public override string ToString() 
        { 
         return String.Format("{0} {1}", FName,LName); 
        } 
    } 
    
    관련 문제