作为一名程序员,我本以为这会抛出异常.是否有理由将null视为""?
string s = "hello";
string t = null;
Console.WriteLine(s + t);
Run Code Online (Sandbox Code Playgroud)
输出:
你好
只是为了强调我的问题,你知道为什么决定将null变为String.Empty吗?我期待一些字符串被添加,但是有一个问题进一步回到它没有正确检索它并返回null.问题没有被注意到!
这是一个伪代码,为什么我认为它是坏的(为什么我发现没有错误感到震惊):
您可以假设我重载了ToString以提供该人员的姓名或有关他们的详细信息.
Person p = PersonDatabase.GetForName("Jimmy Gibbs");
Console.WriteLine("Name is: " + p.ToString());
Run Code Online (Sandbox Code Playgroud)
抛出异常,因为p为null
String p = PersonDatabase.GetForName("Jimmy Gibbs").Name;
Console.WriteLine("Name is: " + p);
Run Code Online (Sandbox Code Playgroud)
即使p为null(它将其视为""),也不会抛出异常.
(如果你想挑剔并说我将无法获得Name,因为GetforName将为null,请将其视为此:)
String p = PersonDatabase.GetNameFromID(1234); // Returns a string or null if not found
Console.WriteLine("Name is: " + p);
Run Code Online (Sandbox Code Playgroud)
(如果你在列表或数组中使用这个值,你最终会得到一个空白条目,这对我来说是破坏的,它创建了javascript并尝试按ID"ID"获取元素)
这是无效的放入一个aspx文件?我有一些静态的aspx页面,我想在其中一个中添加一些C#.我怎样才能做到这一点?
我想只是添加
<%@ Page Language="c#"%>
Run Code Online (Sandbox Code Playgroud)
然后使用<%%>在那里放一些C#优点,但是它说Syntax Error.在此代码上有蓝色波浪线.
一些奇怪的事情正在发生,我正在转换一个过去常常使用javascript的应用程序在一个小窗口中打开另一个网页,以便输入数据以使用ModalPopupExtender.
它似乎工作正常,但在OK事件中,当我执行txtData.Text(我的模态弹出窗口中的文本框)时,它在数据之前返回一个逗号,所以如果你输入"Rabbit",它会返回" ,兔子".
此外,当我多次使用它时,在我可能点击显示它的另一个地方,并键入"鱼",它开始回来像",兔子,鱼"之类的东西
我不知道为什么或如何阻止它这样做...任何想法?
我经常听说使用神灵语言汇编语言编写的应用程序.我从来没有尝试过,我甚至都不知道该怎么做.
如果我想涉猎,我该怎么做呢?我完全不知道需要什么,虽然可能是某种编译器和记事本.
纯粹出于好奇,我需要写一个"Hello World!" 应用?
编辑添加,我正在运行Windows 7 64位
编辑添加,我想知道是否有Visual Studio的汇编语言插件?
我在一个全新的MVC Web API项目中重现了我遇到的问题.
这是默认代码,略有修改.
public string Get(int? id, int? something = null)
{
var isValid = ModelState.IsValid;
return "value";
}
Run Code Online (Sandbox Code Playgroud)
如果你去,http://localhost/api/values/5?something=123那么这很好,isValid是true.
如果你去http://localhost/api/values/5?something=那么isValid是false.
我遇到的问题是,如果为可以为空的项提供null或省略的值,ModelState.IsValid会标记验证错误 "A value is required but was not present in the request."
ModelState字典也如下所示:
有两个条目something,一个可以为空,我不确定它是否重要.
知道如何解决这个问题,以便在省略可空参数或提供为null时模型是有效的吗?我在我的web api中使用模型验证,如果每个带有可为空参数的方法都会产生模型错误,它就会破坏它.
我想要显示:
Name [Textbox]
Age: [Textbox]
BlahBlahCatfish: [Textbox]
Run Code Online (Sandbox Code Playgroud)
但是,如果我只是简单地将代码插入其中,它就会像上面排列的那样排成一行.
我想要的是它排成一行:
Name: [Textbox]
Age: [Textbox]
BlahBlahCatfish: [Textbox]
Run Code Online (Sandbox Code Playgroud)
通常我会使用表,但我试图摆脱这种习惯并使用可爱的CSS.没有数十亿的div和东西,如何做到这一点的想法?
一种编程问题......
您创建一个注册表单,其地址取自国家和城市列表.在interwebs上有什么地方我可以抓住这些列表来粘在我的列表框中吗?
我们的计算机系统在工作时要求用户每隔几周更改一次密码,并且您不能拥有与以前相同的密码.它记得你最近的20个密码.我发现大多数人只是在密码末尾增加一个数字,所以"thisismypassword1"变为"thisismypassword2"然后3,4,5等.
由于所有这些密码都存储在某处,我想知道哈希本身是否存在任何弱点,因为标准哈希算法用于存储密码,如MD5.如果黑客有一个类似密码的哈希列表,黑客是否会增加暴力破解密码的机会?
我在理解WCF中的ServiceKnownType时遇到了一些麻烦.
摘自此博客,以下代码不起作用:
[DataContract(Namespace = “http://mycompany.com/”)]
public class Shape{…}
[DataContract(Namespace = “http://mycompany.com/”)]
public class Circle : Shape {…}
[ServiceContract]
public interface IMyServer
{
[OperationContract]
bool AddShape(Shape shape);
}
Run Code Online (Sandbox Code Playgroud)
.
IMyServer client = new ChannelFactory<IMyServer>(binding, endPoint).CreateChannel();
client.AddShape(new Circle());
Run Code Online (Sandbox Code Playgroud)
它不起作用的原因是因为你试图添加一个圆,但servicecontract只允许一个Shape.你应该用知识型做一些事情,但我对它是如何工作有点困惑.
由于该代码在服务中,为什么不自动知道Circle是从Shape派生的?另外,ServiceKnownType实际上做了什么?
当ServiceKnownType放在DataContract下面时,显然会使它工作.我猜它说,嘿,这种称为Shape的特殊对象类型也可以是一个圆圈.我无法理解为什么会这样做,因为如果你添加一个像Square这样的新类型,你将不得不为Shape类添加一个ServiceKnownType.如果它不能推断它,将KnownType放到Square而不是Shape上,它会不会有意义?所以Square说嘿,我是一个Shape,而你不必摆弄Shape类?如果您的Shape类内置于库中并且您想要创建自己的衍生形状(如DiamondShape),则无法将其添加到Shape类,因为您无权访问源代码.
该方法为查询提供了一个字符串,并Object []为参数提供了一个数组,可能是为了避免SQL注入.
然而,地球上没有任何地方记录您应该放入对象数组中的内容.
关于SO的另一个问题就是问这个完全相同的东西,但是接受的答案不起作用:当使用DbSet <T> .SqlQuery()时,如何使用命名参数?
我已经尝试过所有可以考虑的参数替换形式,所有这些都会引发异常.有任何想法吗?
它会如此简单:
SqlQuery("SELECT * FROM @table", "Users")
编辑:以下是我尝试过的一些事情(例外情况是SqlException):
var result = context.Users.SqlQuery<T>("SELECT * FROM @p0 WHERE @p1 = '@p2'",
new SqlParameter("p0", tableName),
new SqlParameter("p1", propertyName),
new SqlParameter("p2", searchQuery));
Run Code Online (Sandbox Code Playgroud)
这给了 Must declare the table variable "@p0".
var result = context.Users.SqlQuery<T>("SELECT * FROM {0} WHERE {1} = '{2}'", tableName, propertyName, searchQuery);
Run Code Online (Sandbox Code Playgroud)
这给了 Must declare the table variable "@p0".