在C++世界中,存在多种方法来制造可利用的漏洞:缓冲区溢出,不安全的sting处理,各种算术技巧,printf问题,不以'\ 0'结尾的字符串等等.尽管java中解决了大多数这些问题,但仍有一些事情需要讨论.但是,是否有任何典型的C#特定编码漏洞列表?(与.NET平台本身无关)
我最近一直在思考名字和我们存储它们的方式.通常,一个人将拥有名字,姓氏和中间名.如果您想要特别完整,可以添加后缀字段,甚至可以添加标题字段.因此,如果有人想成为"John Q. Public III博士",他们可以.但是一个人可以拥有一个以上的敬意和一个以上的后缀.对于那个问题,那么也可以使用连字符姓氏.那么如果你是"John Quintus Maximus Public-Doe III博士,MD.RPh."怎么办?你可以这样做:
__PRE__但是它可以成为一只熊,无论如何也没有人最终使用它们.
存储名称数据是否有普遍接受的"标准方式"?
假设我们有两个对象o1和o2定义为System.Object,在我的坐标中o1和o2可以是以下任何类型:
那么如何检查o1和o2是否相等,因此是相同的对象或两者具有相同的类型和值.
我可以做o1 == o2或者我需要做什么o1.Equals(o2)或其他什么?
谢谢,
AJ
我有一个有很多长方法的表单.我的任务是:最佳做法是什么?使用匿名方法和只有一个backgroundworker或为每个long方法创建BackgroundWorker实例.
请帮忙.谢谢.
关于Stack Overflow问题的一些评论为什么C#编译器不会阻止属性引用自己?关于警告让我思考在我编写更多VB.NET代码时总是困扰我的旧问题.
其中之一是,如果您声明了一个Function但编译器没有发出警告,但从未执行过显式的Return语句或分配给Function函数.运行Visual Studio 2008,我刚刚做了一个小实验项目,似乎从未修复过该行为.我创建了一个Visual Basic控制台应用程序,其代码如下:
Module MainModule
Sub Main()
Dim test As Boolean = TestWarning()
End Sub
Function TestWarning() As Boolean
Console.WriteLine("There is no Return Statement")
End Function
End Module
Run Code Online (Sandbox Code Playgroud)
我也走进了项目设置,转身On Option Strict和Option Explicit.我还设置了警告配置,以便"没有返回值的函数/运算符"设置为错误.
我编译了项目并且没有警告,并且TestWarning()函数没有错误.这似乎是一个发出警告的好地方,因为它默认为False,你可能只是忘了做一个回报.如果没有return语句,C#将会出错.我认为VB.NET对"没有返回值的函数/运算符"配置做了同样的事情.这是一个错误,还是我缺少的东西?
Function TestWarning() As Boolean
If DateTime.Now.DayOfWeek = DayOfWeek.Monday Then
Return False
Else
Console.WriteLine("There is no Return Statement")
End If
End Function
Run Code Online (Sandbox Code Playgroud)
如果我有一个明确Return的If,并且没有任何内容Else,那么也没有警告或错误.它将简单地采用默认值,即使您可能(通过编程风格)有明确的返回.在这种情况下,我明确地返回False(这是布尔默认值),所以它可能是我应该回到一个隐藏的错误True中Else.
我使用ScrollViewer作为Silverlight应用程序的一部分.它有一个水平方向,我希望它看起来只有滚动按钮出现,而不是滚动条本身.像这样粗糙的ASCII渲染:
------------------------------------------------------
| | | |
| < | Content Here | > |
| | | |
------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用模板功能,但我看到的所有样本只会改变所有元素的外观,而不是它们的原始定位,或者它们是否出现.是否可以这样做,有人可以提供模板外观的大纲吗?
我有一个问题,将ac#class序列化为具有基类的XML文件...这是一个简单的例子:
namespace Domain
{
[Serializable]
public class ClassA
{
public virtual int MyProperty
{
get; set;
}
}
}
namespace Derived
{
public class ClassA : Domain.ClassA
{
public override int MyProperty
{
get { return 1; } set { /* Do Nothing */ }
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试序列化Derived.ClassA的实例时,我收到以下异常:
InvalidOperationException(Types'Domain.ClassA'和'Derived.ClassA'都使用XML类型名称'ClassA',来自命名空间".使用XML属性为该类型指定唯一的XML名称和/或命名空间.)
问题是我想创建一个简单定义XML文件结构的基类,然后允许其他任何人从该类派生以插入业务规则,但格式化将来自基础.
这是可能的,如果是这样,我如何归属基类来允许这个?
我正在寻找一种方法来创建一个.NET字体对象,当您选中"小型大写字母"复选框时,该对象可以像Word一样格式化文本.我没有在Font对象上看到格式样式,我想知道是否A.有些东西我缺少或B.有一个第三方库(最好是免费的)可以做到这一点代替.
如何检查两个单词是否有共同的字符?
恩.:"word"和"letter"有共同的"r"
"字"和"电子邮件"没有任何共同的字符
这段代码是错误的,因为如果两个单词有两个共同的字符,我会在结果中得到4
int numberOfCommonChars = (from c1 in word1.ToCharArray()
from c2 in word2.ToCharArray()
where c1 == c2
select c1).Count();
Run Code Online (Sandbox Code Playgroud)