Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以通过合并类来缩短呼叫线路?_C#_Unity3d - Fatal编程技术网

C# 是否可以通过合并类来缩短呼叫线路?

C# 是否可以通过合并类来缩短呼叫线路?,c#,unity3d,C#,Unity3d,我正在为数据编写视图类,我将调用数据类中的多个方法,所以我想通过删除数据类的名称来缩短调用行,只编写方法和字段,就像它们是视图类的一部分一样 公共类数据 { 公共国际领域1; 公共字符串字段2; public void ClearData() { 字段1=0; 字段2=“”; } } 公共班机 { 公共图书馆{ var data=DataLoader.LoadData();//从其他地方加载数据 using(data)//这在c#中不起作用,我使用编写是因为我希望它能像这样工作 { Consol

我正在为数据编写视图类,我将调用数据类中的多个方法,所以我想通过删除数据类的名称来缩短调用行,只编写方法和字段,就像它们是视图类的一部分一样

公共类数据
{
公共国际领域1;
公共字符串字段2;
public void ClearData()
{
字段1=0;
字段2=“”;
}
}
公共班机
{
公共图书馆{
var data=DataLoader.LoadData();//从其他地方加载数据
using(data)//这在c#中不起作用,我使用编写是因为我希望它能像这样工作
{
Console.WriteLine(field1.ToString());//通过只写入field1来访问data.field1,因为此代码行在使用(数据)区域内
Console.WriteLine(field2);//通过只写入field2来访问data.field2,因为此代码线位于using(data)区域内
ClearData();//通过只写入ClearData()来访问data.ClearData方法,因为此代码行位于使用(数据)区域内
}
}
有可能用c写这样的东西吗

另外,我知道这是很难理解的糟糕代码,但我想知道有没有可能做到这一点。

不,你不能这样做

field1.ToString()
如果不指定“field1”、“field2”等所在的对象,编译器无法知道它们是什么

using (data)
不像在其他一些语言中那样,它说“将此对象用于所有字段引用”,然后编译器从中计算出来

你会写这样的东西

using (var data = DataLoader.LoadData())
{
  Console.WriteLine(data.field1.ToString()); 
  Console.WriteLine(data.field2); 
  ClearData(); **<<< nothing like this exists**
}
使用(var data=DataLoader.LoadData())
{
Console.WriteLine(data.field1.ToString());
控制台写入线(数据字段2);

ClearData();**不,它不是。您只能使用..为
静态
方法/字段执行此操作。但这似乎不是您所追求的…还请注意,仅用作类型实例周围的“安全”包装器..我知道,这可能只是一个示例,但可以肯定;)