Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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#_.net - Fatal编程技术网

C# 这段代码在做什么?

C# 这段代码在做什么?,c#,.net,C#,.net,有人能给我解释一下下面几行代码的作用吗 dynamic shellApplication = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application")); string path = System.IO.Path.GetDirectoryName(filePath); string fileName = System.IO.Path.GetFileName(filePath); dynamic directory

有人能给我解释一下下面几行代码的作用吗

dynamic shellApplication = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"));

string path = System.IO.Path.GetDirectoryName(filePath);
string fileName = System.IO.Path.GetFileName(filePath);

dynamic directory = shellApplication.NameSpace(path);
dynamic link = directory.ParseName(fileName);

dynamic verbs = link.Verbs();
我搜索了msdn库,但无法真正理解它的功能

这不是完整的代码,但我理解其余部分,这只是我正在努力解决的部分。

这将创建
“Shell.Application”
COM对象,然后使用
动态
对其调用方法

它获取可以在文件上调用的所有谓词


这基本上是
脚本编写
。有关示例,请参阅和。

看起来它正在检索与特定程序关联的shell操作。例如打开、打印、编辑等

打开regedit并导航到HKEY\U LOCAL\U MACHINE\SOFTWARE\Classes\textfile


展开它并查看Shell键。代码应该返回类似的动词。

要扩展Aliostad的答案,C#中的
dynamic
关键字允许您调用未知类型的成员和方法。这意味着使用
动态
变量将无法获得intellisense,因为编译器不知道该变量实际包含哪些成员或方法。这些都是在运行时解决的


这里有一个。

假设代码得到了一个.exe的操作,它还会包括“锁定到任务栏”操作吗?@Zrean Tofiq:不知道,但我猜不会。我相信锁定到任务栏方法是在系统级别定义的。好的,谢谢,但它确实有锁定到任务栏的方法。我现在正在使用它,但我只是想看看我们在同一条轨道上=)你所说的“文件中可以调用的所有动词”是什么意思?在这种情况下,动词是什么?在那个特定的文件上没有。看我提到的链接。不清楚你在问什么。您是在问代码的目的是什么,或者“动态”是如何工作的,或者是什么?让你困惑的到底是什么?让我困惑的是:调用此代码的目的是什么?它给你的最终结果是什么?最后的结果是动词变量。代码的第一行是什么?什么是“shell.application”?“shell.application”是在此处创建此对象的方式:。这里记录了“动词”成员:耶!!!!我明白了=动词是目标文件右键单击菜单中列出的所有命令。这意味着我可以通过遍历verbs变量并使用verbs.Item(i).DoIt()从应用程序中执行这些命令中的任何一个;方法!谢谢大家的帮助!我在理解dynamic关键字时没有遇到任何大问题。我的问题是shell.application部分,我想知道谓词变量是什么以及它来自哪里。不过还是要谢谢你