当前位置:  开发笔记 > 编程语言 > 正文

无法使用ref关键字.非常新手的问题!

如何解决《无法使用ref关键字.非常新手的问题!》经验,为你挑选了1个好方法。

这是我的班级:

public class UserInformation
    {
        public string Username { get; set; }
        public string ComputerName { get; set; }
        public string Workgroup { get; set; }

        public string OperatingSystem { get; set; }
        public string Processor { get; set; }
        public string RAM { get; set; }
        public string IPAddress { get; set; }

        public UserInformation GetUserInformation()
        {
            var CompleteInformation = new UserInformation();

            GetPersonalDetails(ref CompleteInformation);
            GetMachineDetails(ref CompleteInformation);

            return CompleteInformation;
        }

        private void GetPersonalDetails(ref UserInformation CompleteInformation)
        {

        }

        private void GetMachineDetails(ref UserInformation CompleteInformation)
        {

        }
    }

我的印象是ref关键字告诉计算机使用相同的变量而不是创建一个新变量.

我正确使用它吗?我是否必须在调用代码行和实际方法实现上使用ref?



1> wsanville..:

当您将引用类型(在您的情况下,您的UserInformation类是引用类型)作为参数传递时,默认情况下您将指针传递给类的值,这意味着GetPersonalDetails它将获得自己的指针副本,该指针指向相同的UserInformation班级的实例.

ref在示例中使用关键字会将指向UserInformation实例的相同指针传递给方法.

所以你的情况,如果你的目的是简单修改的属性UserInformation时,ref在不需要的关键字,因为你会被修改,从实际情况GetPersonalDetailsGetMachineDetails.但是,如果您的目的是UserInformation从这些方法中实例化一个新对象或将实例设置为null,则需要使用该ref关键字.

Jon Skeet在解释本文中的参数传递方面做得很好.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有