[英]C# Assign a Variable to a Class call
可以说我有一个命名空间GPS,在这里我可以调用GPS.devise.coordinates.getLoc之类的东西,它只会返回我设计的GPS坐标。
如何将所有冗长的“ GPS.devise.coordinates”分配给诸如“ Me”之类的变量?
所以我可以改用Me.getLoc。
提前致谢
您可以公开一个返回它的属性,如下所示:
public Point getLoc { get { return this.device.coordinates.getLoc;}}
假设getLoc()是静态的,请尝试使用以下命令:
using Me = GPS.devise.coordinates;
通常用于缩短类具有通用名称的名称空间。 VSTO库是一个很好的示例,其中大多数名称空间都有一个Application类。
“我”是哪一类的?
如果说“我”是人类
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;
如果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)功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.