这就是问题:
- 创建一个类并将某些属性或方法的访问权限设置为私有。
使用
doc
创建的类的命令。这将根据您的评论自动生成文档并在内置帮助浏览器中显示。doc classname
问题是私有属性和方法的文档没有显示在帮助浏览器中。有没有办法克服这个问题?
这就是问题:
使用doc
创建的类的命令。这将根据您的评论自动生成文档并在内置帮助浏览器中显示。
doc classname
问题是私有属性和方法的文档没有显示在帮助浏览器中。有没有办法克服这个问题?
此行为是设计使然 - 自动生成的文档适用于该类的用户,他们只能访问公共属性和方法。
我知道没有办法改变这种行为。
你可以试试:
doc
命令。您的doc
命令应该接受与内置命令完全相同的输入doc
,检测其输入是否对应于您的类/方法/属性等,如果是,则显示它们的文档,否则将其输入直接传递给内置的doc
. 确保您的命令在路径上的内置命令之前。所以我花了大约 10 分钟使用调试器,从一个函数跳到下一个函数,跟踪一个简单doc MyClass
调用的执行路径。
最终它把我带到了以下文件:
fullfile(toolboxdir('matlab'),'helptools','+helpUtils','isAccessible.m')
在为类生成文档的过程中调用此函数,以确定类元素(包括方法、属性和事件)是否可公开访问且不可隐藏。此信息稍后用于“剔除”元素。
因此,如果您愿意修改 MATLAB 的内部函数,并且希望文档始终显示所有方法和属性而不管其范围如何,只需将函数重写为:
function b = isAccessible(classElement, elementKeyword)
b = true;
return
% ... some more code we'll never reach!
end
当然,不要忘记备份文件,以防您以后改变主意:)
(在最近的 Windows 上,您需要使用管理权限执行此步骤)
作为测试,获取此页面中定义的示例类并运行doc someClass
. 结果: