---
title: "Binda List till DataGridView= HUR???"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/169461-binda-list-till-datagridview-hur/page2"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "CatZ"
published: "2008-02-29T11:14:23.000Z"
updated: "2008-03-05T18:09:19.000Z"
replies: 22
views: 1370
page: 2
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/169461-binda-list-till-datagridview-hur"
---

# Binda List till DataGridView= HUR???

_Sida 2 av 2._

## #21 — CatZ, 2008-03-05T13:06Z

Nu har jag inte alls hunnit titta på det du skrev Nickemannen... men när jag försöker kalla på metoden med 

```
GetWrappedList<AlarmDataStructHolder, AlarmDataStruct>(IEnumerable<<alarmlist>);
```

 så får jag att 

> **Visual Studio 2008 skrev:**
>
> The type 
> 	'EFTest.AlarmDataStructHolder' 
> cannot be used as type parameter 
> 	'TClass' 
> in the generic type or method 
> 	'GetWrappedList\<TClass,TStruct\>(System.Collections.Generic.IEnumerable\<TStruct\>)'. 
> 
> There is no implicit reference conversion 
> from 
> 	'EFTest.AlarmDataStructHolder' 
> to 
> 	'EFTest.Form1.IStructHolder\<EFTest.AlarmDataStruct\>'

 Jag är inte med riktigt men jag ska studera det lite senare ;)

Permalänk: https://www.webforum.nu/p/2086378

## #22 — spango, 2008-03-05T13:37Z

> **Nickemannen skrev:**
>
> Activator.CreateInstance är inte så snabb så denna lösning bör fungera bättre.
> 
>
>
> ```
> [I]*** snip[/I]
>             TClass wrappedStructClass = new TClass();
> ```

Faktum är att en generisk new är långsammare än ett anrop till Activator.CreateInstance (och därmed MYCKET långsammare än vanliga konstruktoranrop), och involverar faktiskt ett anrop till just Activator.CreateInstance. Jag har inte satt mig in tillräckligt mycket i den IL-koden det ger upphov till, men skulle gissa att följande kod...

```
class X<T> where T : new()
{
    public T Create()
    {
        return new T();
    }
}
```

... är likvärdig med följande:

```
class X<T> where T : new()
{
    public T Create()
    {
        try
        {
            return Activator.CreateInstance<T>();
        }
        catch (TargetInvocationException e)
        {
            throw e.InnerException;
        }
    }
}
```

Man får således ingen prestandavinst av new om man gör det på en parametriserad typ, tvärtom. Däremot beter sig koden mer som man skulle förvänta sig.

Permalänk: https://www.webforum.nu/p/2086381

## #23 — Nickemannen, 2008-03-05T18:09Z

hmm, det stämmer nog, fick det nog lite om bakfoten när jag antog att generics genererade kod som sedan kompilerades. :S

Permalänk: https://www.webforum.nu/p/2086409

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/169461-binda-list-till-datagridview-hur/page2  
Föregående sida: https://www.webforum.nu/amne/dotnet/169461-binda-list-till-datagridview-hur.md
