一堆自定义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 扩展代码片段

  • Visual Studio 扩展代码片段
    • CSharp代码片段
      • 检查文件是否存在
      • 检查文件夹是否存在包裹
      • 带Index的Foreach
      • 插入文档摘要
      • 快速创建方法
      • 快速创建类
      • 快速创建Int属性
      • 快速创建Double属性
      • 快速创建String属性
      • 快速创建List属性
      • 快速MessageBox
      • 快速创建带TryCatchFinally方法
      • 快速Null检查
      • 快速生成带有消息通知的属性
      • 快速生成ReadLine
      • 快速生成StopWatch
      • 快速生成Student类(带模拟数据)
      • 快速生成结果状态类(通用返回值)
      • 快速生成Task.Run包裹
      • TryCatchFinally包裹
      • 带属性修改回调的依赖属性
      • 带属性修改回调的附加属性
    • Xaml代码片段
      • 快速生成DoubleAnimation
      • 快速生成ItemTemplate
      • 快速生成mscorlib命名空间
      • 快速生成包URI语法
      • 快速生成Resources
      • 快速生成Style

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/599935.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Django 4.x 智能分页get_elided_page_range

Django智能分页 分页效果 第1页的效果 第10页的效果 带输入框的效果 主要函数 # 参数解释 # number: 当前页码&#xff0c;默认&#xff1a;1 # on_each_side&#xff1a;当前页码前后显示几页&#xff0c;默认&#xff1a;3 # on_ends&#xff1a;首尾固定显示几页&#…

【在线OJ】Vue创建OJ管理系统

一、创建项目 vue ui命令创建项目 项目创建完成后来到项目 二、导航栏 首先创建一个根页面&#xff0c;让他展示在页面上 创建之后来到路由配置界面 然后安装ElementUI&#xff0c;来到官网找到导航栏 复制代码后粘贴到刚才创建的vue文件里&#xff0c;启动项目&#xff…

力扣:62. 不同路径

62. 不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&…

SolidWorks进行热力学有限元分析二、模型装配

1.先打开软件&#xff0c;新建装配体 2.选中你要装配的零件&#xff0c;直接导入就行 3.鼠标点击左键直接先放进去 4.开始装配&#xff0c;点配合 5.选择你要接触的两个面&#xff0c;鼠标右键确定&#xff0c;然后把剩下的面对齐一下就行了 6.搞定

《十九》Qt Http协议及实战

前言 本篇文章来给大家讲解QT中的Http协议&#xff0c;Http协议主要用于网络中数据的请求和响应&#xff0c;那么这篇文章将给大家讲解一下这个协议。 一、HTTP概述 HTTP&#xff08;超文本传输协议&#xff09;是互联网上应用最为广泛的协议之一&#xff0c;它定义了客户端…

[开发|鸿蒙] 鸿蒙OS开发环境搭建(笔记,持续更新)

搭建开发环境流程&#xff1a; https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/installation_process-0000001071425528-V2 鸿蒙DevEco Studio 3.1.1 Release仅支持windows和mac系统 运行环境要求 为保证DevEco Studio正常运行&#xff0c;建议电脑配置…

事务的使用 @Transactional

更新操作多个数据表的时候需要使用到事务 事务&#xff1a;要么都执行&#xff0c;要么都不执行。 1.Transactional 如果有异常&#xff0c;只有RunTimeException和Error时&#xff0c;事务才会生效&#xff0c;否则事务不会生效&#xff0c;需要手动开启事务currentTransacti…

