我有一个为.NET 2.0编写的现有C#应用程序,目前面向AnyCPU.它目前引用了一些我没有源代码的第三方.NET DLL(我不确定它们是否是为x86,x64或AnyCPU构建的).
如果我想在64位Windows操作系统上专门运行我的应用程序,我应该定位哪个平台才能让我的应用程序无误地运行?我目前的理解是针对:
另外,我是否相信,在构建引用第三方x86 .NET DLL的应用程序时,针对AnyCPU时不会产生任何错误,当应用程序在64位操作系统上运行时尝试加载这些DLL时,它将引发运行时异常.
因此,只要我的第三方DLL之一正在执行p/Invoke或x86,我只能针对此应用程序定位x86?
我知道我可以使用@符号在C#中创建一个逐字字符串文字.例如,平常
String path = "C:\\MyDocs\\myText.txt";
Run Code Online (Sandbox Code Playgroud)
也可以重写为
String path = @"C:\MyDocs\myText.txt";
Run Code Online (Sandbox Code Playgroud)
通过这种方式,字符串文字不会使用转义字符混乱,并使其更具可读性.
我想知道的是PHP是否还有一个等价物,还是我必须自己手动转义字符串?
刚开始使用FlashDevelop在AS3中进行编码并来自C#背景,我想知道是否有与AS3中的#region指令相同的东西?
C#中的#region指令实质上允许IDE(例如Visual Studio)折叠或扩展一段代码以提高可读性.使用#region指令,您可以在代码中拆分代码,例如构造函数,属性,公共/私有方法,以帮助其他人仔细阅读代码.
所以下面的C#代码......
interface IPurchaseOrder
{
#region Properties
bool IsProcessed { get; set; }
bool ISValidOrder { get; set; }
#endregion Properties
#region Methods
bool ProcessOrder();
#endregion Methods
}
Run Code Online (Sandbox Code Playgroud)
变
interface IPurchaseOrder
{
Properties
Methods
}
Run Code Online (Sandbox Code Playgroud) 我正在学习在C#中将MVP应用到一个简单的WinForms应用程序(只有一个表单),并在创建主要演示者时遇到问题static void Main().从Presenter公开View以将其作为参数提供给Application.Run()是一个好主意吗?
目前,我已经实现了一种方法,允许我不将View作为Presenter的属性公开:
static void Main()
{
IView view = new View();
Model model = new Model();
Presenter presenter = new Presenter(view, model);
presenter.Start();
Application.Run();
}
Run Code Online (Sandbox Code Playgroud)
Presenter中的Start和Stop方法:
public void Start()
{
view.Start();
}
public void Stop()
{
view.Stop();
}
Run Code Online (Sandbox Code Playgroud)
View中的Start和Stop方法(Windows窗体):
public void Start()
{
this.Show();
}
public void Stop()
{
// only way to close a message loop called
// via Application.Run(); without a Form parameter
Application.Exit();
}
Run Code Online (Sandbox Code Playgroud)
Application.Exit()调用似乎是一种关闭Form(和应用程序)的不雅方式.另一种方法是将View作为Presenter的公共属性公开,以便使用Form参数调用Application.Run().
static void Main()
{
IView view = new …Run Code Online (Sandbox Code Playgroud) 我有一个方法AddStudent(),它查找具有相同名称的学生,如果有同名学生,则从数据库返回现有学生,否则它会创建一个新学生并将其添加到数据库中.
我很好奇为什么当我尝试从LINQ查询获得第一个结果se = students.First<StudentEntity>();时se = students.ElementAt<StudentEntity>(0);失败成功.这两种方法不一样吗?
该方法的完整代码如下所示.
public Student AddStudent(string name)
{
using (SchoolEntities db = new SchoolEntities())
{
// find student with same name via LINQ
var students = from s in db.StudentEntitySet
where s.name == name
select s;
StudentEntity se = default(StudentEntity);
// if student with the same name is already present, return
// that student
if (students.Count<StudentEntity>() > 0)
{
// if i use ElementAt, if fails with a "LINQ to …Run Code Online (Sandbox Code Playgroud)