c#中的静态本地方法

简介: c#中的静态本地方法

在 C# 8 中微软增加了静态本地方法,这种类型的方法无法获取和修改任何本地变量和实例成员。下面我们来看一下这种方法的具体用法。

首先我们来看一下普通的方法:

class Program
{
    string name = "张三";
    public void Opreation()
    {
        int age = 20;
        int GetAge()
        {
            age = 40;
            return age;
        }
        string GetName()
        {
            name = "李四";
            return name;
        }
    }
}

在上述代码中我们可以在本地方法中任意修该变量和实例成员的值,在大多数情况下我们并不希望实例变量和本地变量的值被修改或者被获取到,这时我们就可以使用 c# 8 中的静态本地方法来处理这个问题。方法很简单,就是在本地方法前加上 static 关键字即可,如果需要在静态本地方法中捕获并修改者实例变量的话,就需要在实例变量前加上 static 即可。我们将前面的代码修改如下:

class Program
{
    static string name = "张三";
    public void Opreation()
    {
        int age = 20;
        static int GetAge()
        {
            #region 这样写会报错
            //age = 40;
            // return age;
            #endregion
            return 40;
        }
        static string GetName()
        {
            name = "李四";
            return name;
        }
    }
}

静态本地方法的可以帮助我们皮面本地方法捕获实例状态,并且在某些情况下可以提升性能。

目录
相关文章
|
3月前
|
Java 调度 C#
C#学习系列相关之多线程(一)----常用多线程方法总结
C#学习系列相关之多线程(一)----常用多线程方法总结
|
3月前
|
C#
C#学习相关系列之数组---常用方法使用(二)
C#学习相关系列之数组---常用方法使用(二)
|
2月前
|
数据采集 数据可视化 测试技术
C#生成Selenium测试报告:实用方法与技巧
在C#中使用Selenium进行自动化测试时,结合代理IP和ExtentReports能增强测试安全性和报告质量。安装必备工具如Selenium WebDriver、NUnit和ExtentReports。在测试设置中,配置代理(如亿牛云爬虫代理)以隐藏IP,通过ChromeOptions定制UserAgent,并添加Cookie。测试代码示例展示了如何打开网页、执行搜索并生成详细的测试报告。使用ExtentReports可创建可视化测试结果,便于团队分析。
C#生成Selenium测试报告:实用方法与技巧
|
4天前
|
C#
C# async await 异步执行方法
C# async await 异步执行方法
9 0
|
6天前
|
C# 图形学
小功能⭐️C#控制小数点后位数的方法
小功能⭐️C#控制小数点后位数的方法
|
13天前
|
C#
WPF/C#:数据绑定到方法
WPF/C#:数据绑定到方法
21 0
|
2月前
|
C#
技术经验分享:C#DUID的用法及取得整数的几个方法
技术经验分享:C#DUID的用法及取得整数的几个方法
32 1
|
2月前
|
C#
蓝易云 - C#将异步改成同步方法
注意:虽然这样可以将异步方法转为同步,但在实际开发中,我们通常推荐使用异步方法,因为它可以提高应用程序的响应性和并发性。将异步方法转为同步可能会导致死锁或性能问题。
20 2
|
2月前
|
安全 编译器 API
程序与技术分享:C#调用DLL的几种方法
程序与技术分享:C#调用DLL的几种方法
30 0
|
3月前
|
存储 数据采集 API
C# GetField 方法应用实例
C# GetField 方法应用实例