string=“ “与string.Empty的区别

一、意思不同

实际上Empty是string类中的一个静态的只读字段,他du的定义是这样的:public static readonly String Empty = “”;也就是说zhistring.Empty的内部实现是等于””的。
在这里插入图片描述

二、好处不同

"“创建一个对象string.Empty不创建对象参考文献,这使得string.Empty更有效率。在.NET 2.0及更高版本中,所有出现在”“引用相同的字符串文字,这意味着”"等于.Empty,但还是不如.Length == 0,Length == 0是最快的选择,但是.Empty使代码稍微干净一些。

三、用法不同

string.Empty不分配存储空间,""分配一个长度为空的存储空间,所以一般用string.Empty
为了以后跨平台,还是用string.empty,在 C# 中,大多数情况下 “” 和 string.Empty 可以互换使用。

如果判断一个字符串是否是空串,使用if(sString.Empty)和if(s””)的效率是一样的,但是最高效的写法是if(s.Length==0)

string.IsNullOrEmpty的内部实现方式:

public static bool IsNullOrEmpty(string value)
{
if (value != null) { return (value.Length == 0); } return true;}
而string str=null则是表示str未指向任何对象。





string.Empty不分配存储空间
""分配一个bai长度为空du的存储空间
所以一般用zhistring.Empty
为了以后跨平台dao,还是用string.empty
在 C# 中,大多数情况下 “” 和 string.Empty 可以互换使用。比如:
string s = “”;
string s2 = string.Empty;
if (s == string.Empty) {
  //
}


if语句成立
判定为空字符串的几种写法,按照性能从高到低的顺序是:
s.Length == 0 优于 s == string.Empty 优于 s == “”
您关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 “”。


该资源来自网络,只供学习

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果 `FolderBrowserDialog` 的 `RootFolder` 属性设置为 `Environment.SpecialFolder.Desktop`,并且 `SelectedPath` 属性设置为 `string.Empty`,但是未能生效,可能是因为您的应用程序没有足够的权限来访问桌面文件夹。 您可以尝试使用管理员权限来启动您的应用程序,或者将您的应用程序移动到一个不受限制的文件夹中,例如 `C:\Users\Public`。 如果这些方法都无法解决问题,您可以尝试使用 Windows API 来打开文件夹对话框,例如 `SHBrowseForFolder` 函数。这样可以确保您的应用程序可以访问桌面文件夹。以下是一个使用 `SHBrowseForFolder` 函数的示例: ```csharp using System.Runtime.InteropServices; public static class FolderBrowserDialogEx { [DllImport("shell32.dll")] private static extern IntPtr SHBrowseForFolder(ref BROWSEINFO lpbi); [DllImport("shell32.dll", CharSet = CharSet.Unicode)] private static extern bool SHGetPathFromIDList(IntPtr pidl, IntPtr pszPath); [StructLayout(LayoutKind.Sequential)] private struct BROWSEINFO { public IntPtr hwndOwner; public IntPtr pidlRoot; public IntPtr pszDisplayName; public string lpszTitle; public uint ulFlags; public IntPtr lpfn; public IntPtr lParam; public int iImage; } public static string ShowDialog() { BROWSEINFO bi = new BROWSEINFO(); bi.hwndOwner = IntPtr.Zero; bi.pidlRoot = IntPtr.Zero; bi.lpszTitle = "请选择文件夹"; bi.ulFlags = 0x00000040; // BIF_USENEWUI IntPtr pidl = SHBrowseForFolder(ref bi); if (pidl != IntPtr.Zero) { StringBuilder path = new StringBuilder(260); if (SHGetPathFromIDList(pidl, path)) { return path.ToString(); } } return string.Empty; } } ``` 您可以使用以下代码调用 `FolderBrowserDialogEx.ShowDialog` 方法来显示文件夹对话框: ```csharp string selectedPath = FolderBrowserDialogEx.ShowDialog(); ``` 这将显示一个文件夹对话框,允许用户选择文件夹,并返回所选文件夹的路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值