这两种方法有什么区别
Convert.ToBoolean()
和
Boolean.Parse()?
有没有理由使用其中一个?
另外,还有其他type.Parse()方法需要注意吗?
谢谢,
马特
System.Math.DivRem()和%运营商有什么区别?
我很好奇是否有人可以描述如何通过绑定实例枚举可用的ADSI方法[ADSI]$instance.psbase.Invoke()?
研究已经出现"参考ADSI接口的文档".但我对这个答案并不是特别满意.
如果我实例化:
[ADSI]$lhost_group="WinNT://./Administrators,group"
Run Code Online (Sandbox Code Playgroud)
然后尝试:
@($lhost_group.psbase.Invoke("Members")) | foreach-object {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}
Run Code Online (Sandbox Code Playgroud)
Powershell将返回组中包含的每个对象的outof GetProperty("Name").
如何枚举通过任何给定ADSI接口可用的所有可用方法和属性?
这从吉文·利维答案就是语法的另一个例子[ADSI]$_.GetTypes().InvokeMember()和[ADSI]$_.psbase.Invoke()使用.
我有一个单维数组的项目声明和初始化为:
string[] SubDirectorylist = Directory.GetDirectories(TargetDirectory);
Run Code Online (Sandbox Code Playgroud)
我想扭转成员并找到Enumerable.Reverse<TSource>().
LINQ的反向实现有哪些优势(如果有的话)Array.Reverse()?
我想,我正在寻找既有技术又有见解的答案.
变量名称需要多长时间?
我总是试图让我的变量尽可能短,同时保持适当的意义水平.但是,随着一些"子例程"的复杂性增加,我发现需要创建更长的变量名来继续让它们变得有意义.变量的长度是否会影响性能?
例如,我刚刚使用了MBReadPerSecondAverageAfterLastFlushToLog,这与我希望自己来的supercalifragilisticexpialidocious非常接近.
谢谢,
马特
ps对不起,如果你现在有一首Mary Poppins歌曲.
我最近在我们的文件服务器上重新设计了安全性,将大部分完全控制标记为修改.现在我的开发人员告诉我,只要他们使用GENERIC_ALL打开文件(CreateFile()例如),他们就会收到拒绝访问的消息.
经过研究,似乎没有任何迹象表明这GENERIC_ALL不仅仅是GENERIC_EXECUTE+ GENERIC_WRITE+ GENERIC_READ; 然而,这似乎并非如此,因为开发人员能够添加三个常量值,并使用它CreateFile().
所以,我问......究竟GENERIC_ALL做了什么?
谢谢,
马特
我经常编写事物列表并对它们执行枚举以执行一些get/set.
我讨厌枚举哈希表,因为每当我必须这样做时,我必须向后弯曲以处理hashtable对象.
$hashtablelistofitems = @{}
$hashtablelistofitems.add("i'm a key", "i'm a value")
foreach ($item in $hashtablelistofitems.keys) {
$item
$hashtablelistofitems.item($item)
}
Run Code Online (Sandbox Code Playgroud)
相反,我通常会恢复使用具有两个noteproperties的自定义对象的单维数组.
$array = @()
$listofitems = "" | select key,value
$listofitems.key = "i'm a key"
$listofitems.value = "i'm a value"
$array += $listofitems
foreach ($item in $listofitems) {
$item.key
$item.value
}
Run Code Online (Sandbox Code Playgroud)
我为什么要使用hashtable这种方法呢?仅仅因为它只保证每个键的单个值?
我在REG_SZ使用以下方法获取值时遇到了一些奇怪的麻烦:
(get-itemproperty -Path "Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\VLC media player" -Name UninstallString).UninstallString
(get-itemproperty -Path "Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\VLC media player" -Name UninstallString).UninstallString
get-itemproperty : Cannot find path 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\VLC media player' because it
does not exist.
At line:1 char:2
+ (get-itemproperty -Path "Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (HKEY_LOCAL_MACH...LC media player:String) [Get-ItemProperty], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemPropertyCommand
Run Code Online (Sandbox Code Playgroud)
此方法适用于另一个REG_SZ没有问题的方法,但是当我在下面调用许多键时,Uninstall它将失败。
具体来说,它适用于:
(get-itemproperty -Path "Registry::HKEY_CURRENT_USER\Software\Microsoft\Command Processor" -Name autorun).AutoRun
这两个数据条目都在我的系统上存在,如regedit中所示。
但是,非常有趣的是,它们在以下结果中不存在:
Get-ChildItem "Registry::HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\uninstall\"
Run Code Online (Sandbox Code Playgroud)
还有更多的“缺失”键。这似乎是我不熟悉的一些奇怪的注册表名称空间虚拟化(类似于HKEY_CLASSES_ROOT)?
我正在尝试将输入数据的验证移至 get;set; 中 类结构的。
public void PlotFiles()
{
List<DTVitem.item> dataitems;
DTVitem.item i;
DateTime.TryParse("2012/01/01", out i.dt);
DateTime.TryParse("04:04:04", out i.t);
int.TryParse("455", out i.v);
dataitems.Add(i);
}
Run Code Online (Sandbox Code Playgroud)
该结构在单独的类中声明(可能没有必要):
public partial class DTVitem
{
public struct item
{
public DateTime dt;
public DateTime t;
public int v;
}
}
Run Code Online (Sandbox Code Playgroud)
每次我设置DTVitem.item.dt、DTVitem.item.t或 时DTVitem.item.v,我希望它执行相关操作.TryParse()来验证属性内容。
但是,当我尝试按如下方式使用 TryParse() 时(试图理解MSDN 中的这个示例):
public partial class DTVitem
{
private DateTime _datevalue;
public string dt
{
get { return _datevalue; }
set { DateTime.TryParse(value, …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一种方法来查找要与EWS连接的Exchange Server的Exchange Server版本。
很明显,读取对EWS请求的响应XML的内容包含此信息,如此处所述。
我很好奇我是否必须测试并处理错误,或者是否还有另一种“侵入性较小”的方法来查找Exchange版本。
如何找到尝试通过EWS访问的Exchange Server的版本,以便可以针对EWS托管的API活动对其进行设置?
我目前正在使用以下方法,但是我无法想象这是最有效的方法吗?
foreach (ExchangeVersion exchver in Enum.GetValues(typeof(ExchangeVersion)))
{
//Console.WriteLine(exchver.ToString());
try
{
ExchangeService service = new ExchangeService(exchver);
//Do stuff here
}
catch (Exception e)
{
Console.WriteLine("Server is not " + exchver +". Trying next ExchangeVersion.");
}
}
Run Code Online (Sandbox Code Playgroud) 我已经对各种转换方法进行了一些研究,并且已经使用了explicit或者implicit operators.
注意到它System.Security.SecureString是一个sealed类(它不能从中继承),是否可以编写一个explicit或者implicit operator能够在a System.Security.SecureString和a 之间执行转换System.String(利用此处描述的方法).
例如,我知道你必须operator在被转换对象的(部分)类中编写.因此,我认为最好的方法是继承该类,并编写必要的operators.
是否有可能a)使用的执行转换explicit或implicit operator一System.Security.SecureString到System.String,B)执行一个类的对象是谁的类是转换sealed?
如果没有,除了使用类方法之外还有另一种方法可以执行转换吗?
假设我是微软产品的消费者,请提供实用的答案.
是否可以使用FileSystemWatcher查找正在更改文件的PID或进程名称?