我最近看到很多C#4.0的变化.我真的很喜欢其中的一些.另外,我还不想因为兼容性原因而转向.Net 4.0.
那么,是否有一个全面的新C#4.0语言功能列表可以在.Net 3.5或更低版本上运行?
例如,默认参数是否需要.NET 4.0 CLR,还是它们是编译器功能?可以使用自动属性(C#3.0特性)并仍然以.NET 2.0为目标,因为它不需要Framework支持,但不使用LINQ表达式,因为它确实需要Framework 3.5.
请不要说"当然C#4.0在.Net 3.5中不起作用,因为它更老了"
最近我有一个奇怪的错误,我在那里连接一个字符串int?
然后添加另一个字符串.
我的代码基本上相当于:
int? x=10;
string s = "foo" + x ?? 0 + "bar";
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,这将运行和编译没有警告或不兼容的类型错误,这将是:
int? x=10;
string s = "foo" + x ?? "0" + "bar";
Run Code Online (Sandbox Code Playgroud)
然后这会导致意外的类型不兼容错误:
int? x=10;
string s = "foo" + x ?? 0 + 12;
Run Code Online (Sandbox Code Playgroud)
这个更简单的例子也是如此:
int? x=10;
string s = "foo" + x ?? 0;
Run Code Online (Sandbox Code Playgroud)
有人能解释一下这对我有用吗?
我想知道是否可以从页面中抛出404错误(代码隐藏)?或者甚至可能抛出任何其他类型的错误页面,如408(超时)或401(需要验证)?
注意:我不只是想让页面返回404的状态代码,我希望它使用ASP.Net(或我的CustomErrors)404错误页面.
在后面的代码中有类似的东西:
if(id>10){ //if id is greater than 10, then it doesn't exist here
throw 404Error();
}
Run Code Online (Sandbox Code Playgroud) 我正在为MPC 555板写C,需要弄清楚如何在不使用malloc的情况下分配动态内存.
与急切评估相比,懒惰评估有哪些优势?
有什么性能开销?懒惰评估会变得更慢还是更快?为什么(或者它取决于实施?)?
在大多数实现中,懒惰评估实际上如何工作?对我来说,它似乎会慢很多并且内存密集,因为变量必须存储操作以及数字.那么它如何在像Haskell这样的语言中工作(注意,我实际上并不知道那种语言)?如何实现和完成延迟,以便它不会非常慢/消耗更多空间?
我曾经读过,拥有可空类型是一种绝对的邪恶.我相信这是由创建它们的人写的一篇文章(在Ada中?)我相信这是文章
无论如何,那么如果默认情况下像C#这样的语言使用非可空类型呢?你会如何替换C#或Ruby中的一些常用习语或任何其他null
可接受值的常用语言?
我想将Object转换为将在运行时分配的类型.
例如,假设我有一个函数将字符串值(从a TextBox or Dropdownlist
)赋值给Object.Property
.
如何将值转换为正确的类型?例如,它可以是整数,字符串或枚举.
Public void Foo(object obj,string propertyName,object value)
{
//Getting type of the property og object.
Type t= obj.GetType().GetProperty(propName).PropertyType;
//Now Setting the property to the value .
//But it raise an error,because sometimes type is int and value is "2"
//or type is enum (e.a: Gender.Male) and value is "Male"
//Suppose that always the cast is valid("2" can be converted to int 2)
obj.GetType().GetProperty(propName).SetValue(obj, value, null);
}
Run Code Online (Sandbox Code Playgroud) 我有一个项目,我正在尝试从SQL Server移植到PostgreSQL.除了我无法DbProviderFactory
使用Npgsql 之外,我几乎已经完成了所有工作.
Factory = DbProviderFactories.GetFactory("Npgsql");
Run Code Online (Sandbox Code Playgroud)
产量
未处理的异常:System.Configuration.ConfigurationErrorsException:无法找到或加载已注册的.Net Framework数据提供程序.
我该如何解决?
可能重复:
确定通用参数是否为Nullable类型
我正在尝试确定类型参数是否为Nullable.
public T Get<T>(int index)
{
var none=default(T);
var t = typeof(T);
BaseVariable v = this[index].Var;
if (T is Nullable) //compiler error
{
if (v == ... )
{
return none;
}
}
//....
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?我尝试过,t == typeof(Nullable)
但总是导致错误.
我想要发生的是foo.Get<bool?>(1)
有时无效.
c# ×5
.net ×3
asp.net ×1
c ×1
c#-4.0 ×1
casting ×1
embedded ×1
exception ×1
generics ×1
getproperty ×1
http ×1
ide ×1
malloc ×1
mono ×1
non-nullable ×1
null ×1
nullable ×1
postgresql ×1
reflection ×1
types ×1