让我们说我有一个命名空间GPS,我可以在这里调用GPS.devise.coordinates.getLoc这样的东西,它只会返回我设计的GPS坐标。
如何将所有“GPS.devise.coordinates”详细信息分配给变量,例如“我”?
所以我可以改为使用Me.getLoc。
提前致谢
答案 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)功能。