C#/.NET 中的文件级别的函数范围?

问题描述 投票:0回答:4

我有很多很多函数(估计有 100 多个),其中一半以上只在其定义的文件中需要。有没有办法定义函数,使其范围在文件级别?

c# .net scope
4个回答
3
投票

首先; C# 有方法,没有函数;-p

方法的作用域为类型;如果您试图限制为file,我是否可以假设这是一个部分类(或者可能是一组嵌套类型),它被(/正在)分割为多个文件?如果不是(并且它是单个文件),只需将方法设为私有即可。如果当前是部分的,则否:无法避免同一类型的不同文件之间的交叉调用。您可以为每个部分创建一些嵌套的静态类型,但这看起来丑陋、老套,而且是错误的。

如果它没有主动伤害你 - 也许不要改变它?


2
投票

不。没有办法限制对单个“文件”的访问。您可以将所有功能放在一个类中,并制作您想要保护的功能

private
。或者,您可以将所有函数放入另一个程序集中,并使受保护的函数
internal


0
投票

您可以使用

internal
将范围限制为程序集,但不能限制为文件级别。


0
投票

您现在可以使用 file 关键字 创建一个类,其中公开的函数仅对文件中的其他项目可见。

非文件作用域类中的函数似乎存在任意限制,即使该方法被声明为私有,也无法返回文件作用域类型。

措辞是“文件本地类型不能是比文件范围更可见的任何成员的返回类型或参数类型。”

© www.soinside.com 2019 - 2024. All rights reserved.