相关疑难解决方法(0)

C#中`Fields`和`Properties`有什么区别?

根据这些评论编辑:

你的意思是"财产"与"战场"吗?public String S1; vs public String S2 {get; 组; } - 达娜

完全是达娜,我的意思是一样的.- 阿萨德

阿萨德:你真的需要尝试用其他术语来描述你的意思,这样我们才能更好地理解你的问题.C#没有全局变量.您可以在C#中定义的字段不是全局的 - 它们是类类型的成员.- dthorpe

嗨fellas,

需要您对Fieldand 之间差异的专家意见Property.在我的项目中,我使用了某些全局变量,后来我改为"属性".我的经理问的是使用Properties变量代替的好处是什么Fields.

虽然我回复了他Property提供了一种安全/安全/间接访问,Field而不是直接修改它们,如果它们被声明publicprotected.但请给我一些更有说服力的论据.

感谢致敬

@Asad:你应该把你的术语说得对:Fields不是Global Variables,C#没有全局变量(正如一些评论者提到的:你可以模拟全局变量,但你不应该这样做).

c# field properties

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

将存储值类输出到列表

这将从XML文件加载一组值,并将它们放入类中进行存储.我试图弄清楚如何将值输出为列表,以便将它们放入列表框中.

我认为有一种简单的方法,比如.ToList()方法,或者能够通过类中的字符串(没有公共GetEnumerator).我已经能够发现Foreach隐藏了一些复杂性,但没有去做我想做的事情.

我一直在网上搜索没有用(可能没有正确的术语),不幸的是我在工作中留下了我的C#参考书:/

非常感谢指针朝着正确的方向发展,谢谢.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Xml;

namespace ThereIsOnlyRules
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        try
        {
            listBox1.Items.Clear();

            string path = "characterXML.xml";
            FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            System.Xml.XmlDocument CXML = new System.Xml.XmlDocument();

            CXML.Load(fs);

            //Get the number of elements 
            XmlNodeList elemList = CXML.GetElementsByTagName("unit");

            //foreach (var element in …
Run Code Online (Sandbox Code Playgroud)

c# listbox list

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

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

C#:我可以删除"{get; set;}"吗?

是否有区别:

public T RequestedValue { get; set; }
Run Code Online (Sandbox Code Playgroud)

public T RequestedValue;
Run Code Online (Sandbox Code Playgroud)

取自此代码:

public class PropertyChangeRequestEventArgs<T>:EventArgs
{
    public PropertyChangeRequestEventArgs(T pRequestedValue)
    {
        RequestedValue = pRequestedValue;
    }

    public T RequestedValue { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

c#

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

公共访问者与类的公共属性

可能重复:
C#中的字段和属性之间有什么区别?

有人可以解释这两个属性之间的差异吗?

 public string City { get; set; }
 public string City;
Run Code Online (Sandbox Code Playgroud)

c#

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

C#获取集与未获取集

我已经查看了至少10个关于获取/设置的SO问题,但找不到我的问题.所以我希望这不是重复.

public class myint
{
    public int value{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

VS

public class myint
{
    public int value;
}
Run Code Online (Sandbox Code Playgroud)

以上两个代码对我来说是一样的.如果我想使用myint类,我只需编写下面的代码,它就可以在任一类上运行.

myint A;
A.value=10;
Run Code Online (Sandbox Code Playgroud)

那么get/set的用途是什么?

c# get set

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

字段和属性C#中的最佳实践

亲爱的,哪一个是使用C#的最佳实践,为什么?
1.

private string name;

public string Name
{
  get { return name; }
  set { name = value; }
}
Run Code Online (Sandbox Code Playgroud)

2.

public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

3.

protected string name;
public string Name
{
  get { return name; }
  set { name = value; }
}
Run Code Online (Sandbox Code Playgroud)

请加上......

c# c#-3.0

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

当我们有访问器和mutator时,为什么要声明私有字段?

如果我用Java创建一个类,我总是被告知惯例是使一个类的所有字段都是私有的.如果我需要访问或更改它们,我可以创建一个accessor和mutator方法.我确实理解私有变量的重要性,因为它们有助于降低复杂性并允许封装.

我不明白的是,如果我创建一个公共访问者和mutator方法,那么那个变量是不是公共?为什么在任何人都可以访问私有变量的情况下仍然使用私有变量?

我还应该注意,我理解这些方法的重要性,但我想知道为什么我们懒得将变量设为私有,即使我们通过这些方法让任何人都可以访问它?

java oop access-modifiers

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

使用不同的数据类型重写派生类中的 C# 变量

我的基类声明:

public double Value;
Run Code Online (Sandbox Code Playgroud)

我的派生类声明:

public new decimal Value;
Run Code Online (Sandbox Code Playgroud)

在使用关键字的提示中new,它说:“ ...Use the new keyword if hiding was intended.”。

这个解释似乎不太正确。当使用new关键字时,它并没有隐藏基变量。它使两个变量保持相同的名称,甚至具有不同的值。

我知道我这边存在设计问题,但我想知道为什么关键字并new没有真正隐藏基类变量。另外,new如果关键字意味着设计问题(更改派生类中的数据类型),为什么它甚至可用。这里使用dynamic一个选项吗?问题是:在大多数情况下,double都很好。但是在一些派生类中,它必须是decimal.

这个问题的重点是派生类中变量关键字的使用new,而不是真正讨论 double 和decimal 之间的差异。

谢谢。

c# inheritance overriding

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

有时 Visual Studio IDE0032 推荐是错误的应用吗?

Visual Studio 2019给出了以下关于 private 的建议_myNum:改为使用auto-property。起初我很想这样做,摆脱这个private变量并拥有带有private set. 但这并没有提供相同的功能:我想要一个公共属性来公开这条给定的信息,并且只在一个可以设置这条数据的地方 - 构造函数,因此是关键字readonly

换句话说,我是对的吗?这个建议并不总是正确的?

public class Foo
{
    public int MyNum { get { return _myNum; } }
    private readonly int _myNum;
    public Foo(int num)
    {
        _myNum = num;
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

应用自动完成建议,代码如下所示:

public int MyNum { get; }

public Foo(int num)
{
    MyNum = num;
}
Run Code Online (Sandbox Code Playgroud)

c# refactoring code-analysis visual-studio roslyn-code-analysis

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