基于Springboot+Vue的Java项目-鲜牛奶订购系统开发实战(附演示视频+源码+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &am…

华为eNSP中型企业局域网网络规划设计(下)

→b站传送门&#xff0c;感谢大佬← →华为eNSP中型企业局域网网络规划设计&#xff08;上&#xff09;← →拓扑图传送门&#xff0c;可以自己配置着玩← 配置ospf AR3 [AR3]ospf 1 router-id 3.3.3.3 //出口默认路由 [AR3-ospf-1]default-route-advertise always #area…

Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】

1、数组 特别需要注意的是&#xff1a;在 Go 语言中&#xff0c;数组长度也是数组类型的一部分&#xff01;所以尽管元素类型相同但是长度不同的两个数组&#xff0c;它们的类型并不相同。 1.1、数组的初始化 1.1.1、通过初始化列表{}来设置值 var arr [3]int // int类型的数…

阿里云CentOS 7.9 64位 Liunx 安装redis

具体的步骤如下&#xff1a; 添加 EPEL 仓库&#xff0c;因为 Redis 在标准的 CentOS 仓库中不可用&#xff1a; sudo yum install epel-release安装 Redis&#xff1a; sudo yum install redis启动 Redis 服务&#xff1a; sudo systemctl start redis如果你想让 Redis 在…

latex参考文献引用网址,不显示网址问题

以引用UCI数据集为例 1、加入宏包 \usepackage{url} 2、在参考文献bib文件中加入网址文献 misc{UCI, author {{D. Dua, E. Karra Taniskidou}}, year {2024}, title {UCI Machine Learning Repository}, howpublished {\url{http://archive.ics.uci.edu/ml}} } 完成&#x…

CANdela/Diva系列2--CANdela Studio的工作树介绍1

本系列的第一篇文章&#xff08;CANdela/Diva系列1--CANdela Studio的基本介绍&#xff09;主要介绍了CANdela这个工具&#xff0c;本篇文章将对CANdela Studio的工作树的每个模块进行详细介绍&#xff0c;不啰嗦&#xff0c;直接开始&#xff01; 目录 1. ECU Information的…

NFTScan 与 Scattering 达成合作伙伴,双方将共同解决混合 NFT 数据需求

在区块链领域&#xff0c;NFT 的创新与发展从未停止。近日&#xff0c;NFT 数据基础设施 NFTScan 与一站式混合 NFT 交易市场 Scattering 达成合作伙伴关系&#xff0c;双方将在 NFT 数据层面展开合作&#xff0c;共同解决混合 NFT 的独特数据需求&#xff0c;Scattering 在协议…

2024-05-07 商业分析-赚钱之前怎么预估风险-记录

摘要: 2024-05-07 商业分析-赚钱之前怎么预估风险-记录 赚钱之前怎么预估风险 好&#xff0c;大家好&#xff0c;今天我们来讲的是叫什么赚钱之前怎么评估风险啊&#xff0c;这个问题啊提的很好啊&#xff0c;我们待会儿来讲啊。呃&#xff0c;首先呢今天这个主题呢来自于昨天…

【vulhub靶场】Tomcat中间件漏洞复现

【vulhub靶场】Tomcat中间件漏洞复现 一、Tomcat AJP 任意文件读取/包含漏洞 &#xff08;CVE-2020-1938&#xff09;1. 漏洞描述2. 影响版本3. 漏洞原理4. 漏洞复现 二、任意文件写入漏洞 &#xff08;CVE-2017-12615&#xff09;1. 漏洞原理2. 影响版本3. 漏洞复现 三、Tomca…

如何把Java的定时任务写到数据库里面去配置?

之前是这样写的&#xff0c;每次要改定时器都要修改发版&#xff0c;很麻烦&#xff1a; package cn.net.cdsz.ccb.common.scheduled;import cn.net.cdsz.ccb.business.config.Custom; import cn.net.cdsz.ccb.business.service.CCBBankService; import cn.net.cdsz.ccb.busin…

机器学习项目实践-基础知识部分

环境建立 我们做项目第一步就是单独创建一个python环境&#xff0c;Python新的隔离环境 创建&#xff1a;python -m venv ml 使用&#xff1a;.\Scripts\activate python -m venv ml 是在创建一个名为 ml 的虚拟环境&#xff0c;这样系统会自动创建一个文件夹ml&#xff0c;…

做题速度太慢了,面不上

没办法&#xff0c;之前练了一个月的sql。两个月不写&#xff0c;现在差不多忘干净了。工作空窗期&#xff0c;或者休息期不能太久&#xff0c;不然学再多的内容都可能会忘完的。 sql题&#xff0c;腾讯四道sql题&#xff0c;限时45分钟完成。我只做了一道&#xff0c;还没做完…

重磅!结合AI、高光谱与GEE的双碳目标智能监测与模拟前沿

以全球变暖为主要特征的气候变化已成为全球性环境问题&#xff0c;对全球可持续发展带来严峻挑战。2015年多国在《巴黎协定》上明确提出缔约方应尽快实现碳达峰和碳中和目标。2019年第49届 IPCC全会明确增加了基于卫星遥感的排放清单校验方法。随着碳中和目标以及全球碳盘点的现…