Toon posts:

[VB.NET] compiler messages genereren

Pagina: 1
Acties:

Verwijderd

Topicstarter
In delphi heb je de beschikking over verschillende switches in de code die invloed uit kunnen oefenen op het compileer/build process. Bijvoorbeeld een Waarschuwing geven tijdens het compileren als een bepaalde functie niet meer gebruikt dient te worden.
The Delphi message directive allows source code to emit hints, warnings, and errors just as the compiler does. This is similar to #emit or pragma warn in C and C++.
The message type (HINT, WARN, ERROR, or FATAL) is optional. If no message type is indicated, the default is HINT. The text string is required and must be enclosed in single quotes.
Examples:
code:
1
2
3
4
5
6
{$MESSAGE 'Boo!'}                   emits a hint 

{$Message Hint 'Feed the cats'}     emits a hint 
{$messaGe Warn 'Looks like rain.'}  emits a warning 
{$Message Error 'Not implemented'}  emits an error, continues compiling 
{$Message Fatal 'Bang.  Yer dead.'} emits an error, terminates compiler
Bestaat zoiets ook in Visual Basic.NET?
Het betreffende bericht zou dan in de To-do lijst (van Visual Studio.NET) moeten komen.

[ Voor 9% gewijzigd door Verwijderd op 12-06-2004 17:17 ]


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Kan dat niet gewoon via de C/C++ macro's? Of heb je dat niet in Visual Basic .Net?
(#warn, #line, #error, etc)

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Nee, die bestaan niet in VB.net. Ik vraag me echter af waarom je niet zou willen dat een functie wordt gebruikt. Als je dat niet wilt, verwijder hem dan. :Y)

Je zou ook dit kunnen gebruiken om dat te voorkomen:

Visual Basic .NET:
1
2
3
4
5
Public Sub FunctionThatShouldntBeCalled()
   #If Debug Then
       New WarningException("This function shouldn't be called!")
   #EndIf
End Sub

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Dingen als 'obsolete' kun je met .NET Attributes aangeven toch?

Idd:
The attribute is emitted into metadata when you compile your code and is available to the common language runtime and any custom tool or application through the runtime reflection services.

By convention, all attribute names end with Attribute. However, several languages that target the runtime, such as Visual Basic and C#, do not require you to specify the full name of an attribute. For example, if you want to initialize System.ObsoleteAttribute, you only need to reference it as Obsolete.

The following code example shows how to declare System.ObsoleteAttribute, which marks code as obsolete. The string "Will be removed in next version" is passed to the attribute. This attribute causes a compiler warning that displays the passed string when code that the attribute describes is called.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
public class MainApp
{
    public static void Main()
    {
        //This generates a compile-time warning.
        int MyInt = Add(2,2); 
    }
    //Specify attributes between square brackets in C#.
    //This attribute is applied only to the Add method.
    [Obsolete("Will be removed in next version")]
    public static int Add( int a, int b)
    {
        return (a+b);
    }  
}
In VB.NET kan hetzelfde :) Zie MSDN bij "Extending Metadata Using Attributes".

[ Voor 94% gewijzigd door curry684 op 12-06-2004 18:52 ]

Professionele website nodig?


Verwijderd

Topicstarter
curry684 schreef op 12 juni 2004 @ 18:48:
Dingen als 'obsolete' kun je met .NET Attributes aangeven toch?
[...]
In VB.NET kan hetzelfde :) Zie MSDN bij "Extending Metadata Using Attributes".
OK. Het was inmiddels al gelukt.

Nog een vraagje wat ik wil bereiken. Stel ik maak een klasse met allemaal functies. Nu wil ik aan al die functies een beschrijving meegeven. Zodat als je "Code completion (CTRL+SPACE)" gebruikt je dan ook de beschrijving van de functie te zien krijgt als je de functie selecteert.

Dit zou ik ook met "Metadata" moeten kunnen bereiken.

Ik heb het onderstaande in de help gevonden. Maar dat heeft niet het gewenste resultaat.
code:
1
<Description("foo is een functie. i is een integer ofzo")>private sub foo(i as integer) as boolean


Volgens de help krijg je bovenstaande omschrijving, als ik het goed begrepen heb, in de property/object inspector te zien (hoe heet dat ding ook alweer. ik heb nu even geen VS.NET bij de hand.)

Wie weet raad?

[ Voor 9% gewijzigd door Verwijderd op 28-06-2004 22:43 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20:27

gorgi_19

Kruimeltjes zijn weer op :9

Da's de summary, welke hij pakt uit de bijbehorende comment. (Als je /// boven een functie zet in C#)

VB.Net kent dit standaard niet, tenzij je de VBCommenter Powertoy voor VS.Net installeert. Dan kan je dit wel voor elkaar krijgen, als ik het goed heb.

[ Voor 44% gewijzigd door gorgi_19 op 28-06-2004 22:50 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 23-05 16:11

CaptBiele

No Worries!

gorgi_19 schreef op 28 juni 2004 @ 22:50:
Da's de summary, welke hij pakt uit de bijbehorende comment. (Als je /// boven een functie zet in C#)

VB.Net kent dit standaard niet, tenzij je de VBCommenter Powertoy voor VS.Net installeert. Dan kan je dit wel voor elkaar krijgen, als ik het goed heb.
Ehm ik weet dat het bij WebServices wel direct mogelijk is om een beschrijving erbij te zetten:

Visual Basic .NET:
1
2
<WebMethod (Description:="Functie doet dit. Returns String.")> _
       Public Function infoTemp() As String


Weet niet zeker of je dit bedoelt, maar dit zit standaard in VS 2003. Kan me niet voorstellen dat het bij de gewone functies niet werkt.

HTH

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20:27

gorgi_19

Kruimeltjes zijn weer op :9

Voor zover ik heb begrepen, wil hij een tooltip bij intellisense. Dit wordt standaard niet door VS.Net 2003 / VB.Net ondersteund. Zie ook: http://www.gotdotnet.com/...ard/Thread.aspx?id=107104

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:52
Die Description property van een webservice is nog iets anders; zoals gorgi_19 al zegt is het wel mogelijk om in C# een dergelijke 'intellisense-tip' te krijgen dmv /// commentaar.

Ik heb zelf nog niet die Description gebruikt icm het WebMethod attribute. Ik denk ook niet dat die description in je IDE getoond wordt als je door je Intellisense lijstje scrolled, of als je Ctrl-Shift-Space indrukt?

https://fgheysels.github.io/

Pagina: 1