C#为类调用分配变量

时间:2009-09-10 12:20:34

标签: c#

让我们说我有一个命名空间GPS,我可以在这里调用GPS.devise.coordinates.getLoc这样的东西,它只会返回我设计的GPS坐标。

如何将所有“GPS.devise.coordinates”详细信息分配给变量,例如“我”?

所以我可以改为使用Me.getLoc。

提前致谢

4 个答案:

答案 0 :(得分:2)

您可以公开返回它的属性,如下所示:

 public Point getLoc { get { return this.device.coordinates.getLoc;}}

答案 1 :(得分:1)

假设getLoc()是静态的,请尝试使用以下命令:

using Me = GPS.devise.coordinates;

这通常用于缩短类具有通用名称的命名空间。签出的一个很好的例子是VSTO库,其中大多数命名空间都有一个Application类。

答案 2 :(得分:0)

什么课程会'我'?

如果'我'是个人类

public class Person
{
    public Person(){}

    private GPS _gps = new GPS();
    public Coords getLoc
    {
        get{
            return _gps.devise.coordinates.getLoc;
        }
    }
}


Person Me = new Person;
Coords MyLocation = Me.getLoc;

答案 3 :(得分:0)

如果getLoc是属性,则可以执行此操作:

var me = GPS.devise.coordinates.getLoc;

但是,我怀疑,因为你问,getLoc是一种方法。在这种情况下,您可以将方法组分配给委托。在C#3.0中,您可以这样做:

var me = () => GPS.devise.coordinates.getLoc();

这将使您能够得到这样的坐标:

var coordinates = me();

me的替代声明是:

Func<Coords> me = GPS.devise.coordinates.getLoc;

假设getLoc的返回类型为Coords

me的这两个声明相同 - 它只是两种不同的写作方式。


如果您只是想要coordinates的简写,因为它有多个您想要调用的方法,那将非常简单。虽然我无法从您的示例中判断coordinates是字段还是属性,但这并不重要,因为在这两种情况下您只需将对象分配给新变量:

var coords = GPS.devise.coordinates;

然后,您可以调用coords变量上的方法:

var loc = coords.getLoc();
var satTime = coords.getSatTime();

这适用于任何版本的C#(甚至1.0),稍加修改,而不是var,您需要显式声明变量的类型。 var是C#3.0(Visual Studio 2008)功能。