当我对一个out或ref参数进行赋值时,是否会立即将值赋给调用者提供的引用,还是在方法返回时分配给引用的out和ref参数值?如果方法抛出异常,则返回值吗?
例如:
int callerOutValue = 1;
int callerRefValue = 1;
MyMethod(123456, out callerOutValue, ref callerRefValue);
bool MyMethod(int inValue, out int outValue, ref int refValue)
{
outValue = 2;
refValue = 2;
throw new ArgumentException();
// Is callerOutValue 1 or 2?
// Is callerRefValue 1 or 2?
}
Run Code Online (Sandbox Code Playgroud) 我知道它非常基本的问题,但我刚开始读它...
我有一个变量名
<variable name="NAME">
http://www.yahoo.com/<xsl:value-of select="$someothervariable"/>
</variable>
Run Code Online (Sandbox Code Playgroud)
我想像这样使用它
我已经使用了这两种方法,但它没有用
<a href="{NAME}">HELLO</a>
<a href="<xsl:value-of select="$NAME"/>
Run Code Online (Sandbox Code Playgroud)
知道怎么做到这一点......
谢谢,
最近,我一直在考虑是否值得拥有一个可能有很多NULL列的表,或者如果有更多表没有NULL则更好.我听说过InnoDB上没有存储NULL,所以我想知道是否存在任何有很多NULL的行的缺点或问题.我一直听说常见的NULL很糟糕,但我从未真正了解过原因.顺便说一下,如果重要的话,外键上的那些将是NULL.
第二个疑问,当我在有很多NULL的列上使用INNER JOIN时是否有任何性能问题?就像,如果我有4个外键,并且我要做4个INNER JOIN,但很可能只有1个不是NULL,这是否会影响性能?谢谢
我正在尝试使用预览功能制作一个实时的页内css编辑器,该功能可以重新加载样式表并应用它而无需重新加载页面.最好的方法是什么?
我试图通过使用DailyRollingFileAppender每天旋转日志文件,但我有一个问题:日志文件不是每天更新,所以当它没有新东西时它不会旋转.
在log4j.properties中是否有一种方法可以设置它以便log4j每天旋转日志文件,即使文件没有变化?
在使用方法的命名参数时,我发现自己经常在Ruby中编写我认为不必要的代码.
以下面的代码为例:
def my_method(args)
orange = args[:orange]
lemon = args[:lemon]
grapefruit = args[:grapefruit]
# code that uses
# orange, lemon & grapefruit in this format which is way prettier & concise than
# args[:orange] args[:lemon] args[:grapefruit]
puts "my_method variables: #{orange}, #{lemon}, #{grapefruit}"
end
my_method :orange => "Orange", :grapefruit => "Grapefruit"
Run Code Online (Sandbox Code Playgroud)
我真的不喜欢这段代码的是我必须接受args并将值传递给局部变量,这些变量与DRY原则相反,并且通常占用我的方法中的空间.如果我不使用局部变量并且只使用args [:symbol]语法引用所有变量,那么代码就会变得有些难以理解.
我已经尝试过解决这个问题,但是我不知道如何在方法范围内使用eval或使用任何其他技术来定义局部变量.以下是下面的许多尝试之一,这会导致错误
def my_method_with_eval(args)
method_binding = binding
%w{ orange lemon grapefruit}.each { |variable| eval "#{variable} = args[:#{variable}]", method_binding; }
# code that uses
# orange, lemon & grapefruit in …Run Code Online (Sandbox Code Playgroud) 我是铁杆新手,甚至不知道这是否是解决我情况的正确方法.
我有一个"俱乐部"ActiveRecords模型,它与"会员"模型有"has_many"关联.我希望登录的"俱乐部"只能管理它自己的"会员",所以在"会员"模型的每个动作的开头,我做了类似以下的事情:
def index
@members = Club.find(session[:club_id]).members
Run Code Online (Sandbox Code Playgroud)
访问正确的成员.然而,这并没有因为我在每个动作中做同样的事情而变得非常干燥.所以我想到使用与其他语言中的构造函数等效的东西.正如我所理解的那样初始化方法.然而这不起作用,这告诉我为什么,并提出了另一种选择.after_initialize.
def after_initialize
@club = Club.find(session[:club_id])
end
def index
@members = @club.members
....
Run Code Online (Sandbox Code Playgroud)
似乎无论如何都不起作用.任何指针为什么?
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.members
Run Code Online (Sandbox Code Playgroud)
让我觉得@club var根本没有设置.
此外,这个解决方案真的很好吗?这使得很难实现任何一种能够管理所有俱乐部成员的"超级管理员".关于我遗失某些东西的任何想法?
这是一个Windows Forms/.Net C#问题.
我有一个无边框窗口,其透明度键和背景色使其完全透明.窗口内有几个用户控件.
我希望能够移动窗口.我知道如何在父窗口上执行此操作,但我的问题是子控件是唯一可见的东西,因此唯一可点击的东西.
问题是:如何将某些消息传递给Parent,以便当鼠标右键按下并且鼠标移动到任何一个子控件上时,Parent可以移动?
或者你可以建议另一种方式?
谢谢您的帮助.
标记
我想生成一个列表,列出Mercurial中给定目录中两个修订版之间的文件.
特别是,我没有兴趣在什么改变,但哪些文件在该目录中改变.
例如,假设在then和之间otherthen,只有2个文件发生了变化:
>hg hypothetical-command -r then:otherthen
foo.baz
bar.baz
>
Run Code Online (Sandbox Code Playgroud)
什么是假设命令?我已经尝试了差异和日志,但我看不出如何说服他们这样做:要么我得到补丁(差异),要么得到整个回购(日志).
为什么我在这段代码上遇到编译时错误?
public Interface Location {
.......
}
Run Code Online (Sandbox Code Playgroud)
班级代码...
Map<Type, List<? extends Location>> locationsTypeMap = new HashMap<Type, List<? extends Location>>();
/**
Code to add elements to the hashMap.
*/
newLocation = getNewLocation()
while(mapHasElements){
Location.Type key = location.getType();
List<? extends Location> valueList = (List<? extends Location>)locationsTypeMap.get(key); //1
valueList.add(newLocation);/*Compile error*/
}
Run Code Online (Sandbox Code Playgroud)
另一方面,如果我用下面的行代替步骤1,它就可以工作
List<Location> valueList = (List<Location>)locationsTypeMap.get(key);
Run Code Online (Sandbox Code Playgroud)