use*_*105 5 powershell overriding winforms
我在网上可以找到关于这样做的所有内容是覆盖cmdlet,但我需要覆盖一个Windows窗体事件.这是我需要的C#等价物:
protected override Point ScrollToControl(Control activeControl)
{
return this.AutoScrollPosition;
}
Run Code Online (Sandbox Code Playgroud)
他们说你只是在相同的范围内使用函数的名称,它会自动覆盖它,但这对我不起作用.
如果你指的是一种方法,Chris Dent的回答很好地涵盖了这一点!
对于本机PowerShell cmdlet /函数,我将在此处从ServerFault复制我的答案:
是的,您可以Get-ChildItem在Powershell中覆盖或任何其他cmdlet.
如果在同一范围内创建具有相同名称的函数,则将使用您的函数.
例:
Function Get-ChildItem {
[CmdletBinding()]
param(
# Simulate the parameters here
)
# ... do stuff
}
Run Code Online (Sandbox Code Playgroud)
创建自己的函数,然后为该函数创建一个别名,其名称与要覆盖的cmdlet相同.
例:
Function My-GetChildItem {
[CmdletBinding()]
param(
# Simulate the parameters here
)
# ... do stuff
}
New-Alias -Name 'Get-ChildItem' -Value 'My-GetChildItem' -Scope Global
Run Code Online (Sandbox Code Playgroud)
这种方式很好,因为在不踩踏内置函数的情况下测试函数更容易,并且可以控制cmdlet何时被覆盖或不在代码中.
要删除别名:
Remove-Item 'Alias:\Get-ChildItem' -Force
Run Code Online (Sandbox Code Playgroud)
about_Command_Precedence列出了解释不同类型命令的顺序:
如果未指定路径,Windows PowerShell在运行命令时将使用以下优先顺序:
- 别号
- 功能
- 小命令
- 本机Windows命令
| 归档时间: |
|
| 查看次数: |
2413 次 |
| 最近记录: |