我是Linux的新手(多年来一直生活在MS世界).我以为我会尝试不同的东西,比如linux下的ruby on ruby.一直试图设置开发机器,我必须说,它是非常压倒性的!这是我到目前为止所做的,以及我目前无法弄清楚的问题:
已安装的Linux Mint 15(这是一个糟糕的选择吗?我问的唯一原因是我到目前为止遇到的所有困难)
运行更新管理器并安装所有更新.
安装git
sudo apt-get install git
Run Code Online (Sandbox Code Playgroud)
安装rbenv
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
将ruby-build安装为rbenv插件
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
Run Code Online (Sandbox Code Playgroud)
安装opensssl(如果我不这样做,ruby安装将失败)
sudo apt-get install libssl-dev
Run Code Online (Sandbox Code Playgroud)
安装红宝石
rbenv install 2.0.0-p247
Run Code Online (Sandbox Code Playgroud)
设置我的ruby版本
rbenv global 2.0.0-p247
Run Code Online (Sandbox Code Playgroud)
安装导轨
gem install rails
Run Code Online (Sandbox Code Playgroud)
这失败了
Fetching: i18n-0.6.5.gem (100%)
Successfully installed i18n-0.6.5
ERROR: While executing gem ... (OpenSSL::SSL::SSLError)
SSL_connect returned=1 errno=0 state=SSLv3 read server hello A: wrong version number
Run Code Online (Sandbox Code Playgroud)
显然,ssl lib还有一些不太合适的东西吗?或者我在某个地方采取了错误的步骤?请帮忙,谢谢!
我有以下代码:
var query = Database.SqlQuery<int>(@"
SELECT CASE WHEN EXISTS (
SELECT 1
FROM v$session v, UsersXxxx u
WHERE v.Client_Info LIKE u.UserName || ';%'
AND v.UserName = :schemaName
AND u.SchemaName = :schemaName
AND v.module = 'XXXX.exe'
AND u.UserKey = :userKey)
THEN 1 ELSE 0 END AS LoggedIn FROM DUAL",
new OracleParameter("schemaName", schemaName),
new OracleParameter("userKey", userKey));
return query.First() != 0;
Run Code Online (Sandbox Code Playgroud)
这产生了"ORA-01008:并非所有变量都受到约束".我怀疑变量被绑定的方式出现了问题并最终尝试了这个:
var query = Database.SqlQuery<int>(@"
SELECT CASE WHEN EXISTS (
SELECT 1
FROM v$session v, UsersXxxx u
WHERE v.Client_Info LIKE u.UserName || …Run Code Online (Sandbox Code Playgroud) 我有一个 ContextMenuStrip,我想在设计器中为其 ToolStripMenuItems 分配事件处理程序。如果我选择编辑项目集合,我可以编辑我添加的 ToolStripMenuItems 的属性,但我不知道如何编辑事件处理程序。我可以用代码来做,但这似乎很愚蠢。在设计器中应该有办法做到这一点。我缺少的明显的东西是什么?
编辑: ContextMenuStrip 位于继承 TreeView 的自定义控件中。

我必须选择 Edit Items,在那里我可以看到项目的属性,但看不到事件。
我创建了一个扩展方法,以避免输入类似下面的"if"的代码:
Guid? nullableGuid = something;
if (!nullableGuid.HasValue || nullableGuid == Guid.Empty)
{
// do stuff
}
else
{
// do other stuff
}
Run Code Online (Sandbox Code Playgroud)
我的扩展方法是:
public static bool IsNullOrEmpty(this Guid? g)
{
return !g.HasValue || g.Value == Guid.Empty;
}
Run Code Online (Sandbox Code Playgroud)
这很好,因为现在我的代码看起来更干净,更容易阅读:
Guid? nullableGuid = something;
if (nullableGuid.IsNullOrEmpty())
{
// do stuff
}
else
{
// do other stuff
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果我尝试在else块中使用Guid,现在resharper会抱怨.它没有意识到我在扩展方法中检查了HasValue.当然,我可以用注释来抑制警告或更改resharper选项,但这些都不是好的选择.如果我必须在任何地方评论代码,它往往会破坏使代码更清洁的目的.如果我更改resharper选项,那么,这只会是疯狂的.
我想知道是否有更好的选择.有没有办法"告诉"resharper它是"好的",而不必在任何地方评论代码或禁用检查?
我有一个TreeView和ShowPlusMinus设置为true.单击文本时,我还希望节点(仅父项)切换.这是我的NodeMouseClick事件处理程序:
private void NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Node.GetNodeCount(true) == 0)
{
if (MapClick != null) MapClick(this, e); // fire an event that a child was clicked
}
else
{
e.Node.Toggle();
}
}
Run Code Online (Sandbox Code Playgroud)
我无法使用AfterSelect,因为即使已经选择了节点,我也需要切换.
NodeMouseClick的问题在于,当用户单击加号/减号图标时也会调用它.所以节点切换两次.我需要阻止默认行为并且总是自己切换,或者我需要检测项目被点击的位置,并且只有当它不在正/负时才进行切换.