none
|zyciis| 如何在声明了对像后 还能使用对像初始化属性设计器呢 谢谢 有代码 RRS feed

  • 问题

  • using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication1
    {
      public partial class UC : System.Web.UI.UserControl
      {
        public string MyValue { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
      }
    
      public static class ControlDao
      {
        public static UC UC()
        {
          System.Web.UI.Page page = new System.Web.UI.Page();
          UC userControl = page.LoadControl("~/UC") as UC;
          return userControl;
        }
      }
    
      [NUnit.Framework.Test]
      public class Test
      {
        public void NewUC()
        {
          //声明一个UC用户控件
          var uc = ControlDao.UC();
          uc.MyValue = "CSND";
          //上面的代码是没有问题的,
          //但是在只更改ControlDao的前提下
          //有没有办法在这里写成
          var uc = ControlDao.UC() { MyValue = "CSDN" }; //这种写法呢? 谢谢
        }
      }
    }
    
    
    
    2010年11月9日 14:19

答案

  • 貌似是不可以的

      var uc = ControlDao.UC();
    返回的是一个UC对象, MyValue是这个对象的属性。

    但是这样写应该是可以的:

      

     public class test1
    {
      public static test1 hello()
      {
      return new test1();
      }
      public string name
      {
        get;
        set;
      }
      public test1 Name(string test)
      {
        this.name= "hello";
        return this; 
      }
    }
    var te = test1.hello().Name("helo");


    I am fish.

    2010年11月11日 5:36

全部回复

  • 我想是不是可以添加某个特性,像

       public static class ControlDao
        {
            [声明某个特性呢?]
           
    public static UC UC()
            {
                System.Web.UI.Page page
    = new System.Web.UI.Page();
                UC userControl
    = page.LoadControl("~/UC") as UC;
               
    return userControl;
            }
        }

    2010年11月9日 14:19
  • 貌似是不可以的

      var uc = ControlDao.UC();
    返回的是一个UC对象, MyValue是这个对象的属性。

    但是这样写应该是可以的:

      

     public class test1
    {
      public static test1 hello()
      {
      return new test1();
      }
      public string name
      {
        get;
        set;
      }
      public test1 Name(string test)
      {
        this.name= "hello";
        return this; 
      }
    }
    var te = test1.hello().Name("helo");


    I am fish.

    2010年11月11日 5:36