标签: properties

ReadOnly属性C#

我想在数据传输对象,DTO对象中具有readonly属性,没有设置; 访问者如:

public class ViewBannerDTO
    {
        public int Id { get;  }
    }
Run Code Online (Sandbox Code Playgroud)

但为什么得到:

'ViewBannerDTO.Id.get'必须声明一个body,因为它没有标记为abstract或extern.自动实现的属性必须定义get和set访问器.

以及为什么我不能:

public readonly int Id{get;}
Run Code Online (Sandbox Code Playgroud)

.net c# properties

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

如何将类型属性的所有名称检索为数组?

假设我有一个Employee班级:

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

现在我想用Employee类'属性名创建一个数组,即:

string[] employeeArray = { "Name", "Address" };
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有硬编码属性名称的情况下实现这一目标?

.net c# reflection properties

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

C#.net中的VB .net属性过程

在Visual Basic .Net中有所谓的属性过程,它可以具有以下外观

public property Name(ByVal x As String) As String

    get
       return name & x;
    end get
    set
       name = x & value;
    end set
end property
Run Code Online (Sandbox Code Playgroud)

c#.net中的等价物是什么.我知道c#有属性和字段,但在整个MSDN网站上我找不到任何对c#属性过程的引用.

非常感谢任何一个例子

.net c# vb.net properties

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

为什么派生类中重写的自动实现属性与C#中的虚基类属性具有不同的值

我有一个'base',它有一个virtual int名为'id' 的自动实现属性.

