2012-05-19 2 views
0

여기에 공백을 그냥 둡니다. 클래스에서 읽기 전용 속성을 원하지만 속성을 업데이트 할 수있는 관리 유형 함수가 필요합니다.속성 보호 집합

public class Group : Object, INotifyPropertyChanged 
{ // this is read only admin is via UserGroupAdmin 
    public event PropertyChangedEventHandler PropertyChanged; 
    private void NotifyPropertyChanged(String info) 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(info)); 
     } 
    } 

    public Int16 ID { get; private set; } 
    public string Name { get; private set; } 
    public override bool Equals(Object obj) 
     { 
      //Check for null and compare run-time types. 
      if (obj == null || !(obj is Group)) return false; 
      Group item = (Group)obj; 
      return (ID == item.ID); 
     } 

    public override int GetHashCode() { return (int)ID; } 
    public Group(Int16 id, string name) 
    { ID = id; Name = name; } 
} 

는 내가하고 싶은 것은 관리 형 기능

public group ReviseGroupName (Group group, string revisedName) 
{ 
    // write revised name to SQL 
    // revise group.name 
    // return revised group 
} 

내가 아는 SQL 부분입니다. 내가 생각한 것은 동일한 ID와 해시 코드를 가진 새로운 그룹을 생성하고 리턴하는 것이었다.

+0

당신이 비록'ReviseGroupName' 기능 이벤트에'Name' 속성을 설정할 수 있도록하려면를 사적인 건가요? 어떤 클래스에'ReviseGroupName'이 속해 있고'Group'과 어떻게 연관되어 있습니까 – Magnus

답변

0

Admin 중첩 클래스 Group에있는 경우에는 함수의 사유 재산 설정할 수 있습니다

public class Group 
{ 
    public string Name { get; private set; } 

    public class Admin 
    { 
     public Group ReviseGroupName (Group group, string revisedName) 
     { 
      group.Name = revisedName; 
      return group; 
     } 
    } 
} 
+0

정말 제가 찾고있는 것이 아니라 반사에 관해서는 잘 생각하지 않은 질문이었습니다. – Paparazzi

관련 문제