Difference between revisions of "Inserting Delegate Stubs in VS2012 (CS)"
From Ribbon Commander Documentation
(Created page with "{{DISPLAYTITLE:Inserting Delegate Stubs in VS2012 (C#)}}") |
(→Example) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:Inserting Delegate Stubs in VS2012 (C#)}} | {{DISPLAYTITLE:Inserting Delegate Stubs in VS2012 (C#)}} | ||
+ | == Introduction == | ||
+ | In Visual Studio 2012, you can automatically insert delegate stubs based on their signature in C#. | ||
+ | |||
+ | == Example == | ||
+ | Consider the simple example below: | ||
+ | <syntaxhighlight lang="csharp" line> | ||
+ | class SubscribeToDelegates | ||
+ | { | ||
+ | rxCustomUI _customUI; | ||
+ | |||
+ | public SubscribeToDelegates() | ||
+ | { | ||
+ | // Create a new customUI obj | ||
+ | _customUI = rxCustomUI.create("my_test_ctx"); | ||
+ | |||
+ | // Create a new button | ||
+ | rxButton myButton = new rxButton(); | ||
+ | |||
+ | // Create a new delegate of the correct signature | ||
+ | // NOTE1: We use class rxButtonDelegates to conveniently get the desired delegate type | ||
+ | // NOTE2: The delegate stub hasn't been provided at this point | ||
+ | var myDel = new rxButtonDelegates.onAction(MyOnAction); | ||
+ | |||
+ | // Subscribe to the button's onAction delegate | ||
+ | myButton.onAction = _customUI.make_delegate(myDel); | ||
+ | |||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | * Note1: At this point we haven't yet provided the delegate stub, so intellisense marks ''myOnAction'' with red squiggles: | ||
+ | *: [[image: MyOnActionRedSquiggles.png|border|link=]] | ||
+ | * Note2: When clicking inside ''MyOnAction'', intellisense provides us with the option to insert the delegate stub automatically: | ||
+ | *: [[image: InsertDelegateStubCS.png|border|link=]] | ||
+ | |||
+ | The class now becomes: | ||
+ | <syntaxhighlight lang="csharp" line> | ||
+ | class SubscribeToDelegates | ||
+ | { | ||
+ | rxCustomUI _customUI; | ||
+ | |||
+ | public SubscribeToDelegates() | ||
+ | { | ||
+ | // Create a new customUI obj | ||
+ | _customUI = rxCustomUI.create("my_test_ctx"); | ||
+ | |||
+ | // Create a new button | ||
+ | rxButton myButton = new rxButton(); | ||
+ | |||
+ | // Create a new delegate of the correct signature | ||
+ | // NOTE1: We use class rxButtonDelegates to conveniently get the desired delegate type | ||
+ | // NOTE2: The delegate stub hasn't been provided at this point | ||
+ | var myDel = new rxButtonDelegates.onAction(MyOnAction); | ||
+ | |||
+ | // Subscribe to the button's onAction delegate | ||
+ | myButton.onAction = _customUI.make_delegate(myDel); | ||
+ | |||
+ | } | ||
+ | |||
+ | private void MyOnAction(IRibbonControl control) | ||
+ | { | ||
+ | throw new NotImplementedException(); | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> |
Latest revision as of 17:07, 15 March 2013
Introduction
In Visual Studio 2012, you can automatically insert delegate stubs based on their signature in C#.
Example
Consider the simple example below:
class SubscribeToDelegates
{
rxCustomUI _customUI;
public SubscribeToDelegates()
{
// Create a new customUI obj
_customUI = rxCustomUI.create("my_test_ctx");
// Create a new button
rxButton myButton = new rxButton();
// Create a new delegate of the correct signature
// NOTE1: We use class rxButtonDelegates to conveniently get the desired delegate type
// NOTE2: The delegate stub hasn't been provided at this point
var myDel = new rxButtonDelegates.onAction(MyOnAction);
// Subscribe to the button's onAction delegate
myButton.onAction = _customUI.make_delegate(myDel);
}
}
- Note1: At this point we haven't yet provided the delegate stub, so intellisense marks myOnAction with red squiggles:
- Note2: When clicking inside MyOnAction, intellisense provides us with the option to insert the delegate stub automatically:
The class now becomes:
class SubscribeToDelegates
{
rxCustomUI _customUI;
public SubscribeToDelegates()
{
// Create a new customUI obj
_customUI = rxCustomUI.create("my_test_ctx");
// Create a new button
rxButton myButton = new rxButton();
// Create a new delegate of the correct signature
// NOTE1: We use class rxButtonDelegates to conveniently get the desired delegate type
// NOTE2: The delegate stub hasn't been provided at this point
var myDel = new rxButtonDelegates.onAction(MyOnAction);
// Subscribe to the button's onAction delegate
myButton.onAction = _customUI.make_delegate(myDel);
}
private void MyOnAction(IRibbonControl control)
{
throw new NotImplementedException();
}
}