方法中的泛型,c#

本文关键字:泛型 方法 | 更新日期: 2023-09-27 18:17:12

这是我的第一个问题,所以请温柔一点:)

我希望能够使用泛型类型的方法,它将返回我的对象供以后使用。我已经尝试了下面的代码,但它不完整。

我需要这样调用:City city = GetDataById(Id);当然,我需要的不是city,而是通用用法。谢谢你。

private T GetDataById(Guid Id)
        {
            T obj;
            using (ISession session = Session.OpenSession())
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    obj = session.Get<T>(Id);
                    tx.Commit();                    
                }    
                 return obj;
            }
        }

方法中的泛型,c#

我想你想:

    private T GetDataById<T>(Guid Id)
    {
        T obj;
        using (ISession session = Session.OpenSession())
        {
            using (ITransaction transaction = session.BeginTransaction())
            {
                obj = session.Get<T>(Id);
                tx.Commit();
            }
            return obj;
        }
    }

则称其为:

        City city = GetDataById<City>(Id);

你从不定义t。需要。

private T GetDataById<T>(Guid Id) { /* ... */ }

City city = GetDataById(Id);

永远不能这样调用它,因为不能推断类型参数。您将需要提供它,即

City city = GetDataById<City>(Id);