一堆自定义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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS开发案例:【电子相册】

介绍 如何实现一个简单的电子相册应用的开发&#xff0c;主要功能包括&#xff1a; 实现首页顶部的轮播效果。 实现页面跳转时共享元素的转场动画效果。 实现通过手势控制图片的放大、缩小、左右滑动查看细节等效果。 相关概念 [Swiper]&#xff1a;滑块视图容器&#x…

W801学习笔记二十二:英语背单词学习应用——下

续上篇&#xff1a; W801学习笔记二十一&#xff1a;英语背单词学习应用——上 五、处理用户交互 由于英语也是采用了和唐诗一样的《三分钟限时挑战》《五十题竞速挑战》《零错误闯关挑战》&#xff0c;所以用户交互的逻辑和唐诗是一样的。所以&#xff0c;我们抽一个基类&a…

Leetcode—138. 随机链表的复制【中等】

2024每日刷题&#xff08;129&#xff09; Leetcode—138. 随机链表的复制 实现代码 /* // Definition for a Node. class Node { public:int val;Node* next;Node* random;Node(int _val) {val _val;next NULL;random NULL;} }; */class Solution { public:Node* copyRan…

海洋行业工业气体检测传感器的重要性

海洋行业是一个广阔而复杂的领域&#xff0c;涉及多个分支和应用&#xff0c;包括浮式生产、储存和卸载&#xff08;FPSO&#xff09;装置、渡轮和潜艇等。这些船舶和设施在执行任务时&#xff0c;都可能遇到各种潜在的气体危害。因此&#xff0c;对于海洋行业来说&#xff0c;…

STM32接入CH340芯片的初始化进入升级模式(死机)问题处理

目录 1. 问题描述2. 问题分析2.1 CH340G/K 的初始化波形2.2 第1种USB升级电路2.3 第2种USB升级电路2.4 第3种USB升级电路2.5 第4种USB升级电路 3. 总结 1. 问题描述 我所用的CH340G&#xff08;CH340K也用过&#xff09;接在MCU的电路中&#xff0c;在插入CH340G/K 的接插件&a…

Unity EventSystem入门

概述 相信在学习Unity中&#xff0c;一定有被UI事件困扰的时候把&#xff0c;当添加UICanvas的时候&#xff0c;Unity会为我们自动添加EventSystem&#xff0c;这个是为什么呢&#xff0c;Unity的UI事件是如何处理的呢&#xff0c;在使用各个UI组件的时候&#xff0c;一定有不…

Redis(Redis配置和订阅发布)

文章目录 1.Redis配置1.网络配置1.配置文件位置 /etc/redis.conf2.bind&#xff08;注销支持远程访问&#xff09;1.默认情况bind 127.0.0.1 只能接受本机的访问2.首先编辑配置文件3.进入命令模式输入/bind定位&#xff0c;输入n查找下一个&#xff0c;shift n查找上一个&…

OpenHarmony 实战开发—— refreshlayout 组件开发学习指南~

1. RefreshLayout_harmonyos 功能介绍 1.1. 组件介绍&#xff1a; RefreshLayout_harmonyos 是一款下拉刷新组件 1.2. 手机模拟器上运行效果&#xff1a; 2. RefreshLayout_harmonyos 使用方法 2.1 在目录 build.gradle 下 implementation project(":refreshlayout_ha…

新能源汽车动力电池热管理-液冷方案应用原理与应用前景简介

前言 动力电池是新能源汽车的核心部件之一&#xff0c;其性能和寿命直接影响着车辆的续航里程和使用成本。液冷方案作为一种常见的动力电池温控解决方案&#xff0c;被广泛应用于新能源汽车领域。本文将详细介绍液冷方案的原理、发展方向以及市场前景。 一、液冷方案的原理 …

Jmeter 中 CSV 如何参数化测试数据并实现自动断言

当我们使用Jmeter工具进行接口测试&#xff0c;可利用CSV Data Set Config配置元件&#xff0c;对测试数据进行参数化&#xff0c;循环读取csv文档中每一行测试用例数据&#xff0c;来实现接口自动化。此种情况下&#xff0c;很多测试工程师只会人工地查看响应结果来判断用例是…

Springboot+Vue项目-基于Java+MySQL的影院订票系统(附源码+演示视频+LW)

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

生成gitee公钥

1、打开设置 2、设置SSH公钥 3、生成公钥 4、复制终端输出的公钥&#xff0c;放到这里&#xff0c;标题随便取。 5、测试 ssh -T gitgitee.com 最后用这个测试

帆软报表实现填报报表

我们拿emp表举例 登记信息表 设计一个报表实现对emp表员工的登记 &#xff08;emp表为ORACLE自带用户scott下的一个表&#xff09; 首先&#xff0c;我们设计好填报界面&#xff0c;新建一个普通报表&#xff0c;将emp表中需要的输入一一回应填写进表中。 如下图所示&#xf…

区块链扩容:水平扩展 vs.垂直扩展

1. 引言 随着Rollups 的兴起&#xff0c;区块链扩容一直集中在模块化&#xff08;modular&#xff09;vs. 整体式&#xff08;monolithic&#xff09;之争。 如今&#xff0c;模块化与整体式这种一分为二的心理模型&#xff0c;已不适合于当前的扩容场景。本文&#xff0c;将展…

ASP.NET MVC企业级程序设计 (入住退房,删除)

目录 效果图 实现过程 控制器代码 DAL BLL Index 效果图 实现过程 控制器代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;namespace MvcApplication1.Controllers {public class HomeController …

【linux-IMX6ULL中断配置流程】

目录 1. Cortex-A7和GIC中断概述1. 1 Cortex-A7中断系统&#xff1a;1. 2 GIC中断控制器简介&#xff1a; 2. 中断配置概述3. 底层中断文件配置3.1 对启动文件.s的配置思路3.2 对中断函数配置思路 4. 上层中断配置流程 1. Cortex-A7和GIC中断概述 学习IMX6UL的中断处理系统&…

Git同步代码

Git中5个区&#xff0c;和具体操作&#xff1f; 代码提交和同步代码 代码撤销和撤销同步 平时是怎么提交代码的&#xff1f; 第零步: 工作区与仓库保持一致第一步: 文件增删改&#xff0c;变为已修改状态第二步: git add &#xff0c;变为已暂存状态 $ git status $ git a…

1天搞定SpringBoot+Vue全栈开发 (8)前端路由VueRouter(进行组件切换)

1.VueRouter安装与使用 2.参数传递 创建路由组件 在项目中定义Discover.vue、Friends.vue、My.vue三个组件&#xff0c;将来要使用vue-router来控制它们的展示与切换&#xff1a; Discover.vue <template><div><h1>发现音乐</h1></div> <…

智能实训-wheeltec小车-抓取(源代码)

语言 :C 源代码&#xff1a; #include <ros/ros.h> #include <image_transport/image_transport.h> #include <cv_bridge/cv_bridge.h> #include <sensor_msgs/image_encodings.h> #include <sensor_msgs/JointState.h> #include <geometry…

面试题:String类型长度有限制吗?最大多少?

简介 Java中String是有长度限制的。String还有长度限制?是的有,而且在JVM编译中还有规范,String长度限制的场景(将某固定文件转码成Base64的形式用字符串存储,在运行时需要的时候在转回来,当时文件比较大),那这个规范限制到底是怎么样的,我们分析下。 …