不完全类型:修订间差异
外观
删除的内容 添加的内容
ShiningRay(留言 | 贡献) 无编辑摘要 |
Ohtashinichiro(留言 | 贡献) 小 加入{{Copy edit}}和{{Unreferenced}}标记 |
||
(未显示11个用户的11个中间版本) | |||
第1行: | 第1行: | ||
{{Copy edit|time=2023-07-22T06:55:54+00:00}} |
|||
{{Unreferenced|time=2023-07-22T06:55:54+00:00}} |
|||
在[[计算]]中,一个'''不完全类型'''是一种特殊的[[数据类型]],它的定义会跨越多个源文件。在[[面向对象编程]]中会由于一些不同的原因用到:性能和成本常常会阻止使用几个分离的类;代码生成工具的使用越来越多,而将机器生成的代码和程序员写的代码分离开来,则会十分方便。 |
在[[计算]]中,一个'''不完全类型'''是一种特殊的[[数据类型]],它的定义会跨越多个源文件。在[[面向对象编程]]中会由于一些不同的原因用到:性能和成本常常会阻止使用几个分离的类;代码生成工具的使用越来越多,而将机器生成的代码和程序员写的代码分离开来,则会十分方便。 |
||
==C#中的不完全类型== |
|||
不完全类型是C# 2.0的一个特性。用于建立一个不完全类定义的语法如下: |
不完全类型是[[C♯|C#]] 2.0的一个特性。用于建立一个不完全类定义的语法如下: |
||
'''SourceFile1.cs''' |
'''SourceFile1.cs''' |
||
<syntaxhighlight lang="csharp"> |
|||
⚫ | |||
<code> |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
// ... |
|||
} |
|||
⚫ | |||
⚫ | |||
</syntaxhighlight> |
|||
⚫ | |||
</code> |
|||
'''SourceFile2.cs''' |
'''SourceFile2.cs''' |
||
<syntaxhighlight lang ="csharp"> |
|||
<code> |
|||
public partial class ExampleClass |
|||
{ |
|||
public void SomeOtherFunction() |
|||
{ |
|||
// ... |
|||
} |
|||
} |
|||
</syntaxhighlight> |
|||
</code> |
|||
在 C# 2.0之前的版本,这会造成一个编译错误,因为同样的类重复定义了两次(同样也因为<code>partial</code>关键字)。在C#2.0中,它会被看作为一个单一的类定义。其它C#2.0的新特性包括[[匿名方法]]、[[迭代子]]和[[泛型]](类似于C++中的[[模板]])。 |
在 C# 2.0之前的版本,这会造成一个编译错误,因为同样的类重复定义了两次(同样也因为<code>partial</code>关键字)。在C#2.0中,它会被看作为一个单一的类定义。其它C#2.0的新特性包括[[匿名方法]]、[[迭代子]]和[[泛型]](类似于C++中的[[模板 (C++)|模板]])。 |
||
使用不完全类对生成的代码没有任何影响((unless editor meta-data is emitted). |
使用不完全类对生成的代码没有任何影响((unless editor meta-data is emitted). |
||
==C/C++中的不完全类型== |
|||
⚫ | |||
C/C++中不完全类型有三种不同形式: void、未指定长度的数组以及具有非指定内容的结构和联合。使用不完全类型的指针或引用,不需要知道类型的全部内容。另外也用于解决对象类型及其成员之间的类型循环依赖。 |
|||
⚫ | |||
[[Category:数据类型]] |
[[Category:数据类型]] |
||
[[en:Partial type]] |
2023年7月22日 (六) 06:55的最新版本
此條目没有列出任何参考或来源。 (2023年7月22日) |
在计算中,一个不完全类型是一种特殊的数据类型,它的定义会跨越多个源文件。在面向对象编程中会由于一些不同的原因用到:性能和成本常常会阻止使用几个分离的类;代码生成工具的使用越来越多,而将机器生成的代码和程序员写的代码分离开来,则会十分方便。
C#中的不完全类型
[编辑]不完全类型是C# 2.0的一个特性。用于建立一个不完全类定义的语法如下:
SourceFile1.cs
public partial class ExampleClass
{
public void SomeFunction()
{
// ...
}
}
SourceFile2.cs
public partial class ExampleClass
{
public void SomeOtherFunction()
{
// ...
}
}
在 C# 2.0之前的版本,这会造成一个编译错误,因为同样的类重复定义了两次(同样也因为partial
关键字)。在C#2.0中,它会被看作为一个单一的类定义。其它C#2.0的新特性包括匿名方法、迭代子和泛型(类似于C++中的模板)。
使用不完全类对生成的代码没有任何影响((unless editor meta-data is emitted).
C/C++中的不完全类型
[编辑]C/C++中不完全类型有三种不同形式: void、未指定长度的数组以及具有非指定内容的结构和联合。使用不完全类型的指针或引用,不需要知道类型的全部内容。另外也用于解决对象类型及其成员之间的类型循环依赖。