class bbase
{
    public virtual int id { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

当我从这个类继承到'派生'类时,我得到:

class Derived : bbase
{
    public override int id
    {
        get
        {
            return base.id;
        }
        set
        {
            base.id = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

初始化基类和派生类并将值分配给基类属性后,如下所示:

bbase b2 = new bbase();
Derived d2 = new Derived();
b2.id = 6;
Run Code Online (Sandbox Code Playgroud)

当我尝试从派生类输出值时,它输出'0':

Console.WriteLine(d2.id);
Run Code Online (Sandbox Code Playgroud)

我的困惑是,当我尝试使用虚拟方法的相同方法时,它工作正常.base.method()工作正常的派生类方法.它返回基本方法中的任何内容,但为什么不返回自动实现的属性?

class bbase 
{
    public virtual void execute() { Console.WriteLine("base.execute2"); }
}

class Derived : bbase
{
     public override void execute() …
Run Code Online (Sandbox Code Playgroud)

c# inheritance overriding properties

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

理解为什么我在get方法中遇到递归错误

我目前正在学习属性并遇到了一些问题.当我在get方法中返回我的属性时,我收到一个递归错误.

这是因为每当我返回属性时它会激活get方法,它返回属性,激活get方法等?

这是我的代码:

using UnityEngine;

struct Enemy
{
    public int Bonus;
    private int gold; 

    public int Gold
    {
        get
        {
            return Gold + Bonus;  
        }                       
        set                 
        {
            gold = value; 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# properties unity-game-engine

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

如何在 PHP 中永久类型转换类属性?

我一直在阅读PHP 手册的“可见性”部分,在第一条评论中,有人提到:

外部代码可以将 Item 属性转换为任何其他 PHP 类型(布尔值、整数、浮点数、字符串、数组和对象等)——另一个巨大的错误。

考虑这个例子:

class base {
    public $foo = 1;
}

$first = new base();

(string)$first->foo; //I thought just this expression would typecast
var_dump($first->foo); //but I found it still is int


$first->foo = (string)$first->foo;    
var_dump($first->foo); //ok so public props can be typecasted
Run Code Online (Sandbox Code Playgroud)

是不是我们不能从外部更改其类型的受保护和私有属性?或者这也适用于公共财产吗?

php oop casting properties private-members

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

为什么java属性在以"!"开头时不起作用?

我试过这个属性文件:

# test config

# global configuration
!title=Test report
!background=fff

query=...
paramSource=...
Run Code Online (Sandbox Code Playgroud)

!param!background被从来没有读过.

为什么?

java properties

-4
推荐指数
1
解决办法
107
查看次数

C#初始化列表属性

我有以下类...我如何初始化一些值
我的问题是,我如何在Main上初始化RootObject与一些值例如

    Rootobject robj = new Rootobject();
    robj.inchistor.Add()     



    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace JsonSample3
    {

        public class Customerinfo
        {
            public string customername { get; set; }
            public string address { get; set; }
            public string postcode { get; set; }
        }

        public class Inchistory
        {

            public Customerinfo customerinfo { get; set; }
            public string r { get; set; }
            public string reference { get; set; }
            public string region { get; set; }

        }

        public class …
Run Code Online (Sandbox Code Playgroud)

c# properties list

-4
推荐指数
1
解决办法
1万
查看次数

Delphi 中的属性有更短的表示法吗?

我通常使用 C# 编程,但也使用旧语言 Delphi。据我所知,在 Delphi 中,属性使用大量代码,如下所示:

private
  FOPPORTUNITY_NR   : string;

  procedure SetOPPORTUNITY_NR(const aOPPORTUNITY_NR: string);
  function  GetOPPORTUNITY_NR: string;

public
  property  OPPORTUNITY_NR: string read GetOPPORTUNITY_NR write SetOPPORTUNITY_NR;

implementation

procedure TTypeName.SetOPPORTUNITY_NR(const aOPPORTUNITY_NR: string);
begin
  if (SpecialStrUtils_13.IsBlankStr(aOPPORTUNITY_NR)) then
    raise Exception.CreateFmt('OPPORTUNITY_NR cannot be empty');

  FOPPORTUNITY_NR := aOPPORTUNITY_NR;
end;

function TTypeName.GetOPPORTUNITY_NR: string;
begin
  if (SpecialStrUtils_13.IsBlankStr(FOPPORTUNITY_NR)) then
    raise Exception.CreateFmt('OPPORTUNITY NUMBER not set');

  Result := FOPPORTUNITY_NR;
end;
Run Code Online (Sandbox Code Playgroud)

在 C# 中,我可以像这样编写上面的代码:

private string? _opportunityNr = null;

public string OpportunityNr 
{ 
    get => _opportunityNr ?? throw new Exception("Opportunitynr not set"); …
Run Code Online (Sandbox Code Playgroud)

delphi properties

-4
推荐指数
1
解决办法
208
查看次数

属性"if"的值为null或undefined,而不是Function对象

我正在创建一个测验模板,我将用于模块评估.在这个过程中,我用单选按钮创建了一个真/假问题.当我点击分数按钮检查我的答案时,我得到属性的值"if"为null或未定义,而不是Function对象."我检查了单选按钮id以确保它与我的If中的id匹配( document.getElementById('answer_true').checked)语句.我所有其他带有单选按钮的多项选择问题都可以正常工作.我似乎无法把手指放在问题的根源上.分数按钮调用check_tfQ函数并告诉我问题在if语句中.任何帮助将不胜感激.

<script language="JavaScript" type="text/javascript">
<!--
// variable declarations
score=0;
counter=0;
c=1;
correct="Correct! ";
incorrect="Incorrect! ";
// function declarations for each question

function Question1()
{
document.getElementById("main_ques").innerHTML="1. Put question 1 here.";
document.getElementById("choice1").innerHTML="Put answer 1.1 here.";
document.getElementById("choice2").innerHTML="Put answer 1.2 here.";
document.getElementById("choice3").innerHTML="Put answer 1.3 here.";
document.getElementById("counter").innerHTML="Counter is "+c;
}
function checkQ1()
{
c+=1;
if (document.getElementById('answer_a').checked)
{
score+=1;
document.getElementById("reply_b").innerHTML=correct;
document.getElementById("testscore").innerHTML=score;
}
else if (document.getElementById('answer_a').checked==false)
{
document.getElementById("reply_a").innerHTML=incorrect;
}
}
function Question2()
{
document.getElementById("main_ques").innerHTML="2. Put question two here.";
document.getElementById("choice1").innerHTML="Put answer 2.1 here.";
document.getElementById("choice2").innerHTML="Put answer 2.2 here."; …
Run Code Online (Sandbox Code Playgroud)

javascript null properties object

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

在C#中声明两个具有不同类型但名称相似的属性

我可以声明两个不同类型的属性,但在C#中具有相似的名称.像这样的东西:

public class Types
{
    public string Element
        {
            get { return ""; }
        }
    public int Element
        {
            get { return 0; }
        }
}
Run Code Online (Sandbox Code Playgroud)

c# properties

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

-8
推荐指数
1
解决办法
140
查看次数