一堆自定义C#代码片段,让你开发效率飞涨

SharpBoxes 是一款用于 Visual Studio 的扩展,作者为本人

该扩展旨在提高开发效率。它为开发人员提供了一组日常使用频率较高的代码片段,让你在编写代码时能够更快地插入常用的代码段。通过安装这个扩展,你可以使用快捷键轻松插入一大段代码,而无需手动编写。只需输入几个关键字,即可获得所需的代码,从而大大提高你的工作效率。此外,SharpBoxes 还支持内嵌式和包裹式插入代码,让你在开发过程中更加灵活地使用代码¹。

如果你是一个经常使用 Visual Studio 的开发者,不妨试试 SharpBoxes 扩展,看看它是否能够满足你的需求。你可以在 Visual Studio Marketplace 上找到并安装这个扩展¹。


参考资料及下载链接
¹: SharpBoxes - Visual Studio Marketplace
也可通过直接在VS中搜索下载
在这里插入图片描述

以下为具体介绍

安装完后,第一次启动,一定要以管理员权限启动VS

After installation, start it for the first time, be sure to start VS with administrator privileges.

Also Develop: SharpBoxes-已开源
同人开发:SharpBoxes-已开源
介绍博客:SharpBoxes-已开源

  • 集成了一些常用的方法; 如通用的缓存静态操作类、常用的Wpf的ValueConverters、内置的委托类型、通用的反射加载dll操作类、Wpf的ViewModel、Command、Navigation、Messenger、部分常用UserControls(可绑定的PasswordBox、PlaceHolderTextBox、HighlightTextBlock等),以及Wpf一些常用的后台数据绑定方法 其他是一些通用的扩展方法类

Visual Studio 扩展代码片段

CSharp代码片段

检查文件是否存在

fileexist

if (System.IO.File.Exists(""))
{

}

检查文件夹是否存在

direxist

if (System.IO.Directory.Exists(""))
{

}

带Index的Foreach

forwithitem

for (int index = 0; index < collection.Count; index++)
{
    var item = collection[index];
}

插入文档摘要

hddoc

/*
 * Title:
 * Author:
 * Date:
 * Purpose:
 *
 * Revisions:
 * 1.
 */

快速创建方法

method

public int GoWork(string p)
{

}

快速创建类

cc

public class MyClass
{
    public MyClass()
    {
        
    }
}

快速创建Int属性

pi

public int p { get; set; }

快速创建Double属性

pd

public double p { get; set; }

快速创建String属性

ps

public string p { get; set; }

快速创建List属性

pl

public List<int> p { get; set; }

快速MessageBox

mberror

MessageBox.Show(
    "",
    "Error",
    MessageBoxButton.OK,
    MessageBoxImage.Error
);

mbinfo
mbwarn

快速创建带TryCatchFinally方法

methodWithTryCFg

public int GoWork(string p)
{
    try
    {

    }
    catch (Exception ex)
    {
        // Exception handling code

    }
    finally
    {
        // Cleanup code
    }
}

快速Null检查

nullcheck

if (null == null)
{
}

快速生成带有消息通知的属性

propchanged

private string myProperty;
public string MyProperty
{
    get
    {
        return myProperty;
    }
    set
    {
        myProperty = value;
        OnPropertyChanged(myProperty, value);
    }
}

快速生成ReadLine

cr

快速生成StopWatch

swg

var sw = Stopwatch.StartNew();

快速生成Student类(带模拟数据)

stuclass

public class Student
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Address { get; set; }
    public static IEnumerable<Student> FakeManyStudents(int count)
    {
        var students = new List<Student>();
        var names = GenerateRandomNumber(count).Select(s => s.ToString()).ToList();
        var addresses = GenerateRandomNumber(count).Select(s => s.ToString()).ToList();
        for (int i = 0; i < count; i++)
        {
            students.Add(
                new Student
                {
                    Name = "Student " + names[i],
                    Age = 20 + i,
                    Address = "Address " + addresses[i]
                }
            );
        }
        return students;
    }
    private static List<int> GenerateRandomNumber(int count)
    {
        var rd = new Random(Guid.NewGuid().GetHashCode());
        var result = new List<int>();
        for (int i = 0; i < count; i++)
        {
            var number = rd.Next(1, 20);
            result.Add(number);
        }
        return result;
    }
}

快速生成结果状态类(通用返回值)

status

[DebuggerStepThrough]
public class Status
{
    public int Code = 0;
    public string Message = "运行成功";
    public bool Result = true;
    public Status(int code = 0, string message = null, bool result = false)
    {
        Code = code;
        Message = message;
        Result = result;
    }
    public Status(string message)
    {
        Message = message;
    }
    public Status(string message, bool result)
    {
        Message = message;
        Result = result;
    }
    public static Status OkDef = new Status(0, "结果OK", true);
    public static Status NgDef = new Status(-1, "结果NG", false);
    public static Status Ng(string message) => new Status(message, false);
    public static Status Ok(string message) => new Status(message, true);
    public static implicit operator bool(Status d) => d.Result;
    public static implicit operator string(Status d) => d.ToString();
    public override string ToString()
    {
        return $"{Code},{Result},{Message}";
    }
}

快速生成Task.Run包裹

taskg

Task.Run(() =>
 {


 });

TryCatchFinally包裹

trycatchfinally

try
{

}
catch (Exception ex)
{
    // Exception handling code

}
finally
{
    // Cleanup code
}

带属性修改回调的依赖属性

propdpn

public string Title
{
    get { return (string)GetValue(TitleProperty); }
    set { SetValue(TitleProperty, value); }
}

public static readonly DependencyProperty TitleProperty =
    DependencyProperty.Register("Title", typeof(string), typeof(Test), new PropertyMetadata(string.Empty, TitleChanged));

private static void TitleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    if (d is TextBox control)
    {

    }
}

带属性修改回调的附加属性

propan

public static string GetName(DependencyObject obj)
{
    return (string)obj.GetValue(NameProperty);
}

public static void SetName(DependencyObject obj, string value)
{
    obj.SetValue(NameProperty, value);
}

public static readonly DependencyProperty NameProperty =
    DependencyProperty.RegisterAttached(
        "Name",
        typeof(string),
        typeof(Test),
        new PropertyMetadata(string.Empty, NameChanged)
    );

private static void NameChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    if (d is TextBox control) 
    {

    }
}

Xaml代码片段

快速生成DoubleAnimation

anidouble

快速生成ItemTemplate

itemtemplate

快速生成mscorlib命名空间

nssys

xmlns:sys="clr-namespace:System;assembly=mscorlib"

快速生成包URI语法

pack

"pack://application:,,,/$TargetAssembly$;component/$Resource$"

快速生成Resources

res

快速生成Style

style

  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值