首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从同一方法返回字符串和int

从同一方法返回字符串和int
EN

Stack Overflow用户
提问于 2017-04-14 14:45:04
回答 7查看 5.9K关注 0票数 0
代码语言:javascript
复制
public static int getInfo(string info)
    {
        string inputValue;
        int infor;
        Console.WriteLine("Information of the employee: {0}", info);
        inputValue = Console.ReadLine();
        infor = int.Parse(inputValue);
        return infor;

    }

在上面的代码中,我如何获取一个人的姓名(String)和薪水(Int)?规范是,我需要调用该方法两次才能检索信息。

EN

回答 7

Stack Overflow用户

发布于 2017-04-14 14:45:55

您可以单独传递它,如果您创建一个包含信息和薪水的类,则传递效果会更好

代码语言:javascript
复制
 public static int getInfo(string info,int salary)

或者创建一个类,

代码语言:javascript
复制
 public class MyInfo
    {
        public int info { get; set; }
        public int salary { get; set; }

    }

方法签名是这样的,

代码语言:javascript
复制
 public static int getInfo(MyInfo info)

如果希望同时返回字符串和整数,最好将方法签名更改为类MyInfo的类型

代码语言:javascript
复制
 public static MyInfo getInfo(MyInfo info)
票数 5
EN

Stack Overflow用户

发布于 2017-04-14 14:53:42

您可以让它返回一个包含两个值的元组,如下所示:

代码语言:javascript
复制
internal Tuple<int, string> GetBoth(string info)
{
    string inputValue;
    int infor;
    Console.WriteLine("Information of the employee: {0}", info);
    inputValue = Console.ReadLine();
    infor = int.Parse(inputValue);
    return new Tuple<int, string>( infor, inputValue );
}

internal void MethodImCallingItFrom()
{
    var result = GetBoth( "something" );
    int theInt = result.Item1;
    string theString = result.Item2;
}
票数 1
EN

Stack Overflow用户

发布于 2021-12-05 05:43:23

为了从一个方法返回多个值,我们可以使用元组或(DataType,DataType,..)。

元组是只读的。因此,只能在声明时通过构造函数赋值。

下面的例子是使用多种数据类型作为返回类型。其既能读又能写。

代码语言:javascript
复制
    public (string, int) Method()
    {
        (string, int) employee;
        employee.Item1="test";
        employee.Item2=40;

        return employee;
    }

您可以在主代码中调用上述方法,如下图所示:

代码语言:javascript
复制
    static void Main(string[] args)
    {
        
        (string name,int age) EmpDetails = new Program().Method();
        string empName= EmpDetails.name;
        int empAge = EmpDetails.age;

        //Not possible with Tuple<string,int>
        EmpDetails.name = "New Name";             
        EmpDetails.age =  41;
    }

但是,最佳实践是使用具有属性的类,如上面的答案所述。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43406548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档