相关疑难解决方法(0)

字段和属性之间有什么区别?

在C#中,是什么使字段与属性不同,何时应该使用字段而不是属性?

c# field properties

1032
推荐指数
17
解决办法
42万
查看次数

我应该使用公共属性和私有字段或公共字段来获取数据吗?

在我看过的大部分代码中(在SO上,我都会在我自己的代码中使用codeproject.com),我已经看到为一个类包含的每个私有字段创建公共属性,即使它们是最多的基本类型get; set;:

private int myInt;
public int MyInt 
{
     get { return myInt; }
     set { myInt = value }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:这与以下方面有何不同:

public int MyInt;
Run Code Online (Sandbox Code Playgroud)

如果我们应该使用属性而不是公共字段,为什么我们应该在这种特定情况下使用它们呢?(我不是在讨论更复杂的例子,其中getter和setter实际上做了一些特殊的事情,或者只有一个get或set(只读/写)而不是只返回/设置私有字段的值).它似乎没有添加任何额外的封装,只在IntelliSense中提供一个漂亮的图标,并放在类图中的特殊部分!

.net c# coding-style properties

55
推荐指数
4
解决办法
3万
查看次数

在ASP MVC4中传递模型背后会发生什么

现在学习ASP MVC,仅仅是我在MVC上的第3周

我对建模传递做了一些测试,基本上控制器只是获取模型,并且没有做任何事情就进入视图,但似乎代码失败了.

下面是我创建的ViewModel

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Bank2.Models.ViewModel
{
    public class PaymentView
    {
        public List<Wires_SWIFT> lists{get; set;}
        public string b_str{get; set;}
        public string o_str{get; set;}
    }
}
Run Code Online (Sandbox Code Playgroud)

这是视图:

@model ViewModel
@using(Html.BeginForm("Payment","Home",FormMethod.Post)){

        @Html.TextBoxFor(d=> d.o_str)<br/>
        @Html.TextBoxFor(d=> d.b_str)<br/>
        <input type="submit" name="Search">
}
Run Code Online (Sandbox Code Playgroud)

控制器抓住模型并立即通过

...
[HttpPost]
public ActionResult Payment(ViewModel m){
   return View(m)
}

...
Run Code Online (Sandbox Code Playgroud)

我在texbox中键入了两个字符串:比如"aa"和"bb",在我点击提交后,他们应该在那里,因为相同的对象被传回,但现在该字段为空

我是否错过了关于建模传递的重要内容?欢迎任何形式的建议

asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

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