小编ano*_*ous的帖子

在构建64位窗口操作系统时,针对x86与AnyCPU

我有一个为.NET 2.0编写的现有C#应用程序,目前面向AnyCPU.它目前引用了一些我没有源代码的第三方.NET DLL(我不确定它们是否是为x86,x64或AnyCPU构建的).

如果我想在64位Windows操作系统上专门运行我的应用程序,我应该定位哪个平台才能让我的应用程序无误地运行?我目前的理解是针对:

  • x86:如果为x86构建了至少一个第三方.NET dll,或者使用p/Invoke与Win32 DLL进行交互.应用程序将在32位和64位操作系统上以32位模式运行.
  • x64:如果已为x64或AnyCPU构建了所有第三方.NET dll.应用程序仅在64位操作系统中运行.
  • AnyCPU:如果所有第三方.NET dll都已为AnyCPU构建.应用程序将在32位操作系统上以32位模式运行,在64位操作系统上以64位运行.

另外,我是否相信,在构建引用第三方x86 .NET DLL的应用程序时,针对AnyCPU时不会产生任何错误,当应用程序在64位操作系统上运行时尝试加载这些DLL时,它将引发运行时异常.

因此,只要我的第三方DLL之一正在执行p/Invoke或x86,我只能针对此应用程序定位x86?

.net 64-bit

10
推荐指数
2
解决办法
5859
查看次数

在PHP中是否有相当于C#的逐字字符串文字?

我知道我可以使用@符号在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是否还有一个等价物,还是我必须自己手动转义字符串?

php string

6
推荐指数
1
解决办法
2769
查看次数

在AS3中是否有等同于C#的#region指令?

刚开始使用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# flashdevelop actionscript-3

5
推荐指数
1
解决办法
2508
查看次数

如何为MVP WinForms应用程序的主要演示者调用Application.Run()?

我正在学习在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)

c# mvp winforms

4
推荐指数
2
解决办法
2743
查看次数

从LINQ查询中获取第一个结果 - 当First <T>()成功时,为什么ElementAt <T>(0)会失败?

我有一个方法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)

c# linq entity-framework

3
推荐指数
1
解决办法
4898
查看次数