我们经常被告知我们应该通过为类字段制作getter和setter方法(C#中的属性)来保护封装,而不是将字段暴露给外部世界.
但是很多时候,一个字段只是用来保存一个值,并且不需要任何计算来获取或设置.对于这些,我们都会这样做:
public class Book
{
private string _title;
public string Title
{
get{ return _title; }
set{ _title = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
好吧,我有一个坦白,我不忍心写所有这些(真的,它不必写它,它不得不看它),所以我去流氓和使用公共领域.
然后是C#3.0,我看到他们添加了自动属性:
public class Book
{
public string Title {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
这更整洁,我很感激它,但是真的,除了创建一个公共领域之外还有什么不同?
public class Book
{
public string Title;
}
Run Code Online (Sandbox Code Playgroud) 使用Firefox,您只需按下即可放大整个网页CTRL +.这样做是按比例放大整个网页(字体,图像等).
如何使用简单的CSS复制相同的功能?
是否有类似的东西page-size: 150%(这将使整个页面部分增加x%?)
考虑以下两行代码(从w3schools.com>"HTML <label> for Attribute"复制):
<label for="male">Male </label>
<input type="radio" name="sex" id="male" />
Run Code Online (Sandbox Code Playgroud)
我无法发现上述标签的"for"属性的确切目的.如您所见,它当前设置为"male"(以匹配输入控件的id).
到目前为止我所读到的只是上面的代码将"关联"和"绑定"标签与输入控件.所以我的问题是,这究竟是什么意思?
将标签与输入控件相关联的结果究竟是什么?
标签和/或输入是否因此"关联"而具有新行为?
System.Web.UI.WebControls.TreeView类提供此事件,但TreeView的Forms版本不提供此事件.形式世界中的等价物是什么?我正在使用AfterSelect,但它似乎不太正确.也许它实际上是我正在寻找但文档有点模糊.
我正在使用Visual C#Express编写Windows Form应用程序,并称我为旧学校,但我不喜欢这位设计师.这是一个麻烦,并污染我的项目与许多不需要的文件,以及不需要的猴子生成的源代码.
请告诉我有一种方法可以完全关闭它.
是否有一组命令行选项可以说服gcc从自包含的源文件生成平面二进制文件?例如,假设foo.c的内容是
static int f(int x)
{
int y = x*x;
return y+2;
}
Run Code Online (Sandbox Code Playgroud)
没有外部引用,没有什么可以导出到链接器.我想获得一个只包含此功能的机器说明的小文件,没有任何其他装饰.类似于(DOS).COM文件,除了32位保护模式.
在一个Excel实例中运行的Excel VBA宏是否可以访问另一个正在运行的Excel实例的工作簿?例如,我想创建一个在任何正在运行的Excel实例中打开的所有工作簿的列表.
我使用LINQ在C#中编写了一些查询.过了一会儿,我开始使用Haskell一点点,这是一种函数式编程语言(一种不那么流行的语言),对我来说似乎它们几乎都是一样的.但我不确定这一点.如果有人比我更多地使用它们,他们能不能告诉我它们在编程原理上是否几乎相同?
LINQ可以被认为是函数式编程吗?
谢谢.
我在使用Action委托的许多在线示例中看到了这一行:
public event Action MyEvent;
Run Code Online (Sandbox Code Playgroud)
但是当我在自己的代码中尝试它时,我得到了这个错误
使用泛型类型'System.Action'需要'1'类型参数
文档肯定描述了一种没有任何类型参数的Action形式.我错过了什么?
bar调用函数时"this"的行为令我感到困惑.请参阅下面的代码.当从单击处理程序调用bar而不是html元素时,有没有办法安排"this"成为一个普通的旧js对象实例?
// a class with a method
function foo() {
this.bar(); // when called here, "this" is the foo instance
var barf = this.bar;
barf(); // when called here, "this" is the global object
// when called from a click, "this" is the html element
$("#thing").after($("<div>click me</div>").click(barf));
}
foo.prototype.bar = function() {
alert(this);
}
Run Code Online (Sandbox Code Playgroud)