只是写错了方法public int uid
{
  set 
   {
Console.WriteLine("ok");
    
     }
  get
   {
    return 10;    }
}

解决方案 »

  1.   

    /*C#中的属性更充分地体现了对象的封装性不直接操作类的数据内容而是通过访问器进行访问它借助于get 和set 对属性的值进行读写这在C++中是需要程序员手工完成的一项工作*/
    using System;public class File{
    private string s_filename; public string Filename {
    get {
    return s_filename;
    }
    set {
    if (s_filename != value) {     /*除了使用了abstract 修饰符的抽象属性每个访问器的执行体中只有分号";' 其它所有属性的get 访问器都通过return 来读取属性的值 set 访问器都通过value 来设置属性的值    */
    s_filename = value;

    }
    }
    }
    }public class Test{
    public static void Main(){
    File f = new File();
    f.Filename = "myfile.txt";
    string s = f.Filename;
    Console.WriteLine("s_filename={0}",s);

    }
    以上的程序可以直接编译
      

  2.   

    看来get是必须的,而且必须返回值
    而我们可以在set中做很多事情
      

  3.   

    get里也可以做事情的
    只不过必须要返回一个值
      

  4.   

    应该有个私有变量
    private int uid;public int Uid
    {
      set 
       {
           uid = value;
        
         }
      get
       {
        return uid;    }
    }
      

  5.   

    有些明白了,在c#中的set/get中的变量 输入是value把!不是vb那样:
    property set a(byval aa as intger)end property
    是不是?!
      

  6.   

    是啊!
    系统会自动产生一个value变量作为输入
      

  7.   

    set 系统会默认把值赋予value
    get 为我们所能取出的
    这就实现了封装性
      

  8.   

    get
    {
      //...
      return xx; // 最后必须要有return
    }
    set
    {
      // 没有返回值,用户设置的值在value变量中
      // 可以先检测value是否符合要求 比如要求int必须大于0等
    }可以只有get(只读),只有set(只写)
      

  9.   


    sorry!我忘记了,晚上我回家就结!
      

  10.   


    sorry!我忘记了,晚上我回家就结!