Provides VB.NET coding assistance adhering to modern .NET 2026 conventions, strict typing, naming guidelines, async patterns, error handling, and performance...
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install vbnet-coder-en或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install vbnet-coder-en⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/vbnet-coder-en/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
Target: Claude-Code, Codex, AI coding agents Version: 2026 Modern .NET Max Lines: 500
---
For detailed patterns, examples, and best practices on specific topics, see:
| Topic | File | When to consult | |-------|------|-----------------| | Type System | docs/types-and-declarations.md | Variable declarations, nullable types, field declarations | | Control Flow | docs/control-flow.md | If/ElseIf, Select Case, loops, Exit/Continue | | Async/Await | docs/async-patterns.md | Async method structure, ConfigureAwait, cancellation, Task.WhenAll | | Error Handling | docs/error-handling.md | Exceptions, Try/Catch/Finally, IDisposable, Using statement | | LINQ | docs/linq-patterns.md | Query/method syntax, common operations, deferred execution | | Strings & Collections | docs/strings-and-collections.md | String comparison/building, List, Dictionary, HashSet, arrays | | Class Design & Patterns | docs/class-design-and-patterns.md | Properties, constructors, interfaces, Factory, Repository, Null Object |
---
ALWAYS include at top of every file:
Option Explicit On
Option Strict On
Option Infer On
Rationale: Option Explicit On prevents undeclared variable usage (catches typos), Option Strict On enforces type safety (prevents implicit conversions causing runtime errors), Option Infer On enables local type inference while maintaining type safety.
Never use: Option Explicit Off or Option Strict Off - these create runtime errors, performance degradation, and late binding overhead.
Project-level setting preferred: Set in .vbproj file rather than per-file when possible.
---
| Element | Convention | Example | |---------|-----------|---------| | Namespace | PascalCase, hierarchical | CompanyName.ProductName.ComponentName | | Class/Interface | PascalCase, noun/noun phrase | CustomerRepository, IPaymentProcessor | | Interface prefix | Starts with I | IDisposable, IEnumerable(Of T) | | Method | PascalCase, verb/verb phrase | CalculateTotal(), ProcessPayment() | | Property | PascalCase, noun/adjective | CustomerName, IsActive | | Field (private) | _camelCase with underscore | _connectionString, _maxRetries | | Field (public/shared) | PascalCase | MaxValue, DefaultTimeout | | Parameter/Local | camelCase | userId, itemCount | | Constant | PascalCase or UPPER_SNAKE | MaxConnections, DEFAULT_TIMEOUT | | Enum Type | PascalCase, singular | OrderStatus, FileMode | | Enum Members | PascalCase | OrderStatus.Pending, FileMode.Read | | Event | PascalCase, verb phrase | DataReceived, ConnectionClosed | | Delegate | PascalCase, ends with Handler/Callback | EventHandler, DataReceivedCallback | | Generic Type Param | T + PascalCase | TKey, TValue, TEntity |
Boolean names: Use Is, Has, Can, Should prefixes:
Dim isValid As Boolean
Dim hasChildren As Boolean
Dim canProcess As Boolean
Collection/Array naming: Plural nouns:
Dim customers As List(Of Customer)
Dim orderIds() As Integer
Async method suffix: Always use Async:
Public Async Function LoadDataAsync() As Task(Of DataSet)
Public Async Function SaveCustomerAsync(customer As Customer) As Task
Avoid: Hungarian notation (strName, intCount), My prefix (conflicts with VB.NET My namespace), abbreviations unless universally known (OK: Id, Xml, Http; Avoid: Mgr, Proc, Calc).
---
' ✓ Implicit line continuation (no underscore needed)
Dim result = customers _
.Where(Function(c) c.IsActive) _
.OrderBy(Function(c) c.Name) _
.ToList()
Dim customer = New Customer With {
.Name = "John",
.Email = "[email protected]",
.IsActive = True
}
' Method parameters
Public Function ProcessOrder(
orderId As Integer,
customerId As Integer,
processDate As Date) As OrderResult
' Single-line comment for brief explanations
''' <summary>
''' Processes customer orders asynchronously.
''' </summary>
''' <param name="customerId">The unique customer identifier.</param>
''' <param name="cancellationToken">Token to cancel the operation.</param>
''' <returns>A task representing the async operation with the order result.</returns>
''' <exception cref="CustomerNotFoundException">Thrown when customer not found.</exception>
Public Async Function ProcessOrdersAsync(
customerId As Integer,
cancellationToken As CancellationToken) As Task(Of OrderResult)
' Implementation
End Function
Avoid: Commenting obvious code, redundant comments, commented-out code (use version control).
---
Standard file structure:
Option Explicit On
Option Strict On
Option Infer On
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Threading.Tasks
Namespace CompanyName.ProjectName.ComponentName
''' <summary>
''' Brief class description.
''' </summary>
Public Class ClassName
' Constants
Private Const DefaultTimeout As Integer = 30
' Shared (static) fields
Public Shared ReadOnly MaxConnections As Integer = 100
' Private fields
Private _connectionString As String
Private ReadOnly _logger As ILogger
' Constructors
Public Sub New(logger As ILogger)
_logger = logger
End Sub
' Properties
Public Property Name As String
' Methods
Public Function DoSomething() As Integer
' Implementation
End Function
' IDisposable implementation if needed
Public Sub Dispose() Implements IDisposable.Dispose
' Cleanup
End Sub
End Class
End Namespace
---
Avoid boxing/unboxing: Use generics instead of Object collections.
String comparisons: Use StringComparison.Ordinal for best performance when culture doesn't matter.
LINQ materialization: Call .ToList() only when needed; leverage deferred execution.
Async I/O: Always use async for file, database, network operations.
ConfigureAwait(False): Use in library code to avoid sync context overhead.
StringBuilder: Use for concatenating >3-4 strings in loops.
Collection capacity: Set initial capacity for List(Of T) and Dictionary(Of K, V) when size known.
Dim customers As New List(Of Customer)(expectedCount) ' Avoid reallocations
---
❌ Option Strict Off - causes runtime errors, performance issues ❌ Async void methods - unobservable exceptions (except event handlers) ❌ Blocking async code - .Result, .Wait() cause deadlocks ❌ Catching Exception without logging - swallows errors ❌ Not disposing IDisposable - memory/resource leaks ❌ Using == for strings - culture-dependent, use .Equals() with StringComparison ❌ String concatenation in loops - O(n²) performance ❌ Not using Using statement - resources not released on exception ❌ Hungarian notation - outdated, conflicts with modern style ❌ Magic numbers - use named constants ❌ Deep nesting - extract methods, early returns
---
When generating VB.NET code:
...
安装 Vbnet Coder En 后,可以对 AI 说这些话来触发它
Help me get started with Vbnet Coder En
Explains what Vbnet Coder En does, walks through the setup, and runs a quick demo based on your current project
Use Vbnet Coder En to vB
Invokes Vbnet Coder En with the right parameters and returns the result directly in the conversation
What can I do with Vbnet Coder En in my developer & devops workflow?
Lists the top use cases for Vbnet Coder En, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/vbnet-coder-en/ 目录(个人级,所有项目可用),或 .claude/skills/vbnet-coder-en/(项目级)。重启 AI 客户端后,用 /vbnet-coder-en 主动调用,或让 AI 根据上下文自动发现并使用。
Vbnet Coder En 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Vbnet Coder En 可免费安装使用。请查阅仓库了解许可证信息。
Provides VB.NET coding assistance adhering to modern .NET 2026 conventions, strict typing, naming guidelines, async patterns, error handling, and performance...
Vbnet Coder En 属于「Developer & DevOps」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my developer & devops tasks using Vbnet Coder En
Identifies repetitive steps in your workflow and sets up Vbnet Coder En to handle them automatically