不可空的类型

有没有办法在C#中创建一个非可空类型(如DateTime或TimeSpan)。 还有一种方法(可能是一个属性)强制不会在没有添加的情况下将非null参数传递给方法和属性 if(arg1 == null) { throw new ArgumentNullException(“this attribute is null”) }

动态读取文本文件的更改c#

我有一个程序,不断将其日志写入文本文件。 我没有它的源代码,所以我不能以任何方式修改它,它也受到Themida的保护。 我需要读取日志文件并根据文件内容执行一些脚本。 我无法删除该文件,因为连续写入它的程序已锁定该文件。 那么什么是更好的方式来读取文件,只读取文件的新行? 保存最后一行位置? 或者有什么东西对C#解决它有用吗?

使用接口inheritance时,为什么动态绑定失败?

在C#中,有谁知道为什么我不能做以下事情? (特别是下面标有“不好!”的行) interface A { void Add(dynamic entity); } interface B : A {} class C : B { public void Add(dynamic entity) { System.Console.WriteLine(entity); } } class Program { static void Main(string[] args) { B b = new C(); dynamic x = 23; b.Add(23); // fine b.Add((int)x); // fine (b as A).Add(x); // fine […]

如何在C#中以编程方式将xlsx文件转换为2003 xls文件?

我发现ExcelPackage是一个比Excel Interop API更好的库来创建和保存编程excel表,但它们是在.xlsx中生成的。 大多数会看到文件的人只安装了office 2003,所以我需要在我的C#代码中将最终结果转换为.xls文件。 你知道用C#代码做任何事吗? ** UPDATE我正在尝试使用SaveAs方法,但它不起作用,它只是没有做任何事情,或返回错误0x800A03EC。

是否有.NET函数来validation类名?

我正在使用CodeDom根据用户值生成动态代码。 其中一个值控制着我正在生成的类的名称。 我知道我可以根据有关使用正则表达式的有效类名的语言规则对名称进行消毒,但我想知道框架中是否有一个特定的方法来validation和/或消毒类名。

使用linq到实体获取不同的记录

嗨我在我的应用程序中使用linq实体。 我需要根据一个列值“名称”获取不同的记录 所以我有一个类似于你可以看到的表: (User) ID Name Country DateCreated 我需要根据名称(唯一)选择所有这些项目但是uniques。 是否有可能使用linq,如果是这样,请告诉我如何。 var items = (from i in user select new {i.id, i.name, i.country, i.datecreated}).Distinct();

visual studio可以自动缩进/格式化预处理指令吗?

可能重复: 如何强制缩进C#条件指令? 假设我想在Visual Studio中键入: class Program { private const Byte NUM_THREADS = #if DEBUG 1; #else 8; #endif } 如果我只是输入它(即不手动修复任何缩进),Visual Studio将像这样格式化: class Program { private const Byte NUM_THREADS = #if DEBUG 1; #else 8; #endif } 有什么我可以做的,所以它自动缩进所以它看起来像第一个例子?

如果元素具有xmlns属性,则XDocument和Linq返回null

新手与XDocuments和Linq,请建议一个解决方案,从xml字符串中的特定标签检索数据: 如果我有来自webservice响应的XML字符串(为了方便我格式化了xml): Hello! 使用以下代码,仅当GetCashFlowReportResponse标记没有”xmlns”属性时,才能获取该值。 不知道为什么? 否则,它始终返回null。 string inputString = “Hello!” XDocument xDoc = XDocument.Parse(inputString); //XNamespace ns = “http://tempuri.org/”; XNamespace ns = XNamespace.Get(“http://tempuri.org/”); var data = from c in xDoc.Descendants(ns + “GetCashFlowReportResponse”) select (string)c.Element(“GetCashFlowReportPdf”); foreach (string val in data) { Console.WriteLine(val); } 我无法更改Web服务以删除该属性。 有没有更好的方法来读取响应并将实际数据返回给用户(以更易读的forms)? 编辑: 解决方案: XDocument xDoc = XDocument.Parse(inputString); XNamespace ns = “http://tempuri.org/”; var data […]

如何使用LINQ更新List中的值

我有一个列表,我想用LINQ更新。 class Student { private string name; private int marks; public string Name { get; set;} public int Marks { get; set; } public Student(string name, int marks) { Name = name; Marks = marks; } } List myList = new List(); myList.Add(new Student(“John”, 10)); myList.Add(new Student(“Tom”, 20)); 现在我想使用LINQ更新列表,以便只更新John的标记。 我使用以下语法: myList.Where(w => w.Name == “Tom”).Select(w=> […]

将结构体转换为通用接口时是否存在Boxing / Unboxing?

可能重复: 结构,接口和拳击 来自MSDN: http : //msdn.microsoft.com/en-us/library/yz2be5wk.aspx Boxing是将值类型转换为类型对象或由此值类型实现的任何接口类型的过程。 但是通用接口呢? 例如, int派生自IComparable和IComparable 。 假设我有以下代码: void foo(IComparable value) { /* etc. */ } void bar(IComparable value) { /* etc. */ } void gizmo() { int i = 42; bar(i); // is `i` boxed? I’d say YES foo(i); // is `i` boxed? I fear it is (but I hope […]