吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1271|回复: 9
收起左侧

[求助] c#继承接口后的get=>和set=>表示什么含义?

  [复制链接]
163585580 发表于 2023-1-18 10:20
如图所示,我实现接口后重写这个方法,请问这个get=>Name是什么意思啊?还有set为什么后面还有个value啊?
所示.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wkfy 发表于 2023-1-18 10:36
应该和属性是一样的吧。  get: return(Name)     set: Name=value;
namedlxd 发表于 2023-1-18 10:40
limit7 发表于 2023-1-18 10:42
是属性,和 {get;set;} 一样
get=>name就是说外面调用get方法时,返回给外面name。
=>是lambda表达式,等同于
pulic string get()
{
return Name;
}
value就是指调用set方法时,传过来的值
public string set(string value)
{
Name=value
}
老湿机 发表于 2023-1-18 10:59
根据我编程多年浅显的经验,这个属于语法糖规范。
默认情况下都这么写,当然可以自己重新封装,
Get和Set内可以写更加复杂的操作,比如调用Get,将内部的属性 Md5加密,外部调用属性赋值时,内部做更加复杂的操作[img][/img]
public class Test
    {
        string fuckName;

        public string FuckName { get => Md5(fuckName); set => fuckName = value; }

        public string Md5(string fuckName)
        {
            fuckName += "大过年的";
            return fuckName;
        }
    }


Test test = new Test();
            test.FuckName = "123";
            Console.WriteLine(test.FuckName);
易桶浆糊 发表于 2023-1-18 12:05
没有set 就是只读,有就是可读可写
零下八度 发表于 2023-1-18 15:11
lambda 语法糖而已,你可以看看lambda和属性的简写相关。

主要还是为了书写方便,简化代码。概念我就不复制粘贴了,给你写个简写的转化过程:

属性的标准写法:
[C#] 纯文本查看 复制代码
public class Newyear: Ultureman
{
    string _name;
    public string Name 
    { 
        get
        {
            return _name; //这里是 getter 的方法体,由于只有一行,可以进一步简写:写法2
        }
    set
    {
        _name = value;//这里是 setter 的方法体,由于只有一行,可以进一步简写:写法2
    }
	}
}


写法2:只有一行,进一步简写(把花括号、return 之类的去掉,节省代码):
[C#] 纯文本查看 复制代码
public class Newyear: Ultureman
{
    string _name;
    public string Name 
    { 
        get => _name;         //由于这里不对_name字段做任何改动直接返回,可以进一步简写:写法3
        set => _name = value; //由于这里不对_name字段做任何改动直接返回,可以进一步简写:写法3
    }
}


写法3:由于不对_name字段做任何改动直接返回,进一步简写(把_name字段都去掉,反正也不做改动):
[C#] 纯文本查看 复制代码
public class Newyear: Ultureman
{
	public string Name 
	{ 
    get;
    set;
	}
}


进一步整理代码:
[C#] 纯文本查看 复制代码
public class Newyear: Ultureman
{
    public string Name { get;set;}
}



ps:现在的语法糖越来越多了,有很多帖子专门整理了所有C#版本的新语法 ,你可以去看看。


4899 发表于 2023-1-18 15:26
就是字面意思,get返回name  set 设置name
RURUKnight 发表于 2023-1-18 16:07
主要原因是很多书还是低版本的C#导致的……
头像被屏蔽
jackrebel 发表于 2023-2-8 15:06
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 02:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表