<p>I've seen this syntax a couple times now, and it's beginning to worry me,</p>

<p>For example:</p>

<pre><code>iCalendar iCal = new iCalendar();
Event evt = iCal.Create&lt;Event&gt;();
</code></pre>

It's calling a generic method - so in your case, the method may be declared like this:
```
```
public T Create<T>()
```
```
You can specify the type argument in the angle brackets, just as you would for creating an instance of a generic type:
```
```
List<Event> list = new List<Event>();
```
```
Does that help?
One difference between generic
methods
and generic
types
is that the compiler can try to infer the type argument. For instance, if your
```
Create
```
method were instead:
```
```
public T Copy<T>(T original)
```
```
you could just call
```
```
Copy(someEvent);
```
```
and the compiler would infer that you meant:
```
```
Copy<Event>(someEvent);
```
```