一个比较久都存在的问题,但是从来都没有认真想过;
当一个类下面有个方法,运行就可以处理基类本身的问题,和ToString()的作用一样。这个有些难表达o(∩_∩)o...类有个方法,用来处理传到类的数据,就像object.ToString()一样,ToString()方
法把包含他的基类的数据处理了,注意!ToString()是在object之下的!也就是当调
用的时候是作为一个类调用的。问题!如何获取当前类的值??外面的参数是如何传入类的?!!贴切的例子:
textBox.Text ="问题  ";//后面有空格
textBox.Text.Trim(); //后面的空格去掉了,很方便
或者
object.ToString().Trim();//最终要这个效果,因为函数返回值是唯一的
或者
object.Remove();//已经可以作用基类了我的用途:
最近为了方便,我自己封装了Excel的操作类库,我用一个方法完成了单元格的合并和写入,
但是写到格式的方法,我不想用另外的一个函数来搞格式,我希望(写入合并方法).格式()
的样子来达到居中效果,可是弄了3个小时都没有成,我就纳闷了,MS怎么做的?!

解决方案 »

  1.   

    在他的内部,object是所有内的基类,时面的方法是.net frameset 的所有公共方法
    它下面的基类,重写了基类的方法,实现了的类的多态,自然能取到值呀,这面向对象最基本的了如果是我说的这样,你的面向对象还得要加强
      

  2.   

    ^_^!真的很难表达啊。这样的,我做了封个操作Excel的类,类里面有CellWrite(cell1,cell2)的方法,
    作用是用来写单元格的,现在如果我要将这个写好的单元格居中显示,可以通过加
    CellCenter(cell1,cell2)
    {
       ......//里面是居中的代码
    }
    来完成,但是感觉这样不方便,因为写次单元格要调两个函数(又不能写到一起,因
    为有的没有必要居中),所以希望写的像
    CellWrite(cell1,cell2).CellCenter();这样的形式
    如果不想居中用CellWrite(cell1,cell2)就可以了但是如果要有后面的后缀处理,前面必须非空的返回值,所以自己写了个类,让
    CellWrite(cell1,cell2)方法属于这个类型,但又不知道如何让
    CellCenter();(此时在新类中)操作本身的类。感觉像object.Remove()一样,处理自身事务。
      

  3.   

    CellWrite(cell1,cell2).CellCenter();CellWrite返回所操作的单元格就可以了。
      

  4.   

    你是要这样的效果吗?    public class Excel操作类
        {
            public Excel操作类 合并方法()
            {
                合并方法();
                return this;
            }        public void 格式()
            {
              //....
            }
        }
    使用方法            Excel操作类 ex = new Excel操作类();
                ex.合并方法().格式();
      

  5.   

    ToString()就是Object的一个静态方法。
    而 .Trim()则是String基类的静态方法。
    在tostring()后返回了一个string对象,再.trim()是在string对象上的操作!
      

  6.   

    我觉得7楼的说的就很有道理,把你要操作的EXCEL看作一个对象,然后把它的属性(如cell,sheet...),
    以及一些方法(像你的关于合并,格式化...)等等封装到这个对象里面,那么,你想要用这个对象的东西,就先必须是这个对象的一个实例,如果想像object.ToString().Trim()......这样能一直调用下去,你的方法的返回值也应该是这个对象。good luck
      

  7.   

    多谢各位关注
    问题是怎么返回,Excel的单元格信息是用string放入的如:"A1"
    但是我要的是区域的范围,返回值只一个很不够,我也想过用结构体,不过也不成。可能我表达能力减退,昨天和朋友讨论也说了10分钟他才懂。
    我还是写一段吧。
    public class ExcelCtrl 

            public Alignment CellWrite(string cell1,string cell2)
            { 
                //....合并方法 
                return ***; //返回什么不清楚,否则都不在这里问了,也是我要问的地方
            } 
    }//排列类,两个方法不是一路的
    public class Alignment
    {
            public void CellCenter()
            {
                //...这个将Alignment对象居中,注意,谁调它,它让谁居中!
            }
    }其实这些方法大家每天都在用,像dataGridView这个是个类型,有public bool Contains()这个函数
    dataGridView.Contains()就符合bool类型的要求,可以用类型下的任何个公用函数,同时也可以用
    ToString()获得字符的值,ToString()也是谁调它,它就返回谁的值。我的问题说白了就是:
    类似于Tostring()的方法怎么写?
      

  8.   


    public class ExcelCtrl 

            public Alignment CellWrite(string cell1,string cell2)
            { 
                //....合并方法 
                Alignment alignment=new Alignment(cell1,cell2,你的excel文档对像)
                return alignment; 
            } 
    }//排列类,两个方法不是一路的
    public class Alignment
    {
            private string cell1;
            private string cell2;
            private object excel文档;
            public Alignment()
            {}
            public Alignment(string cell1,string cell2,object 你的excel文档对像)
            {
                this.cell1=cell1;
                this.cell2=cell2;
                this.excel文档=文档对像;
             }
            public void CellCenter()
            {
                //...这个将Alignment对象居中,注意,谁调它,它让谁居中!
            }
    }
      

  9.   

    经典,一天东西写多了总是走极端,这个方法的确没有想到,多谢wxy0401点醒,结贴散分。o(∩_∩)o...