我已经阅读了几篇关于不变性的文章,但仍然没有很好地遵循这个概念.
我最近在这里提到了一个线程,提到了不变性,但由于这本身就是一个话题,我现在正在制作一个专门的线程.
我在过去的帖子中提到过,我认为不变性是将对象设为只读并使其可见性低的过程.另一位成员表示,这与此没有任何关系.此页面(系列的一部分)使用不可变类/结构的示例,它使用readonly和其他概念将其锁定.
在这个例子中,状态的定义究竟是什么?国家是一个我没有真正掌握的概念.
从设计指南的角度来看,一个不可变的类必须是一个不接受用户输入并且真的只返回值的类?
我的理解是,任何只返回信息的对象都应该是不可变的并且"锁定",对吧?因此,如果我想在具有该方法的专用类中返回当前时间,我应该使用引用类型,因为它将工作类型的引用,因此我受益于不变性.
我在某个地方读了一本电子书(我很想再次找到),通过使用委托,可以编写具有如下语法的代码:
()(); // where delegate precedes this.
Run Code Online (Sandbox Code Playgroud)
任何人都可以提供任何细节如何可能/在什么情况下会发生这种情况?
在C#中,当我有一个接口和几个具体实现时,我可以将接口转换为具体类型还是具体类型转换为接口?
这种情况下的规则是什么?
我有一行代码使用:
codebase.Methods.Where(x => x.Body.Scopes.Count > 5);
Run Code Online (Sandbox Code Playgroud)
如何插入多个条件?所以我可以说x => predicate && y => predicate?
谢谢
抛出异常后如何恢复代码执行?
例如,请使用以下代码:
namespace ConsoleApplication1
{
public class Test
{
public void s()
{
throw new NotSupportedException();
string @class = "" ;
Console.WriteLine(@class);
Console.ReadLine();
}
}
public class Program
{
public static void Main(string[] args)
{
try
{
new Test().s();
}
catch (ArgumentException x)
{
}
catch (Exception ex)
{
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在单步执行时捕获异常后,程序将停止运行.我怎么还能继续执行?
编辑:我特别指的是Console.WriteLine(@class)行; 似乎没有被击中,因为当我在调试模式下运行它时,程序退出调试模式.我想跑到这条线并停下来.
谢谢
有没有办法确定字符串中是否有空格?
sossjjs sskkk应该返回true,并且sskskjsk应该返回false.
"sssss".Trim().Length 似乎不起作用.
检查事件处理程序是否为null时,是否基于每个线程完成?
确保有人正在听这个事件就像这样:
EventSeven += new DivBySevenHandler(dbsl.ShowOnScreen);
Run Code Online (Sandbox Code Playgroud)
如果我在上面检查null的模式之后添加代码,那么为什么我需要一个空检查(从这个站点获取的代码).我错过了什么?
此外,事件和GC的规则是什么?
我在互联网上看到这个术语很多(事实上,在google上输入它会返回很多结果).
"实施细节"的确切定义是什么?
当试图在C#中做一些相当先进的事情时(比如某种黑客),提出了"头等"的概念.
例如,一个方法是第一类编程构造,因为你可以用它做xyz(xyz不是方法所做的,但是一般的方法给你什么,我不记得xyz现在是什么),但是. NET 1.1委托无法传递给方法,因为它们不是一流的编程结构(我读过这些内容).
什么是一流的编程结构?
谢谢
在调试/单步执行代码时,我尝试检查监视中的变量,每次内部变量说明函数评估超时都会出错.
有谁知道这是为什么以及如何避免它?因为它影响了我调试代码的能力.
这是在VS2010 Premium内.