大家好,我用的.NET2005,有2个问题,请大虾们指教:

1.读取注册表键值,网上搜的结果居然很不好找,大致有两种,一是用OpenSubKey一级一级打开,最后用GetValue获取,还一个例子是直接指定一个长路径一次打开,比如OpenSubKey(@"system\CurrentControlSet\Services\Tcpip\Parameters\Winsock")
我想如果要用第一种方法,也未免说明C#.NET太不怎么地了吧?
难道是老版本的FrameWork的原因?
加不加这个@得到一样的结果,这个@是必须的吗?是为了适应更广义的情况而必须加的符号吗?还是可以省略的?

2.当初一些文章狂吹C#怎么怎么好,现在看来我觉得微软太不厚道,我觉得VB比C#强的地方也很多,我以后打算慢慢写出来,希望大家斧正(有些可能是我没找到C#强大的用法)。就比如这个,VB一个GetSetting语句实现读注册表,C#要声明一个类,初始化,打开,读,再关闭,至少4句话。很严谨,但是很啰嗦。[b]没有其它现成封装好的函数可以直接调用吗?[/b]

我的C#代码如下:
string connString;
RegistryKey regRead = Registry.CurrentUser;
regRead = regRead.OpenSubKey(@"Software\\VB and VBA Program Settings\\UDBS\\Database");                        
if (regRead == null)
    connString = "Driver={SQL Server};Server=szsldb;database=UDBS_Modules;uid=eng;pwd=oam;";
else
{
    connString = regRead.GetValue("Network Connection").ToString();
    regRead.Close();
}
VB代码如下:
connString = GetSetting("UDBS", "Database", "Network Connection")
    If connString = "" Then connString = "Driver={SQL Server};Server=poamserv;database=UDBS_Modules;uid=process;pwd=process;"

差距啊!居然还有人狂贬VB,杯具啊!
等我精通C#后我一定客观写篇文章讲讲我的体会,就从现在开始一点一点积累吧。