我在我的一些按钮上使用图片,我不希望这些图像包含在输出中.
这些图像是通过按钮属性设置的,因此它们在Resource.resx文件中定义.
我被告知要将Build Action设置为Embedded Resource,但我很好奇为什么这会产生影响.我现在将构建操作设置为"无",并且没有任何文件设置为复制.我可以将构建的应用程序移动到任何地方并启动它,所有图像都显示得很好.(只是为了澄清一下,这些图像在启动时肯定不在程序目录中,它们看起来还不错).
我在MSDN上查了一下并得到了这个:
无 - 文件未包含在项目输出组中,并且未在构建过程中编译.一个示例是包含文档的文本文件,例如自述文件.
嵌入式资源 - 此文件作为DLL或可执行文件嵌入在主项目构建输出中.它通常用于资源文件.
但是从这听起来好像将它们全部设置为无甚至不应该工作(但确实如此).
所以我很好奇它将嵌入式资源设置给它带来了什么好处.我测试了它,没有区别.希望有人能解释发生了什么.
我唯一的假设是,当通过按钮设置图像属性并且条目被添加到资源文件时,它不会连接到添加到项目中的文件(即使它们是相同的).因此,如果您以这种方式设置图像属性,那么图像甚至不需要包含在项目中(即在解决方案资源管理器中).
谢谢!
可能的重复:
是否应该通过属性访问同一类中的变量?
我最近遇到了这个问题,很好奇是否有某种标准,你应该在课堂上参考哪个标准。
我的意思是,无论您是直接访问成员变量还是通过属性(除非您需要避开一些自定义的 setter 代码),这都不应该有什么区别,但我想确保没有最佳实践。
partial class MyClass {
private string foo;
internal string Foo {
get {
return foo;
}
private set {
foo=value;
// I do other stuff
}
}
public void DoSomething() {
//Option 1;
Foo="some string";
//Option 2;
foo="some string";
}
}
Run Code Online (Sandbox Code Playgroud) 给定一个返回单个字符串值的oracle查询,要从查询中获取该值,我使用以下两行:
var result = cmd.ExecuteOracleScalar();
return result != null ? ((OracleString)result).Value : null;
Run Code Online (Sandbox Code Playgroud)
该语句中的“!= null”强调了“合并条件表达式”的建议。如果我接受建议,它将更改为:
return ((OracleString)result).Value;
Run Code Online (Sandbox Code Playgroud)
这将引发异常,因为对于许多执行,返回的值将为null。
无论如何有使用三元运算符但没有此警告?
请注意,如果我将代码更改为:
var result = cmd.ExecuteOracleScalar();
if (result == null)
return null;
return ((OracleString)result).Value;
Run Code Online (Sandbox Code Playgroud)
然后,Resharper首先建议我“转换为返回语句”,只需将其更改回使用三元运算符即可。
有什么建议么?
这个问题可能是查看问题的最快方式
我不确定使用ViewChild时它是否只是一些明显的问题,但它很奇怪.
这个plunker显示3个输入:
但是,在添加ViewChild以获取对输入的引用时,输入上的NgModel绑定将停止工作.但是您附加的任何其他绑定(如已禁用)仍将继续运行.如果您注释掉app/extended.component的第52行,它将再次绑定,但显然现在它无法集中注意力.
第一个输入/按钮显示,当您绑定到正在扩展的类中的属性时,这显然只是一个问题.
简而言之,当我通过ViewChild访问输入时,我对NgModel的绑定中断.
也就是说,给定一个属性为"someValue"的基数:绑定:
@Component({
selector: 'binding-working',
template: `<input type="text" [(ngModel)]="someValue" />`
})
export class Working extends Base<string> {
constructor() { }
};
Run Code Online (Sandbox Code Playgroud)
不绑定:
@Component({
selector: 'binding-broken',
template: `<input type="text" #imBroken [(ngModel)]="someValue" />`
})
export class Broken extends Base<string> {
@ViewChild('imBroken') input;
constructor() { }
};
Run Code Online (Sandbox Code Playgroud) .net-4.0 ×2
c# ×2
angular ×1
attachment ×1
oracle ×1
properties ×1
resharper ×1
slack ×1
slack-api ×1
viewchild ×1