我知道Powershell非常强大,因为它是一种脚本语言,您可以访问整个.Net框架(这就是我所知道的)。但是当我能用C#编写完全相同的东西时,我很难理解Powershell的大肆宣传是什么?
答案 0 :(得分:16)
我认为你问的是错误的问题。它应该是:“当我可以使用Powershell对相同的东西进行编码时,我为什么要使用C#?”
这是脚本与重新编译的软件的旧论点。脚本解决方案更灵活(您只需要记事本来编辑脚本,不需要编译器)。
对于一个小任务,编写,部署和更改脚本比在Visual Studio中创建项目,编译,将其部署到目标,更正代码,再次编译,再次部署,编写更快...... < / p>
对于任何更大的任务,我绝对更喜欢编译我的代码的IDE。仅在破坏的构建上的错误消息对于找到原因是非常有帮助的。 (在编译软件中运行时效率通常更好,但是对于现代CPU来说,它可以达到几毫秒的差异,因此对于大多数项目来说,它不再重要。)
您可以在C#或Powershell中执行任何类型的项目。这并不意味着你应该。
答案 1 :(得分:8)
当不使用Powershell作为shell而是使用编程环境时,您可以将Powershell视为一种交互式.NET游乐场。我从不使用Powershell进行GUI原型设计,但我过去曾使用过它来使用.NET对象及其解决特定问题的方法。只需更改命令行比每次进行更改时执行编辑/保存/编译/运行循环更有效率。
此外,两种语言的适当域名都非常不同。 Powershell的核心是一个管理和自动化工具,可以简化对许多事物的访问,这些事情可能更难以从其他环境中使用,例如Registry,证书存储,WMI等。
您可能不想使用Powershell编写企业级数据库应用程序,并且您可能不希望编写C#程序只是为了复制文件系统中的某些内容。
答案 2 :(得分:1)
为什么你还在使用C#,ILASM可以用更多的控制来做所有事情,而你只是在BCL中调用东西。
答案 3 :(得分:0)
我将您的问题概括为以下内容:
我为什么要使用(更高级别的语言 我对此知之甚少(更低) 水平语言我知道更多关于)?
更高级语言的要点是抽象常见任务,以便更快地编写。许多提出这个问题的人都无法想到更高层次语言的这种好处,因为他们已经习惯了他们的低级语言。
最后,这一切都取决于你是否愿意学习更高层次语言的抽象,希望你能够像下层语言一样精通它。